Доклад является обобщением моего опыт по работе с системами мониторинга серверных приложений в Qiwi.
Цель доклада:
- Получить общее представление о подходах к мониторингу серверных приложений
- Разобраться с популярными средствами для мониторинга серверных приложений
Оглавление:
- Мотивация
- Теория
---- Определение
---- Модель системы с точки зрения мониторинга
---- Классификация систем мониторинга
---- Уровни мониторинга
---- Инструменты мониторинга
- Практика
---- Системы мониторинга и сбора логов
---- Интерфейсы мониторинга
---- Инструменты мониторинга в JVM-based приложениях
Проверка на прочность или нагрузочное тестирование с JmeterAleksey Derkach
Мой доклад на второй мини-конференции компании Anadea в феврале 2015 года. Обобщение опыта, полученного в результате проведения полноценной сессии нагрузочного тестирования Web-приложения с использованием Jmeter.
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровPositive Hack Days
1. Система мониторинга ресурсов различных отделов
2. Шаблоны и роли серверов, разграничение доступа и зон ответственности
3. ptzabbixtools - конфигурация мониторинга на целевых серверах
4. Пример встраивания системы мониторинга в процессы разработки/тестирования
Как сэкономить, вложив в информационную безопасность? Ivan Piskunov
Презентация к семинару "Как сэкономить, вложив в информационную безопасность?".
На семинаре мы расскажем как аудит безопасности для небольшого и среднего бизнеса поможет снизить операционные затраты, увеличить оборотные средства и в целом увеличь общую капитализацию (прибыль).
Ссылка на подробное описание https://ipiskunov.blogspot.ru/2017/12/blog-post.html
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...Ivan Piskunov
Презентация к выступлению "Особенности проведения аудита безопасности корпоративной IT-инфраструктуры", 15 мая 2018, Fast Track
Ядром доклада станет демонстрация нескольких средств аудита (ПО, скриптов) для Windows Server, инфраструктуры AD, Linux: как они работают, какие дают результаты и как облегчают жизнь аудитору.
Анонс выступления
https://ipiskunov.blogspot.ru/2018/05/phdays-8-digital-bet.html
Telegram-канал
https://t.me/w2hack или @w2hack
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаYandex
Нагрузочное тестирование интернет-сервиса начинается с того, что мы выясняем ожидаемый профиль нагрузки. Вооружившись подходящим инструментом, мы проводим типовую последовательность тестов и измеряем основные показатели производительности: ёмкость, скорость и надёжность. При этом особое внимание необходимо уделять наблюдению за состоянием ресурсов тестируемой системы.
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоPositive Hack Days
1. Смотрим по сторонам - обычный процесс авто-тестирования
2. Убираем лишнее - реалистичный целевой процесс
3. DataDrivenTesting - создание спец. инструментов для конкретных сценариев
4. RobotFramework - что делать, если простых сценариев слишком много
Часто о нагрузочном тестировании рассказывают через призму используемого инструментария, хорошо раскрывая слово «нагрузочное» и часто оставляя слово «тестирование» за кадром. Так давайте же попробуем поговорить о месте именно тестирования в нагрузочном тестировании.
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
1. VIX API против pysphere.
2. vSphereTools - это набор скриптов от DevOps для поддержки работы с vSphere и виртуальными машинами.
3. Описание инструмента, его достоинства и недостатки, возможные доработки.
Проверка на прочность или нагрузочное тестирование с JmeterAleksey Derkach
Мой доклад на второй мини-конференции компании Anadea в феврале 2015 года. Обобщение опыта, полученного в результате проведения полноценной сессии нагрузочного тестирования Web-приложения с использованием Jmeter.
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровPositive Hack Days
1. Система мониторинга ресурсов различных отделов
2. Шаблоны и роли серверов, разграничение доступа и зон ответственности
3. ptzabbixtools - конфигурация мониторинга на целевых серверах
4. Пример встраивания системы мониторинга в процессы разработки/тестирования
Как сэкономить, вложив в информационную безопасность? Ivan Piskunov
Презентация к семинару "Как сэкономить, вложив в информационную безопасность?".
На семинаре мы расскажем как аудит безопасности для небольшого и среднего бизнеса поможет снизить операционные затраты, увеличить оборотные средства и в целом увеличь общую капитализацию (прибыль).
Ссылка на подробное описание https://ipiskunov.blogspot.ru/2017/12/blog-post.html
Особенности проведения аудита безопасности корпоративной IT-инфраструктуры_PH...Ivan Piskunov
Презентация к выступлению "Особенности проведения аудита безопасности корпоративной IT-инфраструктуры", 15 мая 2018, Fast Track
Ядром доклада станет демонстрация нескольких средств аудита (ПО, скриптов) для Windows Server, инфраструктуры AD, Linux: как они работают, какие дают результаты и как облегчают жизнь аудитору.
Анонс выступления
https://ipiskunov.blogspot.ru/2018/05/phdays-8-digital-bet.html
Telegram-канал
https://t.me/w2hack или @w2hack
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаYandex
Нагрузочное тестирование интернет-сервиса начинается с того, что мы выясняем ожидаемый профиль нагрузки. Вооружившись подходящим инструментом, мы проводим типовую последовательность тестов и измеряем основные показатели производительности: ёмкость, скорость и надёжность. При этом особое внимание необходимо уделять наблюдению за состоянием ресурсов тестируемой системы.
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоPositive Hack Days
1. Смотрим по сторонам - обычный процесс авто-тестирования
2. Убираем лишнее - реалистичный целевой процесс
3. DataDrivenTesting - создание спец. инструментов для конкретных сценариев
4. RobotFramework - что делать, если простых сценариев слишком много
Часто о нагрузочном тестировании рассказывают через призму используемого инструментария, хорошо раскрывая слово «нагрузочное» и часто оставляя слово «тестирование» за кадром. Так давайте же попробуем поговорить о месте именно тестирования в нагрузочном тестировании.
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
1. VIX API против pysphere.
2. vSphereTools - это набор скриптов от DevOps для поддержки работы с vSphere и виртуальными машинами.
3. Описание инструмента, его достоинства и недостатки, возможные доработки.
А в какой сфере вы внедряете инновации?
Как это делаю я вместе с моей командой #GoIT в образовании и IT, видео выступления и интересная Q&A на InnoTech 2016: https://youtu.be/je0LSHillsY?t=3h6m51s
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
Огромная часть работы службы эксплуатации, так или иначе, связана с мониторингом существующей инфраструктуры.
Если система мониторинга настроена хорошо, она позволяет сократить время простоя, какие-то проблемы показать на ранней стадии, формализовать рабочие процессы команды админов.
То есть она является носителем знания о нашей инфраструктуре и о том, как именно работают админы.
Можно ли извлечь дополнительную пользу из этого?
В hh.ru мы используем систему мониторинга ещё и как check list для повседневных задач админов (алерты в данном случае являются задачами для человека: сделал задачу - триггер проверил результат и погас), идея взята из TDD.
Также расскажу, как мы работаем с внештатными ситуациями: реагируем на алерты, чиним, разбираем и классифицируем.
Еще на основе разобранных инцидентов мы считаем показатели работы службы эксплуатации, из этих показателей высчитываются наши премии (данный KPI получился удачным: с ним согласен и бизнес и админы).
Николай Сивко, сооснователь Okmeter.io
Многие клиенты Okmeter monitoring не представляют, что именно им нужно от мониторинга.
В процессе общения с такими клиентами у нас сформировался более-менее общий алгоритм покрытия проекта мониторингом от ошибок оборудования до бизнес-метрик.
Правильные метрики, правильная работа с алертами и т.д.
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Ontico
1. Мониторинг высоконагруженного проекта.
1.1. Специфика мониторинга высоконагруженного проекта: гранулярность мониторинга, надежность системы мониторинга, система оповещений.
1.2. Мониторинг и контроль распределенных систем.
1.3. Специфика организации оповещений в высоконагруженном проекте. Превентивный мониторинг.
2. Резервирование и резервное копирование в высоконагруженном проекте.
2.1. Резервирование и резервное копирование - разные вещи.
2.2. Резервирование: на уровне сервера, дата-центра, географически распределенных площадок.
2.1. Организация резервного копирования. Сохранность часто обновляемых данных.
3. Обслуживание высоконагруженного проекта.
3.1. Организация поддержки высоконагруженного проекта: опыт, специфика работы.
3.2. Организация дежурств, эскалация оповещений.
3.3. Аварии в высоконагруженных проектах: примеры из жизни.
Вебинар «Интеграционные решения: ИТ-сердце вашей компании» http://www.croc.ru/action/detail/21799/
Презентация Михаила Чарикова, архитектора интеграционных решений компании КРОК
Андрей Сильчук: "Автоматическое тестирование".Hub-IT-School
Выступление Андрея Сильчука об автоматическом тестировании ПО на Hub QA meetup #1.
Больше мероприятий:
https://vk.com/hub.itschool
https://facebook.com/Hub.IT.School
Автоматическое тестирование и с чем его едятMarina Peregud
Agenda
Автоматизация? Какая еще автоматизация? Автоматическое тестирование ПО. Зачем вообще?
Отличие от мануального тестирования ПО, или Ручник vs человек разумный.
Имею желание, но не имею возможности, или какие знания были бы полезны в этой области.
Когда стоит внедрять автоматизацию.
ROI и другие непонятные слова на три буквы.
www.cmcons.com. Практика и технология внедрения процесса конфигурационного управления и управления изменениями с применением IBM Rational ClearCase и ClearQuest
SICenter - презентация по BSM (Business Service Management) - системам монито...Yuriy Eysmont
Управление бизнес-услугами (Business Service Management, BSM) - это стратегия управления ИТ, осуществляемая средствами программного обеспечения с точки зрения перспектив бизнеса. Реализуя BSM, компании могут переориентировать свои ИТ-операции таким образом, чтобы они напрямую поддерживали критичные цели бизнеса. Такая стратегия помогает компаниям быстро распознавать и оптимизировать ключевые процессы на своем предприятии - и это действительно важно, ибо качество базовых бизнес-услуг может серьезно повлиять на успешность бизнеса.
Similar to Доклад "Мониторинг серверных приложений" (20)
2. Цель доклада
• Получить общее представление о подходах к
мониторингу серверных приложений
• Разобраться с существующими в компании
средствами для мониторинга серверных
приложений
3. Введение
• Данный доклад является обобщением моего
опыта по работе с мониторингом в рамках
работы в командах P3 и процессинг QW и
работы с рамках рабочей группы по SRE
5. Мотивация (1)
1.Выпустили систему в прод
2.В проде обнаружились ошибки бизнес-
логики
3.В проде обнаружились ошибки
производительности
4.Бизнес теряет деньги
5.Бизнес теряет репутацию
6. Мотивация (2)
• Факт 1 - писать без ошибок невозможно
(неполное ТЗ, ошибки реализации)
• Факт 2 - тестирование всё не покрывает
• Факт 3 - чем больше покрытие, тем больше
времени отнимает написание тестов
• Факт 4 - тестирование требует ресурсов
людских, вычислительных и временных
(особенно, интеграционное и нагрузочное)
7. Мотивация (3)
• Надо смириться с тем, что в проде всё равно
будут проблемы
• И надо научится быстро их диагностировать
и исправлять
8. Теория
• Определение
• Модель системы с точки зрения мониторинга
• Классификация систем мониторинга
• Уровни мониторинга
• Инструменты мониторинга
10. Модель системы с точки
зрения мониторинга
• Будем считать что система состоит из
процессов, которые могут проводить
обработку приходящих к ним запросов
• Онлайн система - система, в которой
запросы приходят снаружи системы
• Оффлайн система - система, в которой
запросы создаются внутри самой системы
(например, по таймеру)
13. Классификация (по
предметной области)
• Бизнес-мониторинг (прибыль, оборот и т.д.)
• Эксплуатационный мониторинг
(производительность, доступность,
потребление ресурсов и т.д.)
• ИБ-мониторинг
• и т.д.
14. Классификация (по
способу сбора)
• Неинвазивный (когда система сама
предоставляет метрики)
• Инвазивный (когда метрики собираются
внешней системой без участия приложения)
15. Классификация
(по источнику)
• Внешние (когда характеристика собираются
не с самой системы, а с её клиента)
• Внутренние (когда характеристика
собираются с самой системы)
17. Классификация
(по глубине)
• Сквозной мониторинг (когда временные
метки ставятся внутри системы на запрос и
далее куда-то сбрасываются)
• Независимый мониторинг (когда каждый
интерфейс мониторится сам по себе)
18. Уровни мониторинга
(Где?)
• Уровень бизнес-процессов (счета, платежи,
авторизация)
• Уровень приложений (и БД)
• Уровень инфраструктуры (ОС, сеть, ВМ,
железо)
20. Мониторинг БП.
Достоинства
• Обычно его очень просто настроить
(например, один запрос в БД)
• Требует мало ресурсов, так как мало данных
• Показывает состояние самой крупной
абстракции - БП
• Поэтому позволяет оценить степень влияния
проблемы на бизнес
21. Мониторинг БП.
Недостатки
• Низкая степень локализации (не видно, в
какой части конвейера сломалось)
• Легко не заметить мелкие проблемы
(например, на общей очереди платежей
можно не заметить исчезновения мелкого
провайдера)
22. Мониторинг приложений.
Достоинства.
• Высокая степень локализации (до
конкретного интерфейса конкретного
экземпляра приложения)
• Чаще всего указывает на конкретный
источник проблем, так как основа БП -
приложение
23. Мониторинг приложений.
Недостатки.
• Для высокой степени локализации надо много
сделать в коде или в инфраструктуре
• Часто такие метрики бывают динамическими
(например, содержат URL клиентов, которые
изменяются)
• Поэтому требует много ресурсов, так как много
данных
• Надо поддерживать больше число графиков,
панелей и т.д.
24. Мониторинг
инфраструктуры.
• Если проблема в инфраструктуре, то
метрики приложения часто не помогают
(например, когда кончается место на диске в
приложении надо будет парить логи на
наличие конкретного сообщения)
• Без мониторинга приложений сложно
связать их с проблемами в БП
• Обычно ими занимается эксплуатация
29. Журналы событий.
Преимущества
• Детальные (время события, поток, контекст
вызова, контекст запроса)
• Просто использовать
• Не требуют специальных инструментов
обработки
30. Журналы событий.
Недостатки.
• Высокая скорость появления записей (в
нагруженной системе)
• Занимают много места (в нагруженной системе)
• Сложно обрабатывать, так как надо знать
какие записи обрабатывать и структуру этих
записей
• Подсистема журналирования должна быть в
хорошем состоянии
32. Метрики.
Преимущества.
• Более агрегированные по сравнению с
логами
• Их обычно существенно меньше, чем
вариантов логов
• Занимают существенно меньше места на
диске
• Просто обрабатывать, так как структура
обычно простая
34. Health check
• Бинарный (да/нет) интерфейс в системе,
который говорит о том, работает система
или нет.
• И опционально, если не работает, то какая
подсистема.
37. Виды метрик
• Значение
• Счетчик
• Количество событий в единицу времени
(например, запросов). Обычно в секунду.
• Распределение времени событий (например,
обработки запроса). Обычно - персентили.
38. Принципы мониторинга БП
(Как?)
• Определить вместе с бизнесов основные БП
и замониторить хотя бы их
• Но в идеале надо мониторить все
• Делать общие и детализированные
показатели (например, все платежи и
платежи по типам протоколов)
39. Принципы мониторинга приложений
(Как?) (1)
• Мониторить все точки интеграции с обоих
сторон, то есть и с серверной и с клиентской
• Делать метрики как можно гранулярнее
(чтобы проще и быстрее локализовывать)
• Мониторить все количественные ресурсы
(пулы соединений, очереди потоков и т.д.)
• Не забываем мониторить свою виртуальную
машину !
40. Принципы мониторинга приложений
(Как?) (2)
• Выводить метрики по кластеру суммарно и
отдельно по машинам
• Выводить персентили времени ответа (хотя
бы 95), количество запросов в секунду,
отношение ошибок к общему числу запросов
• Для HTTP ещё и отношение групп или
отдельных кодов ошибок к общему числу
запросов
41. Выводы по инструментам
мониторинга
• Сразу делать подробные логи
• Метрики выводить для серверных и
клиентских интерфейсов и для внутренних
ресурсов
• В метриках выводить qps, персентили
времени ответа (хотя бы 95й) и отношение
ошибок к общему числу запросов
• Вывести health check
45. Системы мониторинга
Zabbix.
• Бесплатный и открытый
• Всё-в-одном (сбор, хранение, обработка, оповещения)
• Гибкие настройки прав доступа
• Pull-модель
• Умеет масштабироваться сам и можно масштабировать БД
• Плохо умеет работать с динамическими метриками
• Не умеет обрабатывать метрики «на лету»
• Плохая интеграция с инструментов визуализации Grafana
46. Системы мониторинга
Graphite.
• Бесплатный и открытый
• Нет оповещений. Надо брать сторонние решения
• Нет разграничений доступов.
• Push-модель и простой протокол
• Сам по себе не умеет масштабироваться
• Отлично работает с динамическими метриками
• Позволяет легко обрабатывать метрики «на лету»
• Отличная интеграция с инструментов визуализации Grafana
49. Интерфейсы мониторинга.
Pull. JMX. Преимущества.
• Eсть в самой JVM, а средства управления
есть в JDK
• То есть можно что-то моментальное
посмотреть и без внешней системы
мониторинга
• Есть система разграничения прав с
аутентификацией и двумя ролями
• Есть плагины для систем мониторинга
50. Интерфейсы мониторинга.
Pull. JMX. Недостатки.
• Графики рисует только с момента
подключения и после отключения
сбрасывает
• Данные не сохраняются между запусками
приложения
• Для подключения к внешней системе
мониторинга нужен агент, который будет
вызывать эти интерфейсы
52. Интерфейсы мониторинга.
Pull. HTTP. Недостатки.
• В оффлайн приложения надо добавлять веб-
сервер
• Надо придумывать логику для авторизации и
аутентификации
• Для подключения к внешней системе
мониторинга нужен агент, который будет
вызывать эти интерфейсы
53. Интерфейсы мониторинга.
Pull. Файл. Преимущества.
• Не нужно специальных средств для
формирования метрик
• Не нужно специальных средств для вызова
• Просто парсить ответ
• Готовые средства для разграничения
доступа
54. Интерфейсы мониторинга.
Pull. Файл. Недостатки.
• Нужно место на диске
• Нужна синхронизация между периодами
сброса данных на диск и периодом их забора
с сервера
• Для подключения к внешней системе
мониторинга нужен агент, который будет
читать файл
55. Интерфейсы мониторинга.
Push. Достоинства.
• Для подключения метрик не нужно их явно
прописывать в отдельной системе. Особенно
если прописывать их там имеют права
отдельные от разработчиков люди.
• Динамические метрики просто работают.
• При добавлении/удалении экземпляров
приложений ничего не надо делать
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