Коротко
-
01
Проект
Система учета для цветочного бизнеса POSiFLORA
-
02
Задачи мониторинга
Отслеживать работу системы и находить ошибки
Оповещать девопс-инженера об ошибках в Telegram
Обеспечить бесперебойную работу системы в дни пиковых нагрузок
-
03
Инструменты
- Zabbix monitoring system
- Prometheus monitoring + Grafana
-
04
Результаты
- Настроили мониторинг: работа системы постоянно отслеживается
- При нахождении ошибок система сразу же сообщает о них в Telegram
- Непрерывность работы POSiFLORA составляет 99,95%, а возможное время аварийной остановки — не более часа в год
Проект: CRM POSIFLORA для цветочного бизнеса
CRM POSiFLORA помогает цветочному бизнесу держать работу под контролем: продавать букеты, учитывать остатки и часы работы сотрудников, планировать закупки. Все процессы — в одном интерфейсе. Работать с POSiFLORA удобно.
В приложении уже работает больше 1000 пользователей: от небольших студий до крупных цветочных сетей со множеством магазинов.
Для отслеживания неполадок используем две системы мониторинга: Prometheus и Zabbix
Чтобы POSiFLORA работала стабильно и не ломалась, мы отслеживаем неполадки с помощью системы мониторинга. Она собирает и анализирует данные, например:
- скорость загрузки каталога товаров;
- объем трафика;
- использование оперативной памяти.
При обнаружении опасности система мониторинга отправляет уведомление девопс-инженеру. Он разбирается с проблемой, и POSiFLORA продолжает работать без сбоев.
Система мониторинга должна следить не только за самой программой, которой пользуются клиенты, но и за инфраструктурой сервера, на который она загружена. Пользователи не видят серверную часть, но если она сломается, работать в программе не получится.
Раньше мы использовали одну систему мониторинга — Zabbix. Это универсальный open source инструмент для отслеживания работы и серверной, и клиентской части системы. Однако Заббикс стал одной из причин излишней нагрузки на серверное оборудование. Чтобы это исправить, мы перебросили часть задач на Prometheus.
Теперь мы используем две системы:
- Заббикс мониторинг отвечает за работу клиентской части.
- Прометеус в связке с Grafana и экспортерами Node Exporter и MySQL Exporter — за работу серверной части.
В статье рассказываем о мониторинге с помощью Prometheus и Zabbix: что это, как работает и зачем нам понадобилась установка сразу двух систем.
Проблема: Zabbix monitoring system создавала лишнюю нагрузку
POSiFLORA использует для работы облачные сервера Yandex.Cloud. У них есть лимит нагрузки: одновременно сервер выдерживает 50 тысяч подключений к сети. Если хотя бы один сервер достигнет лимита, POSiFLORA начнет тормозить и выдавать ошибки.
В обычные дни система справляется с нагрузкой, но в праздники количество операций резко увеличивается и число сетевых подключений тоже. В один из таких дней мы заметили, что приближаемся к лимиту. Если подключений будет больше, POSiFLORA не сможет вовремя обрабатывать команды флористов и работа цветочных магазинов встанет.
Чтобы этого не допустить, девопс-инженер проанализировал работу системы и нашел компоненты, которые создают слишком много подключений. Одним из них оказался агент Zabbix: на него приходилось 8—9 тысяч соединений. Если их число уменьшить, риск перегрузки системы снизится.
Мы выяснили причину лишних соединений Zabbix-agent — что это было связано с его реакцией на перезапуск Docker-контейнеров. Контейнеры — это безопасная «упаковка» для программного кода. В ней он загружается на сервер и исполняется, не конфликтуя с другими компонентами системы.
При перезапуске контейнеры создают виртуальные сетевые интерфейсы. Заббикс каждый раз их распознавала как новый объект мониторинга, собирала метрики и отдавала серверу. На каждую метрику Zabbix-agent создавала по соединению — из-за этого возникала лишняя нагрузка.
Решение: разделить мониторинг между Zabbix и Prometheus
Чтобы снизить число сетевых соединений, мы отдали серверный мониторинг Prometheus. Сам Прометеус — это база данных. Для полноценной работы его дополняют агентами для сбора метрик и инструментами визуализации.
Отслеживание контейнеров — часть серверного мониторинга. Поэтому лишние соединения Заббикс пропали, когда она перестала следить за контейнерами. Прометеус получает и отдает все метрики в одном соединении. Он создает меньше нагрузки, чем Заббикс.
Тем не менее полностью перейти на Прометеус мониторинг нельзя: он не умеет следить за клиентской частью POSiFLORA. Мы решили разделить работу между двумя системами мониторинга: за серверной частью, включая контейнеры, следит Прометеус, за клиентской — Заббикс.
Какие задачи решает Prometheus monitoring system
Мониторинг серверной части
Чтобы отслеживать состояние сервера, мы провели настройку мониторинга Прометеус в связке с Grafana и агентами Node Exporter и MySQL Exporter:
- Node Exporter собирает системные метрики: данные об использовании оперативной памяти, загрузке процессора и сотни других показателей;
- MySQL Exporter собирает метрики сервера базы данных MySQL.
Агенты Прометеус устанавливают на целевом сервере. Они собирают нужные данные — metrics, или метрики. Переводят их на понятный Прометеус язык и отправляют ему по запросу. В нашем случае Node Exporter agent и MySQL Exporter agent отдают Прометеус данные примерно каждые 10 секунд.
Визуализация и оповещения
Чтобы с данными было удобно работать, к Prometheus подключена Grafana — инструмент визуализации. Она строит информативные графики и отправляет уведомления об ошибках в Telegram.
Какие задачи решаем с помощью Zabbix monitoring system
Мониторинг клиентской части
Zabbix мониторинг отслеживает параметры клиентской части POSiFLORA. Девопс-инженер создает запросы для проверки каждого параметра: количества активных устройств, скорости загрузки каталога, объема трафика и других. Система собирает и хранит данные.
Визуализация и оповещения
Чтобы девопс-инженер мог видеть все метрики сразу и анализировать их изменение во времени, Заббикс визуализирует данные в виде графиков.
Быстро реагировать на опасные ситуации помогает система триггеров и оповещений: девопс задает условия, при наступлении которых Zabbix monitoring понимает, что что-то идет не так, и присылает оповещение в Telegram. Девопс-инженер видит и решает проблему до того, как она нанесет вред.
Результаты: распределили нагрузку и обеспечили бесперебойную работу системы
- Разделили задачи между Prometheus и Zabbix monitoring systems и решили проблему лишних соединений. Это обеспечивает стабильную работу POSiFLORA в дни пиковых нагрузок.
- Настроили мониторинг: постоянно отслеживаем работу POSiFLORA и ее серверной инфраструктуры.
- При нахождении ошибок система сразу же сообщает о них в Telegram.
- Непрерывность работы POSiFLORA составляет 99,95%, а возможное время аварийной остановки — не более часа в год.
Telegram
WhatsApp
+7 499 321-59-32
contact@orbitsoft.com