Доклад Ильи Аблеева на devops meetup "Мониторинг...
DESCRIPTION
О чем доклад: - Как в нашем проекте устроен Zabbix, применяемые нами способы автоматизации, собственные методы "дискавери" серверов и сервисов. Плюс как правильно держать Zabbix под высокой нагрузкой и не упираться в ресурсы серверов. - Для чего мы используем Pinba, какие именно метрики помогают нам узнать о реальных проблемах пользователей. - Как мы храним графики в RRD. Мониторинг этих графиков: User activity monitoring. - Zabbix -> RRD => Capacity Planning. Как быстро найти слабые места среди кластеров в десятки и сотни нод.TRANSCRIPT
Мониторинг высоконагруженного проектаНаш опыт использования Zabbix, Pinba, RRD.
Илья Аблеев
● Zabbix○ Zabbix 1○ Zabbix 2
● Pinba● RRD● User Activity Monitoring
Что мы используем?
● 3 датацентра● 2.500 реальных хостов и алиасов● 230.000 метрик● 290.000 триггеров● Примерно 1.000 метрик в секунду
Zabbix
● Только обнаружение проблем, минимум графиков
● Храним историю 1 день● Не храним тренды● Не храним ивенты (отдельная статистика)
Zabbix 1
Discovery, автоматизация● DNS. A-запись = один реальный хост
○ “чистый” DNS
○ Доменные имена для сервисов - CNAME
■ дополнительная логика обнаружений сервисов
● Новые хосты - новый тикет в мониторинг
○ ручная “премодерация”, добавление и удаление в
полуавтоматическом режиме
Zabbix
● Собственный фреймворк
● Быстрое и удобное добавление графиков
● Масштабируемость
● Получение данных с помощью API
RRD framework
● “Лёгкий” мониторинг Nginx, PHP, etc (over UDP)
● Статистика (avg, percentiles) по запросам и user defined
timer внутри них
● Хранилище, интерфейс - MySQL
● Real-time отчёты
○ by hostname, by script, by status, etc
Больше - на http://pinba.org
Pinba
Очень много метрик и графиков: ~ 2 млн.
Как определять проблемы?
RRD framework
+ Уже используем, не увеличиваем зоопарк+ Алерты “из коробки”
– MySQL загнется от объема данных– Ручное управление лимитами метрик
Старый вариант – Zabbix
Самописная утилита – User Activity Monitoring
+ Гибкая расширяемая система анализа данных+ Экспорт данных (REST API)
– Нужно писать код
Новый вариант – UAM
● Тесная итеграция с нашим RRD фреймворком● Простой интерфейс добавления метрик для
мониторинга● Поддержка нескольких алгоритмов обработки
данных○ анализ относительных значений ○ анализ абсолютных значений
● Импорт алертов в заббикс (лампочки)
User Activity Monitoring
● Использование дополнительного Zabbix’а для сбора
данных о системе
● Отсутствие триггеров и уведомлений
● Хранение истории за несколько лет
● Синхронизация хостов с Zabbix 1
Zabbix 2
● Встроенные механизмы агрегации данных в Zabbix неудобны и ресурсоёмки
● Нельзя получить одну метрику по всем серверам на едином графике “из коробки”
Zabbix 2
Позволяет:
● сортировать кластеры по загруженности
● искать неоптимально загруженные
машины в кластере
Zabbix 2 + RRD
● amean - среднее арифметическое
● median - среднее (сортируем, выбираем среднее значение)
● range - разница между max и min значением
● percentile 95% - для 95% машин метрика не выше указанного значения
Zabbix 2 + RRD
Habr: http://habrahabr.ru/company/badoo/
Twitter: @BadooDev
Вопросы?