SlideShare a Scribd company logo
Доклад
«Мониторинг
или
есть жизнь после релиза»
старший программист
Орлов Г.А.
Цель доклада
• Получить общее представление о подходах к
мониторингу серверных приложений
• Разобраться с существующими в компании
средствами для мониторинга серверных
приложений
Введение
• Данный доклад является обобщением моего
опыта по работе с мониторингом в рамках
работы в командах P3 и процессинг QW и
работы с рамках рабочей группы по SRE
План доклада
1.Мотивация
2.Теория
3.Практика
Мотивация (1)
1.Выпустили систему в прод
2.В проде обнаружились ошибки бизнес-
логики
3.В проде обнаружились ошибки
производительности
4.Бизнес теряет деньги
5.Бизнес теряет репутацию
Мотивация (2)
• Факт 1 - писать без ошибок невозможно
(неполное ТЗ, ошибки реализации)
• Факт 2 - тестирование всё не покрывает
• Факт 3 - чем больше покрытие, тем больше
времени отнимает написание тестов
• Факт 4 - тестирование требует ресурсов
людских, вычислительных и временных
(особенно, интеграционное и нагрузочное)
Мотивация (3)
• Надо смириться с тем, что в проде всё равно
будут проблемы
• И надо научится быстро их диагностировать
и исправлять
Теория
• Определение
• Модель системы с точки зрения мониторинга
• Классификация систем мониторинга
• Уровни мониторинга
• Инструменты мониторинга
Мониторинг.
Определение.
• наблюдение за какими-либо
характеристиками процесса или системы с
целью выявления интересующих событий
для последующей их обработки
Модель системы с точки
зрения мониторинга
• Будем считать что система состоит из
процессов, которые могут проводить
обработку приходящих к ним запросов
• Онлайн система - система, в которой
запросы приходят снаружи системы
• Оффлайн система - система, в которой
запросы создаются внутри самой системы
(например, по таймеру)
Модель онлайн системы с
точки зрения мониторинга
Модель оффлайн системы с
точки зрения мониторинга
Классификация (по
предметной области)
• Бизнес-мониторинг (прибыль, оборот и т.д.)
• Эксплуатационный мониторинг
(производительность, доступность,
потребление ресурсов и т.д.)
• ИБ-мониторинг
• и т.д.
Классификация (по
способу сбора)
• Неинвазивный (когда система сама
предоставляет метрики)
• Инвазивный (когда метрики собираются
внешней системой без участия приложения)
Классификация
(по источнику)
• Внешние (когда характеристика собираются
не с самой системы, а с её клиента)
• Внутренние (когда характеристика
собираются с самой системы)
Классификация
(по времени реакции)
• реального времени
• отложенный
Классификация
(по глубине)
• Сквозной мониторинг (когда временные
метки ставятся внутри системы на запрос и
далее куда-то сбрасываются)
• Независимый мониторинг (когда каждый
интерфейс мониторится сам по себе)
Уровни мониторинга
(Где?)
• Уровень бизнес-процессов (счета, платежи,
авторизация)
• Уровень приложений (и БД)
• Уровень инфраструктуры (ОС, сеть, ВМ,
железо)
Уровни мониторинга
Мониторинг БП.
Достоинства
• Обычно его очень просто настроить
(например, один запрос в БД)
• Требует мало ресурсов, так как мало данных
• Показывает состояние самой крупной
абстракции - БП
• Поэтому позволяет оценить степень влияния
проблемы на бизнес
Мониторинг БП.
Недостатки
• Низкая степень локализации (не видно, в
какой части конвейера сломалось)
• Легко не заметить мелкие проблемы
(например, на общей очереди платежей
можно не заметить исчезновения мелкого
провайдера)
Мониторинг приложений.
Достоинства.
• Высокая степень локализации (до
конкретного интерфейса конкретного
экземпляра приложения)
• Чаще всего указывает на конкретный
источник проблем, так как основа БП -
приложение
Мониторинг приложений.
Недостатки.
• Для высокой степени локализации надо много
сделать в коде или в инфраструктуре
• Часто такие метрики бывают динамическими
(например, содержат URL клиентов, которые
изменяются)
• Поэтому требует много ресурсов, так как много
данных
• Надо поддерживать больше число графиков,
панелей и т.д.
Мониторинг
инфраструктуры.
• Если проблема в инфраструктуре, то
метрики приложения часто не помогают
(например, когда кончается место на диске в
приложении надо будет парить логи на
наличие конкретного сообщения)
• Без мониторинга приложений сложно
связать их с проблемами в БП
• Обычно ими занимается эксплуатация
Выводы по уровням
мониторинга
• Нужны мониторинги на всех уровнях
• Начинать можно с уровня БП, так как это
быстро и дешево
Инструменты мониторинга
(Чем?)
• Журналы событий aka логи
• Метрики событий
• Health check
Инструменты
мониторинга.
• Каждый следующий инструмент можно
построить на базе предыдущего
Журналы событий
• Упорядоченные по времени события в
системе
Журналы событий.
Преимущества
• Детальные (время события, поток, контекст
вызова, контекст запроса)
• Просто использовать
• Не требуют специальных инструментов
обработки
Журналы событий.
Недостатки.
• Высокая скорость появления записей (в
нагруженной системе)
• Занимают много места (в нагруженной системе)
• Сложно обрабатывать, так как надо знать
какие записи обрабатывать и структуру этих
записей
• Подсистема журналирования должна быть в
хорошем состоянии
Метрики
• Числовые характеристики процессов и
событий системы
Метрики.
Преимущества.
• Более агрегированные по сравнению с
логами
• Их обычно существенно меньше, чем
вариантов логов
• Занимают существенно меньше места на
диске
• Просто обрабатывать, так как структура
обычно простая
Метрики.
Недостатки.
• Мало контекста по сравнению с логами
• Иногда надо писать более одной строчки
кода для метрик
Health check
• Бинарный (да/нет) интерфейс в системе,
который говорит о том, работает система
или нет.
• И опционально, если не работает, то какая
подсистема.
Healthcheck.
Преимущества.
• Один интерфейс на процесс
• В идеале единый для всех систем
• Очень просто обрабатывать
Healthcheck.
Недостатки.
• Ещё меньше контекста
• Надо писать специальную логику
Виды метрик
• Значение
• Счетчик
• Количество событий в единицу времени
(например, запросов). Обычно в секунду.
• Распределение времени событий (например,
обработки запроса). Обычно - персентили.
Принципы мониторинга БП
(Как?)
• Определить вместе с бизнесов основные БП
и замониторить хотя бы их
• Но в идеале надо мониторить все
• Делать общие и детализированные
показатели (например, все платежи и
платежи по типам протоколов)
Принципы мониторинга приложений
(Как?) (1)
• Мониторить все точки интеграции с обоих
сторон, то есть и с серверной и с клиентской
• Делать метрики как можно гранулярнее
(чтобы проще и быстрее локализовывать)
• Мониторить все количественные ресурсы
(пулы соединений, очереди потоков и т.д.)
• Не забываем мониторить свою виртуальную
машину !
Принципы мониторинга приложений
(Как?) (2)
• Выводить метрики по кластеру суммарно и
отдельно по машинам
• Выводить персентили времени ответа (хотя
бы 95), количество запросов в секунду,
отношение ошибок к общему числу запросов
• Для HTTP ещё и отношение групп или
отдельных кодов ошибок к общему числу
запросов
Выводы по инструментам
мониторинга
• Сразу делать подробные логи
• Метрики выводить для серверных и
клиентских интерфейсов и для внутренних
ресурсов
• В метриках выводить qps, персентили
времени ответа (хотя бы 95й) и отношение
ошибок к общему числу запросов
• Вывести health check
Практика
• Системы мониторинга и сбора логов
• Интерфейсы мониторинга
• Инструменты мониторинга в JVM-based
приложениях
Система централизованной
обработки логов.
• RELK (RabbitMQ + Elasticsearch + Logstash +
Kibana)
• traceId
Системы мониторинга.
• Zabbix
• Graphite
• Dynatrace
Системы мониторинга
Zabbix.
• Бесплатный и открытый
• Всё-в-одном (сбор, хранение, обработка, оповещения)
• Гибкие настройки прав доступа
• Pull-модель
• Умеет масштабироваться сам и можно масштабировать БД
• Плохо умеет работать с динамическими метриками
• Не умеет обрабатывать метрики «на лету»
• Плохая интеграция с инструментов визуализации Grafana
Системы мониторинга
Graphite.
• Бесплатный и открытый
• Нет оповещений. Надо брать сторонние решения
• Нет разграничений доступов.
• Push-модель и простой протокол
• Сам по себе не умеет масштабироваться
• Отлично работает с динамическими метриками
• Позволяет легко обрабатывать метрики «на лету»
• Отличная интеграция с инструментов визуализации Grafana
Системы мониторинга
Dynatrace.
• Стоит денег, причём немало
• Инвазивный мониторинг + профилировщик
• Удобный интерфейс и визуализация
Интерфейсы
мониторинга.
• Pull
• JMX
• Http
• Файл
• Push
Интерфейсы мониторинга.
Pull. JMX. Преимущества.
• Eсть в самой JVM, а средства управления
есть в JDK
• То есть можно что-то моментальное
посмотреть и без внешней системы
мониторинга
• Есть система разграничения прав с
аутентификацией и двумя ролями
• Есть плагины для систем мониторинга
Интерфейсы мониторинга.
Pull. JMX. Недостатки.
• Графики рисует только с момента
подключения и после отключения
сбрасывает
• Данные не сохраняются между запусками
приложения
• Для подключения к внешней системе
мониторинга нужен агент, который будет
вызывать эти интерфейсы
Интерфейсы мониторинга.
Pull. HTTP. Преимущества.
• Не нужно специальных средств для вызова
• Просто парсить ответ
Интерфейсы мониторинга.
Pull. HTTP. Недостатки.
• В оффлайн приложения надо добавлять веб-
сервер
• Надо придумывать логику для авторизации и
аутентификации
• Для подключения к внешней системе
мониторинга нужен агент, который будет
вызывать эти интерфейсы
Интерфейсы мониторинга.
Pull. Файл. Преимущества.
• Не нужно специальных средств для
формирования метрик
• Не нужно специальных средств для вызова
• Просто парсить ответ
• Готовые средства для разграничения
доступа
Интерфейсы мониторинга.
Pull. Файл. Недостатки.
• Нужно место на диске
• Нужна синхронизация между периодами
сброса данных на диск и периодом их забора
с сервера
• Для подключения к внешней системе
мониторинга нужен агент, который будет
читать файл
Интерфейсы мониторинга.
Push. Достоинства.
• Для подключения метрик не нужно их явно
прописывать в отдельной системе. Особенно
если прописывать их там имеют права
отдельные от разработчиков люди.
• Динамические метрики просто работают.
• При добавлении/удалении экземпляров
приложений ничего не надо делать
Интерфейсы мониторинга.
Push. Недостатки.
• Всё равно надо что-то придумывать с AAA
• Можно легко залить тестовые или кривые
метрики в прод систему
Выводы по интерфейсам
мониторинга
• Для JVM всегда выводить метрики в JMX
• Для приложений push удобнее, чем pull, так
как можно быстрее получить рабочее
решение и часто бывают динамические
метрики
• То есть Graphite
Библиотеки для приложений.
Dropwizard metrics.
• Есть все виды метрик
• Есть интеграции для Spring и Guice
• Есть интеграции с популярными библиотеками и
серверами (httpclient, jetty и т.д.)
• Есть возможность вывода метрик в разные интерфейсы
(файл, JMX, Graphite и т.д.)
• Есть возможность писать декларативно (на аннотациях)
и императивно
• Используется в разных проектах (например, Cassandra)
Особенности работы с
Graphite
• Выбранный формат метрик: $type.type.
$cluster.cluster.$host.host.$metric.metric
• БД - RRD (Round-robin database)
• Между точками - каталоги. Последнее название
- файл.
• Свой веб-интерфейс не очень
• Но Grafana из коробки отлично работает с
Graphite
Что почитать
• Книга «Site Reliability Engineering»от Google
• Книга «Release it! Проектирование и дизайн ПО
для тех, кому не всё равно»
• Статья в Qiwipedia «Средства диагностики и
мониторинга серверных приложений Qiwi»
• Статья в Qiwipedia «Эксплуатационные
требования к серверному приложению»
• RTFM
Спасибо за
внимание!

More Related Content

What's hot

Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
Nikolay Sivko
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
Nikolay Sivko
 
Проверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с JmeterПроверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с Jmeter
Aleksey Derkach
 
Анализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaАнализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и Grafana
SQALab
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)
Nikolay Sivko
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Positive Hack Days
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
vyacheslavmaslov
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Positive Hack Days
 
Как сэкономить, вложив в информационную безопасность?
Как сэкономить, вложив в информационную безопасность? Как сэкономить, вложив в информационную безопасность?
Как сэкономить, вложив в информационную безопасность?
Ivan Piskunov
 
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...
Ivan Piskunov
 
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаАндрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Yandex
 
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоОт простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
Positive Hack Days
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Positive Hack Days
 
PEEFEXPERT
PEEFEXPERTPEEFEXPERT
PEEFEXPERT
soft-point
 
Аудит ИБ как инструмент повышения эффективности вашего бизнеса
Аудит ИБ как инструмент повышения эффективности вашего бизнесаАудит ИБ как инструмент повышения эффективности вашего бизнеса
Аудит ИБ как инструмент повышения эффективности вашего бизнеса
Ivan Piskunov
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
OdessaQA
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестирование
SPB SQA Group
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
Positive Hack Days
 

What's hot (20)

Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
Проверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с JmeterПроверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с Jmeter
 
02-lection-ka
02-lection-ka02-lection-ka
02-lection-ka
 
Анализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaАнализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и Grafana
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
 
Как сэкономить, вложив в информационную безопасность?
Как сэкономить, вложив в информационную безопасность? Как сэкономить, вложив в информационную безопасность?
Как сэкономить, вложив в информационную безопасность?
 
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...
 
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаАндрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
 
03 load testing
03   load testing03   load testing
03 load testing
 
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоОт простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 
PEEFEXPERT
PEEFEXPERTPEEFEXPERT
PEEFEXPERT
 
Аудит ИБ как инструмент повышения эффективности вашего бизнеса
Аудит ИБ как инструмент повышения эффективности вашего бизнесаАудит ИБ как инструмент повышения эффективности вашего бизнеса
Аудит ИБ как инструмент повышения эффективности вашего бизнеса
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестирование
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 

Viewers also liked

разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1etyumentcev
 
Сбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организацииСбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организации
Olya Kollen, PhD
 
Data Security: A field guide for franchisors
Data Security: A field guide for franchisorsData Security: A field guide for franchisors
Data Security: A field guide for franchisors
Grant Thornton LLP
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)Smartling
 
CV - Sergey Anisimov - acad_last_4
CV - Sergey Anisimov - acad_last_4CV - Sergey Anisimov - acad_last_4
CV - Sergey Anisimov - acad_last_4Sergey Anisimov, PhD
 
Технология моделирования бизнес процессов
Технология моделирования бизнес процессовТехнология моделирования бизнес процессов
Технология моделирования бизнес процессов
Olya Kollen, PhD
 
ShortFormRecentCV-v1.12
ShortFormRecentCV-v1.12ShortFormRecentCV-v1.12
ShortFormRecentCV-v1.12Dave Cannon
 
Alexander Kulikov portfolio
Alexander Kulikov portfolioAlexander Kulikov portfolio
Alexander Kulikov portfolio
Sasha Kulikov
 
Inno Tech GoIT 2016
Inno Tech GoIT 2016Inno Tech GoIT 2016
Inno Tech GoIT 2016
Olya Kollen, PhD
 
Alex Shulga resume
Alex Shulga resumeAlex Shulga resume
Alex Shulga resume
Alexey Shulga
 
HR-ам об IT-специалистах
HR-ам об IT-специалистахHR-ам об IT-специалистах
HR-ам об IT-специалистах
Margarita Fatina
 
Serhiy Kharytonov Resume 01 01 2016
Serhiy Kharytonov Resume 01 01 2016Serhiy Kharytonov Resume 01 01 2016
Serhiy Kharytonov Resume 01 01 2016skhar
 
Igor Filatov SQA Resume
Igor Filatov SQA  ResumeIgor Filatov SQA  Resume
Igor Filatov SQA ResumeIgor Filatov
 

Viewers also liked (19)

разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1
 
Сбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организацииСбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организации
 
Data Security: A field guide for franchisors
Data Security: A field guide for franchisorsData Security: A field guide for franchisors
Data Security: A field guide for franchisors
 
VladimirSlaykovskiy.resume.doc
VladimirSlaykovskiy.resume.docVladimirSlaykovskiy.resume.doc
VladimirSlaykovskiy.resume.doc
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)
 
summary.yevhen.koriakin
summary.yevhen.koriakinsummary.yevhen.koriakin
summary.yevhen.koriakin
 
CV - Sergey Anisimov - acad_last_4
CV - Sergey Anisimov - acad_last_4CV - Sergey Anisimov - acad_last_4
CV - Sergey Anisimov - acad_last_4
 
Технология моделирования бизнес процессов
Технология моделирования бизнес процессовТехнология моделирования бизнес процессов
Технология моделирования бизнес процессов
 
ShortFormRecentCV-v1.12
ShortFormRecentCV-v1.12ShortFormRecentCV-v1.12
ShortFormRecentCV-v1.12
 
Oleg Grigoriev Resume
Oleg Grigoriev ResumeOleg Grigoriev Resume
Oleg Grigoriev Resume
 
Alexander Kulikov portfolio
Alexander Kulikov portfolioAlexander Kulikov portfolio
Alexander Kulikov portfolio
 
Inno Tech GoIT 2016
Inno Tech GoIT 2016Inno Tech GoIT 2016
Inno Tech GoIT 2016
 
CV
CVCV
CV
 
Alex Shulga resume
Alex Shulga resumeAlex Shulga resume
Alex Shulga resume
 
HR-ам об IT-специалистах
HR-ам об IT-специалистахHR-ам об IT-специалистах
HR-ам об IT-специалистах
 
Serhiy Kharytonov Resume 01 01 2016
Serhiy Kharytonov Resume 01 01 2016Serhiy Kharytonov Resume 01 01 2016
Serhiy Kharytonov Resume 01 01 2016
 
resume - CV
resume - CVresume - CV
resume - CV
 
Serguei_Kouzmine_Resume
Serguei_Kouzmine_ResumeSerguei_Kouzmine_Resume
Serguei_Kouzmine_Resume
 
Igor Filatov SQA Resume
Igor Filatov SQA  ResumeIgor Filatov SQA  Resume
Igor Filatov SQA Resume
 

Similar to Доклад "Мониторинг серверных приложений"

Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
Enter: testing
Enter: testingEnter: testing
Enter: testing
Kamil Samigullin
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
Elena Ometova
 
SECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторинг
SECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторингSECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторинг
SECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторинг
SECON
 
Как обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуляКак обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуля
Uptime community
 
Team workflow
Team workflowTeam workflow
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Ontico
 
анатомия баннерной системы
анатомия баннерной системыанатомия баннерной системы
анатомия баннерной системыpetrovicho
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур Шевляков
CodeFest
 
Интеграционные решения – развиваемся дальше
Интеграционные решения – развиваемся дальшеИнтеграционные решения – развиваемся дальше
Интеграционные решения – развиваемся дальше
КРОК
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
SQALab
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
SQALab
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
CEE-SEC(R)
 
Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".
Hub-IT-School
 
Автоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едят
Marina Peregud
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
Alexander Novichkov
 
Метрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцахМетрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцах
SQALab
 
SICenter - презентация по BSM (Business Service Management) - системам монито...
SICenter - презентация по BSM (Business Service Management) - системам монито...SICenter - презентация по BSM (Business Service Management) - системам монито...
SICenter - презентация по BSM (Business Service Management) - системам монито...
Yuriy Eysmont
 

Similar to Доклад "Мониторинг серверных приложений" (20)

Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Enter: testing
Enter: testingEnter: testing
Enter: testing
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
SECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторинг
SECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторингSECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторинг
SECON'2017, Сивко Николай, Эксплуатация веб-проектов: мониторинг
 
Как обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуляКак обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуля
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
 
RuSIEM 2016
RuSIEM 2016RuSIEM 2016
RuSIEM 2016
 
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
 
анатомия баннерной системы
анатомия баннерной системыанатомия баннерной системы
анатомия баннерной системы
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур Шевляков
 
Интеграционные решения – развиваемся дальше
Интеграционные решения – развиваемся дальшеИнтеграционные решения – развиваемся дальше
Интеграционные решения – развиваемся дальше
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".
 
Автоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едят
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Метрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцахМетрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцах
 
SICenter - презентация по BSM (Business Service Management) - системам монито...
SICenter - презентация по BSM (Business Service Management) - системам монито...SICenter - презентация по BSM (Business Service Management) - системам монито...
SICenter - презентация по BSM (Business Service Management) - системам монито...
 

Доклад "Мониторинг серверных приложений"

  • 1. Доклад «Мониторинг или есть жизнь после релиза» старший программист Орлов Г.А.
  • 2. Цель доклада • Получить общее представление о подходах к мониторингу серверных приложений • Разобраться с существующими в компании средствами для мониторинга серверных приложений
  • 3. Введение • Данный доклад является обобщением моего опыта по работе с мониторингом в рамках работы в командах P3 и процессинг QW и работы с рамках рабочей группы по SRE
  • 5. Мотивация (1) 1.Выпустили систему в прод 2.В проде обнаружились ошибки бизнес- логики 3.В проде обнаружились ошибки производительности 4.Бизнес теряет деньги 5.Бизнес теряет репутацию
  • 6. Мотивация (2) • Факт 1 - писать без ошибок невозможно (неполное ТЗ, ошибки реализации) • Факт 2 - тестирование всё не покрывает • Факт 3 - чем больше покрытие, тем больше времени отнимает написание тестов • Факт 4 - тестирование требует ресурсов людских, вычислительных и временных (особенно, интеграционное и нагрузочное)
  • 7. Мотивация (3) • Надо смириться с тем, что в проде всё равно будут проблемы • И надо научится быстро их диагностировать и исправлять
  • 8. Теория • Определение • Модель системы с точки зрения мониторинга • Классификация систем мониторинга • Уровни мониторинга • Инструменты мониторинга
  • 9. Мониторинг. Определение. • наблюдение за какими-либо характеристиками процесса или системы с целью выявления интересующих событий для последующей их обработки
  • 10. Модель системы с точки зрения мониторинга • Будем считать что система состоит из процессов, которые могут проводить обработку приходящих к ним запросов • Онлайн система - система, в которой запросы приходят снаружи системы • Оффлайн система - система, в которой запросы создаются внутри самой системы (например, по таймеру)
  • 11. Модель онлайн системы с точки зрения мониторинга
  • 12. Модель оффлайн системы с точки зрения мониторинга
  • 13. Классификация (по предметной области) • Бизнес-мониторинг (прибыль, оборот и т.д.) • Эксплуатационный мониторинг (производительность, доступность, потребление ресурсов и т.д.) • ИБ-мониторинг • и т.д.
  • 14. Классификация (по способу сбора) • Неинвазивный (когда система сама предоставляет метрики) • Инвазивный (когда метрики собираются внешней системой без участия приложения)
  • 15. Классификация (по источнику) • Внешние (когда характеристика собираются не с самой системы, а с её клиента) • Внутренние (когда характеристика собираются с самой системы)
  • 16. Классификация (по времени реакции) • реального времени • отложенный
  • 17. Классификация (по глубине) • Сквозной мониторинг (когда временные метки ставятся внутри системы на запрос и далее куда-то сбрасываются) • Независимый мониторинг (когда каждый интерфейс мониторится сам по себе)
  • 18. Уровни мониторинга (Где?) • Уровень бизнес-процессов (счета, платежи, авторизация) • Уровень приложений (и БД) • Уровень инфраструктуры (ОС, сеть, ВМ, железо)
  • 20. Мониторинг БП. Достоинства • Обычно его очень просто настроить (например, один запрос в БД) • Требует мало ресурсов, так как мало данных • Показывает состояние самой крупной абстракции - БП • Поэтому позволяет оценить степень влияния проблемы на бизнес
  • 21. Мониторинг БП. Недостатки • Низкая степень локализации (не видно, в какой части конвейера сломалось) • Легко не заметить мелкие проблемы (например, на общей очереди платежей можно не заметить исчезновения мелкого провайдера)
  • 22. Мониторинг приложений. Достоинства. • Высокая степень локализации (до конкретного интерфейса конкретного экземпляра приложения) • Чаще всего указывает на конкретный источник проблем, так как основа БП - приложение
  • 23. Мониторинг приложений. Недостатки. • Для высокой степени локализации надо много сделать в коде или в инфраструктуре • Часто такие метрики бывают динамическими (например, содержат URL клиентов, которые изменяются) • Поэтому требует много ресурсов, так как много данных • Надо поддерживать больше число графиков, панелей и т.д.
  • 24. Мониторинг инфраструктуры. • Если проблема в инфраструктуре, то метрики приложения часто не помогают (например, когда кончается место на диске в приложении надо будет парить логи на наличие конкретного сообщения) • Без мониторинга приложений сложно связать их с проблемами в БП • Обычно ими занимается эксплуатация
  • 25. Выводы по уровням мониторинга • Нужны мониторинги на всех уровнях • Начинать можно с уровня БП, так как это быстро и дешево
  • 26. Инструменты мониторинга (Чем?) • Журналы событий aka логи • Метрики событий • Health check
  • 27. Инструменты мониторинга. • Каждый следующий инструмент можно построить на базе предыдущего
  • 28. Журналы событий • Упорядоченные по времени события в системе
  • 29. Журналы событий. Преимущества • Детальные (время события, поток, контекст вызова, контекст запроса) • Просто использовать • Не требуют специальных инструментов обработки
  • 30. Журналы событий. Недостатки. • Высокая скорость появления записей (в нагруженной системе) • Занимают много места (в нагруженной системе) • Сложно обрабатывать, так как надо знать какие записи обрабатывать и структуру этих записей • Подсистема журналирования должна быть в хорошем состоянии
  • 31. Метрики • Числовые характеристики процессов и событий системы
  • 32. Метрики. Преимущества. • Более агрегированные по сравнению с логами • Их обычно существенно меньше, чем вариантов логов • Занимают существенно меньше места на диске • Просто обрабатывать, так как структура обычно простая
  • 33. Метрики. Недостатки. • Мало контекста по сравнению с логами • Иногда надо писать более одной строчки кода для метрик
  • 34. Health check • Бинарный (да/нет) интерфейс в системе, который говорит о том, работает система или нет. • И опционально, если не работает, то какая подсистема.
  • 35. Healthcheck. Преимущества. • Один интерфейс на процесс • В идеале единый для всех систем • Очень просто обрабатывать
  • 36. Healthcheck. Недостатки. • Ещё меньше контекста • Надо писать специальную логику
  • 37. Виды метрик • Значение • Счетчик • Количество событий в единицу времени (например, запросов). Обычно в секунду. • Распределение времени событий (например, обработки запроса). Обычно - персентили.
  • 38. Принципы мониторинга БП (Как?) • Определить вместе с бизнесов основные БП и замониторить хотя бы их • Но в идеале надо мониторить все • Делать общие и детализированные показатели (например, все платежи и платежи по типам протоколов)
  • 39. Принципы мониторинга приложений (Как?) (1) • Мониторить все точки интеграции с обоих сторон, то есть и с серверной и с клиентской • Делать метрики как можно гранулярнее (чтобы проще и быстрее локализовывать) • Мониторить все количественные ресурсы (пулы соединений, очереди потоков и т.д.) • Не забываем мониторить свою виртуальную машину !
  • 40. Принципы мониторинга приложений (Как?) (2) • Выводить метрики по кластеру суммарно и отдельно по машинам • Выводить персентили времени ответа (хотя бы 95), количество запросов в секунду, отношение ошибок к общему числу запросов • Для HTTP ещё и отношение групп или отдельных кодов ошибок к общему числу запросов
  • 41. Выводы по инструментам мониторинга • Сразу делать подробные логи • Метрики выводить для серверных и клиентских интерфейсов и для внутренних ресурсов • В метриках выводить qps, персентили времени ответа (хотя бы 95й) и отношение ошибок к общему числу запросов • Вывести health check
  • 42. Практика • Системы мониторинга и сбора логов • Интерфейсы мониторинга • Инструменты мониторинга в JVM-based приложениях
  • 43. Система централизованной обработки логов. • RELK (RabbitMQ + Elasticsearch + Logstash + Kibana) • traceId
  • 45. Системы мониторинга Zabbix. • Бесплатный и открытый • Всё-в-одном (сбор, хранение, обработка, оповещения) • Гибкие настройки прав доступа • Pull-модель • Умеет масштабироваться сам и можно масштабировать БД • Плохо умеет работать с динамическими метриками • Не умеет обрабатывать метрики «на лету» • Плохая интеграция с инструментов визуализации Grafana
  • 46. Системы мониторинга Graphite. • Бесплатный и открытый • Нет оповещений. Надо брать сторонние решения • Нет разграничений доступов. • Push-модель и простой протокол • Сам по себе не умеет масштабироваться • Отлично работает с динамическими метриками • Позволяет легко обрабатывать метрики «на лету» • Отличная интеграция с инструментов визуализации Grafana
  • 47. Системы мониторинга Dynatrace. • Стоит денег, причём немало • Инвазивный мониторинг + профилировщик • Удобный интерфейс и визуализация
  • 49. Интерфейсы мониторинга. Pull. JMX. Преимущества. • Eсть в самой JVM, а средства управления есть в JDK • То есть можно что-то моментальное посмотреть и без внешней системы мониторинга • Есть система разграничения прав с аутентификацией и двумя ролями • Есть плагины для систем мониторинга
  • 50. Интерфейсы мониторинга. Pull. JMX. Недостатки. • Графики рисует только с момента подключения и после отключения сбрасывает • Данные не сохраняются между запусками приложения • Для подключения к внешней системе мониторинга нужен агент, который будет вызывать эти интерфейсы
  • 51. Интерфейсы мониторинга. Pull. HTTP. Преимущества. • Не нужно специальных средств для вызова • Просто парсить ответ
  • 52. Интерфейсы мониторинга. Pull. HTTP. Недостатки. • В оффлайн приложения надо добавлять веб- сервер • Надо придумывать логику для авторизации и аутентификации • Для подключения к внешней системе мониторинга нужен агент, который будет вызывать эти интерфейсы
  • 53. Интерфейсы мониторинга. Pull. Файл. Преимущества. • Не нужно специальных средств для формирования метрик • Не нужно специальных средств для вызова • Просто парсить ответ • Готовые средства для разграничения доступа
  • 54. Интерфейсы мониторинга. Pull. Файл. Недостатки. • Нужно место на диске • Нужна синхронизация между периодами сброса данных на диск и периодом их забора с сервера • Для подключения к внешней системе мониторинга нужен агент, который будет читать файл
  • 55. Интерфейсы мониторинга. Push. Достоинства. • Для подключения метрик не нужно их явно прописывать в отдельной системе. Особенно если прописывать их там имеют права отдельные от разработчиков люди. • Динамические метрики просто работают. • При добавлении/удалении экземпляров приложений ничего не надо делать
  • 56. Интерфейсы мониторинга. Push. Недостатки. • Всё равно надо что-то придумывать с AAA • Можно легко залить тестовые или кривые метрики в прод систему
  • 57. Выводы по интерфейсам мониторинга • Для JVM всегда выводить метрики в JMX • Для приложений push удобнее, чем pull, так как можно быстрее получить рабочее решение и часто бывают динамические метрики • То есть Graphite
  • 58. Библиотеки для приложений. Dropwizard metrics. • Есть все виды метрик • Есть интеграции для Spring и Guice • Есть интеграции с популярными библиотеками и серверами (httpclient, jetty и т.д.) • Есть возможность вывода метрик в разные интерфейсы (файл, JMX, Graphite и т.д.) • Есть возможность писать декларативно (на аннотациях) и императивно • Используется в разных проектах (например, Cassandra)
  • 59. Особенности работы с Graphite • Выбранный формат метрик: $type.type. $cluster.cluster.$host.host.$metric.metric • БД - RRD (Round-robin database) • Между точками - каталоги. Последнее название - файл. • Свой веб-интерфейс не очень • Но Grafana из коробки отлично работает с Graphite
  • 60. Что почитать • Книга «Site Reliability Engineering»от Google • Книга «Release it! Проектирование и дизайн ПО для тех, кому не всё равно» • Статья в Qiwipedia «Средства диагностики и мониторинга серверных приложений Qiwi» • Статья в Qiwipedia «Эксплуатационные требования к серверному приложению» • RTFM