Логгинг, мониторинг и все остальное
DESCRIPTION
Доклад на DevOps-40 meetup в баре KLЮTCHTRANSCRIPT
![Page 1: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/1.jpg)
DevOps-40
Логгинг, мониторинги графики
12.10.2013, DevOps meetup, СПб
![Page 2: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/2.jpg)
DevOps-40
Я:● Инженер по эксплуатации сайтов● Работа хорошая, но как сайт упал – так хоть увольняйся
![Page 3: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/3.jpg)
DevOps-40
Вы:● Разработчики сайтов● Архитекторы● Инженеры по эксплуатации● CTO● Неравнодушные люди
![Page 4: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/4.jpg)
DevOps-40
Чтобы сайт не падал● Нужно за ним ухаживать:● Собирать метрики● Анализировать метрики● ^ без участия человека● Оповещать о проблемах● Предсказывать проблемы
![Page 5: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/5.jpg)
DevOps-40
Какие метрики собирать● Метрики приложения:● Количество ошибок, таймеры, другая статистика (счетчики)
● Метрики платформы:● CPU, RAM, disk usage, IOPS, interrupts, etc, etc
![Page 6: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/6.jpg)
DevOps-40
Метрики платформы● Классика, десятки решений:● SNMP● Cacti, Zabbix, Munin, Zenoss, OpenNMS, collectd, you-name-it
● Общие принципы: наличие агента, хранение данных в формате RRD
![Page 7: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/7.jpg)
DevOps-40
Zabbix● Ненавижу и стараюсь уничтожить:● плохо скриптуется Chef/Salt/etc● плохо оптимизированы запросы – может потреблять много ресурсов
● плохой дизайн, “все в одном”● last, but not least: PHP
![Page 8: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/8.jpg)
DevOps-40
Munin● Настраиваю в первую очередь:● отлично скриптуется Chef/Salt/etc● огромное количество плагинов● легко писать новые плагины● основные метрики начинают собираться сразу после установки
![Page 9: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/9.jpg)
DevOps-40
Munin: пример
![Page 10: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/10.jpg)
DevOps-40
Munin: проблемы● Плагины форкаются, когда их много – лишняя нагрузка на хост
● Когда много хостов – велика нагрузка на Munin-сервер
● Не очень хорошо машстабируется● Более 50 хостов я не пытался
![Page 11: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/11.jpg)
DevOps-40
Метрики приложения● SaaS● Таймеры и счетчики - NewRelic● Ошибки – AirBrake, Qbaka● Общие принципы: понадобится агент и план подписки
![Page 12: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/12.jpg)
DevOps-40
NewRelic: пример
![Page 13: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/13.jpg)
DevOps-40
NewRelic: проблемы● Не обладает всей полнотой знания о структуре и алгоритме работы приложения
● Для детального анализа ситуации недостаточен
![Page 14: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/14.jpg)
DevOps-40
Метрики приложения● In-house решения● Ошибки – pupergrep, logstash, Graylog2, Sentry/Raven
● Таймеры и счетчики – PINBA, Graphite, OpenTSDB
![Page 15: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/15.jpg)
DevOps-40
Ошибки: воркфлоу● Приложение ведет лог в файл, лог-коллектор обрабатывает:
● logstash● Приложение через библиотеку общается с сервером напрямую:
● Sentry/Raven
![Page 16: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/16.jpg)
DevOps-40
Лог-коллектор: logstash● Написан на JRuby● Требует JVM● Расходует память● Расходует процессор● JRuby не очень подходящее решение, как мне кажется
![Page 17: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/17.jpg)
DevOps-40
Таймеры и счетчики● PINBA – только для тех, у кого PHP● Только собирает, не рисует● http://goo.gl/LGmkvF - наивная визуализация PINBA для Munin
● ^ такой детализации недостаточно, плохо смотреть историю
![Page 18: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/18.jpg)
DevOps-40
UNIX-way FTW● StatsD – простой протокол передачи таймеров/счетчиков
● StatsD-сервер – собирает, агрегирует, передает дальше
● Graphite – сохраняет в формате Whisper и рисует графики
![Page 19: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/19.jpg)
DevOps-40
Graphite: визуализация● Есть встроенный dashboard, он ужасен
● GDash – dashboard на Ruby:● отлично скриптуется Salt/Chef - http://goo.gl/Ayc5FU стейты здесь
● Есть и другие дэшборды
![Page 20: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/20.jpg)
DevOps-40
StatsD: проблемы● У меня были проблемы с оригинальным StatsD-сервером на Node.JS (терялись метрики)
● Я просто взял statsd.rb (реализация на Ruby)
● Реализации есть на чем угодно
![Page 21: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/21.jpg)
DevOps-40
StatsD: плюсы● Отлично масштабируется● ^ Просто возьмите еще один и сливайте данные в тот же Graphite
● Реализации как клиента, так и сервера, есть на всех основных языках
![Page 22: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/22.jpg)
DevOps-40
GDash: пример
![Page 23: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/23.jpg)
DevOps-40
GDash: пример
![Page 24: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/24.jpg)
DevOps-40
Немного об оповещениях● NAGIOS отлично генерирует алерты
● NAGIOS отлично принимает пассивные проверки на TCP порт
● NAGIOS отлично скриптуется Chef/Salt
![Page 25: Логгинг, мониторинг и все остальное](https://reader033.vdocuments.mx/reader033/viewer/2022051514/5491f5dbb47959183a8b4688/html5/thumbnails/25.jpg)
DevOps-40
Спасибо за внимание!● Вопросы?● DevOps-40: 40° should be enough for everyone!