Система мониторинга Zabbix
в процессах разработки и тестирования
Алексей Буров
DevOps
aburov@ptsecurity.com
Проблема
Отсутствие/недостаточный мониторинг
Типичные проблемы
• Стенды для сборки и тестирования требуют наблюдения за
параметрами систем
• Если нет мониторинга, то о проблеме обычно узнают по нарушению
функциональности приложения или ОС
• Проблемы бывают простейшие: закончилось место на диске, не
работает служба, недоступен какой-либо сервис DevOps со стороны
стенда и т.п.
• При разработке и тестировании проблема может встать острее, так
как продукт может быть нестабильным, с багами (для их выявления
мы его и тестируем)
Типичные проблемы при тестировании
При тестировании продукта требуется охватывать множество показателей:
• Логи – на предмет нахождения «плохого» события
• Загруженность сервера
• Доступность внутренних сервисов продукта
• Доступность внешних сервисов продукта
Проблема мониторинга при разработке и тестировании продукта
Изменяющийся от версии к версии список наблюдаемых параметров:
Release N.0 Release N+1.0
Ресурс A по HTTP Ресурс А по HTTPS
Сервис B -
Сервис С Сервис C
- Сервис D
Для ресурса X
критичное значения Y
Для ресурса X
критичное значения
Z
Решение
Система мониторинга в процессах разработки и тестирования
Виды мониторинга
По функциям:
• Мониторинг ситуации - оповещение о критических событиях/ошибках
• Мониторинг трендов - сбор информации для дальнейшего анализа
• Perfomance-мониторинг - отслеживание быстродействия системы
По типам:
• Системный мониторинг - мониторинг состояния ОС, системных служб
• Мониторинг приложений - реализуется внутри приложения
• Бизнес-метрики - реализуется внутри приложения
План решения от DevOps
• Разграничение зон ответственности между DevOps, Dev и QA
• zabbixtools
• Monitoring as Code
Разграничение зон ответственности
• Хост может иметь только одну Роль
• Роль может включать в себя несколько Профилей
• Профиль может включать в себя как отдельные Item/Trigger, так и другие Профили
• Группировка по объектам (Хост, Роль, Профиль)
zabbixtools в DevOpsHQ
zabbixtools - набор скриптов (Python + Powershell), расширяющий
функциональность Zabbix в части:
• кастомных проверок на Zabbix-агентах
• внешних проверок на Zabbix-сервере
• кастомизации оповещений (интеграция с различными сервисами и workflow)
• работы через API (массовое редактирование хостов и других сущностей)
• конфигурирование мониторинга при деплое продукта или тестов
Ссылка на zabbixtools в GitHub:
https://github.com/devopshq/zabbixtools
Monitoring as Code
Что позволяет данная схема?
• Настраивать мониторинг в зависимости от релиза продукта
• Держать мониторинг под версионным контролем (Monitoring as Code)
• Реализовать SMOKE-тестирование средствами системы мониторинга
• Разграничить ответственность между Dev/QA/DevOps
• Разработчикам и тестировщикам не нужно разбираться с работой Zabbix и его API
Конфигурация мониторинга на целевых серверах
При деплое продукта:
• Поддержка актуальности конфигурации мониторинга - на разработчиках
• Конфигурация мониторинга различается от ветке к ветке, от фичи к фиче
• SMOKE-тестирование уже при деплое продукта, даже без запуска тестов
При тестировании продукта:
• Поддержка актуальности конфигурации мониторинга - на тестировщиках
• SMOKE-тесты могут быть выполнены системой мониторинга
Решение
Примеры
Monitoring as Code
Monitoring as Code
Zabbix
Zabbix
Спасибо!
Вопросы?
Алексей Буров
DevOps
aburov@ptsecurity.com

Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров

  • 1.
    Система мониторинга Zabbix впроцессах разработки и тестирования Алексей Буров DevOps aburov@ptsecurity.com
  • 2.
  • 3.
    Типичные проблемы • Стендыдля сборки и тестирования требуют наблюдения за параметрами систем • Если нет мониторинга, то о проблеме обычно узнают по нарушению функциональности приложения или ОС • Проблемы бывают простейшие: закончилось место на диске, не работает служба, недоступен какой-либо сервис DevOps со стороны стенда и т.п. • При разработке и тестировании проблема может встать острее, так как продукт может быть нестабильным, с багами (для их выявления мы его и тестируем)
  • 4.
    Типичные проблемы притестировании При тестировании продукта требуется охватывать множество показателей: • Логи – на предмет нахождения «плохого» события • Загруженность сервера • Доступность внутренних сервисов продукта • Доступность внешних сервисов продукта
  • 5.
    Проблема мониторинга приразработке и тестировании продукта Изменяющийся от версии к версии список наблюдаемых параметров: Release N.0 Release N+1.0 Ресурс A по HTTP Ресурс А по HTTPS Сервис B - Сервис С Сервис C - Сервис D Для ресурса X критичное значения Y Для ресурса X критичное значения Z
  • 6.
    Решение Система мониторинга впроцессах разработки и тестирования
  • 7.
    Виды мониторинга По функциям: •Мониторинг ситуации - оповещение о критических событиях/ошибках • Мониторинг трендов - сбор информации для дальнейшего анализа • Perfomance-мониторинг - отслеживание быстродействия системы По типам: • Системный мониторинг - мониторинг состояния ОС, системных служб • Мониторинг приложений - реализуется внутри приложения • Бизнес-метрики - реализуется внутри приложения
  • 8.
    План решения отDevOps • Разграничение зон ответственности между DevOps, Dev и QA • zabbixtools • Monitoring as Code
  • 9.
    Разграничение зон ответственности •Хост может иметь только одну Роль • Роль может включать в себя несколько Профилей • Профиль может включать в себя как отдельные Item/Trigger, так и другие Профили • Группировка по объектам (Хост, Роль, Профиль)
  • 10.
    zabbixtools в DevOpsHQ zabbixtools- набор скриптов (Python + Powershell), расширяющий функциональность Zabbix в части: • кастомных проверок на Zabbix-агентах • внешних проверок на Zabbix-сервере • кастомизации оповещений (интеграция с различными сервисами и workflow) • работы через API (массовое редактирование хостов и других сущностей) • конфигурирование мониторинга при деплое продукта или тестов Ссылка на zabbixtools в GitHub: https://github.com/devopshq/zabbixtools
  • 11.
  • 12.
    Что позволяет даннаясхема? • Настраивать мониторинг в зависимости от релиза продукта • Держать мониторинг под версионным контролем (Monitoring as Code) • Реализовать SMOKE-тестирование средствами системы мониторинга • Разграничить ответственность между Dev/QA/DevOps • Разработчикам и тестировщикам не нужно разбираться с работой Zabbix и его API
  • 13.
    Конфигурация мониторинга нацелевых серверах При деплое продукта: • Поддержка актуальности конфигурации мониторинга - на разработчиках • Конфигурация мониторинга различается от ветке к ветке, от фичи к фиче • SMOKE-тестирование уже при деплое продукта, даже без запуска тестов При тестировании продукта: • Поддержка актуальности конфигурации мониторинга - на тестировщиках • SMOKE-тесты могут быть выполнены системой мониторинга
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.