Доклад Ильи Аблеева на devops meetup "Мониторинг...

23
Мониторинг высоконагруженного проекта Наш опыт использования Zabbix, Pinba, RRD. Илья Аблеев

Upload: badoo-development

Post on 14-Jun-2015

730 views

Category:

Technology


0 download

DESCRIPTION

О чем доклад: - Как в нашем проекте устроен Zabbix, применяемые нами способы автоматизации, собственные методы "дискавери" серверов и сервисов. Плюс как правильно держать Zabbix под высокой нагрузкой и не упираться в ресурсы серверов. - Для чего мы используем Pinba, какие именно метрики помогают нам узнать о реальных проблемах пользователей. - Как мы храним графики в RRD. Мониторинг этих графиков: User activity monitoring. - Zabbix -> RRD => Capacity Planning. Как быстро найти слабые места среди кластеров в десятки и сотни нод.

TRANSCRIPT

Page 1: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

Мониторинг высоконагруженного проектаНаш опыт использования Zabbix, Pinba, RRD.

Илья Аблеев

Page 2: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● Zabbix○ Zabbix 1○ Zabbix 2

● Pinba● RRD● User Activity Monitoring

Что мы используем?

Page 3: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● 3 датацентра● 2.500 реальных хостов и алиасов● 230.000 метрик● 290.000 триггеров● Примерно 1.000 метрик в секунду

Zabbix

Page 4: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● Только обнаружение проблем, минимум графиков

● Храним историю 1 день● Не храним тренды● Не храним ивенты (отдельная статистика)

Zabbix 1

Page 5: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

Discovery, автоматизация● DNS. A-запись = один реальный хост

○ “чистый” DNS

○ Доменные имена для сервисов - CNAME

■ дополнительная логика обнаружений сервисов

● Новые хосты - новый тикет в мониторинг

○ ручная “премодерация”, добавление и удаление в

полуавтоматическом режиме

Zabbix

Page 6: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● Собственный фреймворк

● Быстрое и удобное добавление графиков

● Масштабируемость

● Получение данных с помощью API

RRD framework

Page 7: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 8: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● “Лёгкий” мониторинг Nginx, PHP, etc (over UDP)

● Статистика (avg, percentiles) по запросам и user defined

timer внутри них

● Хранилище, интерфейс - MySQL

● Real-time отчёты

○ by hostname, by script, by status, etc

Больше - на http://pinba.org

Pinba

Page 9: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 10: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 11: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

Очень много метрик и графиков: ~ 2 млн.

Как определять проблемы?

RRD framework

Page 12: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

+ Уже используем, не увеличиваем зоопарк+ Алерты “из коробки”

– MySQL загнется от объема данных– Ручное управление лимитами метрик

Старый вариант – Zabbix

Page 13: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

Самописная утилита – User Activity Monitoring

+ Гибкая расширяемая система анализа данных+ Экспорт данных (REST API)

– Нужно писать код

Новый вариант – UAM

Page 14: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● Тесная итеграция с нашим RRD фреймворком● Простой интерфейс добавления метрик для

мониторинга● Поддержка нескольких алгоритмов обработки

данных○ анализ относительных значений ○ анализ абсолютных значений

● Импорт алертов в заббикс (лампочки)

User Activity Monitoring

Page 15: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● Использование дополнительного Zabbix’а для сбора

данных о системе

● Отсутствие триггеров и уведомлений

● Хранение истории за несколько лет

● Синхронизация хостов с Zabbix 1

Zabbix 2

Page 16: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 17: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 18: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● Встроенные механизмы агрегации данных в Zabbix неудобны и ресурсоёмки

● Нельзя получить одну метрику по всем серверам на едином графике “из коробки”

Zabbix 2

Page 19: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

Позволяет:

● сортировать кластеры по загруженности

● искать неоптимально загруженные

машины в кластере

Zabbix 2 + RRD

Page 20: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 21: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"
Page 22: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

● amean - среднее арифметическое

● median - среднее (сортируем, выбираем среднее значение)

● range - разница между max и min значением

● percentile 95% - для 95% машин метрика не выше указанного значения

Zabbix 2 + RRD

Page 23: Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта"

[email protected]

Habr: http://habrahabr.ru/company/badoo/

Twitter: @BadooDev

Вопросы?