Upload
positive-hack-days
View
270
Download
6
Embed Size (px)
Citation preview
Система мониторинга Zabbix в процессах разработки и тестирования
Алексей БуровDevOps
ПроблемаОтсутствие/недостаточный мониторинг
Типичные проблемы
• Стенды для сборки и тестирования требуют наблюдения за параметрами систем
• Если нет мониторинга, то о проблеме обычно узнают по нарушению функциональности приложения или ОС
• Проблемы бывают простейшие: закончилось место на диске, не работает служба, недоступен какой-либо сервис 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