Что такое Zabbix и Prometheus простыми словами

Какие задачи решаем с их помощью

Что такое Zabbix и Prometheus простыми словами

Коротко

  • 01
    Проект

    Система учета для цветочного бизнеса POSiFLORA

  • 02
    Задачи мониторинга

    Отслеживать работу системы и находить ошибки

    Оповещать девопс-инженера об ошибках в Telegram

    Обеспечить бесперебойную работу системы в дни пиковых нагрузок

  • 03
    Инструменты
    • Zabbix monitoring system
    • Prometheus monitoring + Grafana
  • 04
    Результаты
    • Настроили мониторинг: работа системы постоянно отслеживается
    • При нахождении ошибок система сразу же сообщает о них в Telegram
    • Непрерывность работы POSiFLORA составляет 99,95%, а возможное время аварийной остановки — не более часа в год

Проект: CRM POSIFLORA для цветочного бизнеса

CRM POSiFLORA помогает цветочному бизнесу держать работу под контролем: продавать букеты, учитывать остатки и часы работы сотрудников, планировать закупки. Все процессы — в одном интерфейсе. Работать с POSiFLORA удобно.

В приложении уже работает больше 1000 пользователей: от небольших студий до крупных цветочных сетей со множеством магазинов.

скриншот1
Так выглядит интерфейс POSiFLORA

Для отслеживания неполадок используем две системы мониторинга: Prometheus и Zabbix

Чтобы POSiFLORA работала стабильно и не ломалась, мы отслеживаем неполадки с помощью системы мониторинга. Она собирает и анализирует данные, например:

  • скорость загрузки каталога товаров;
  • объем трафика;
  • использование оперативной памяти.

При обнаружении опасности система мониторинга отправляет уведомление девопс-инженеру. Он разбирается с проблемой, и POSiFLORA продолжает работать без сбоев.

Система мониторинга должна следить не только за самой программой, которой пользуются клиенты, но и за инфраструктурой сервера, на который она загружена. Пользователи не видят серверную часть, но если она сломается, работать в программе не получится.

Раньше мы использовали одну систему мониторинга — Zabbix. Это универсальный open source инструмент для отслеживания работы и серверной, и клиентской части системы. Однако Заббикс стал одной из причин излишней нагрузки на серверное оборудование. Чтобы это исправить, мы перебросили часть задач на Prometheus.

Теперь мы используем две системы:

  1. Заббикс мониторинг отвечает за работу клиентской части.
  2. Прометеус в связке с 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.

скриншот2
Так выглядят графики, построенные по метрикам агента MySQL Exporter

Какие задачи решаем с помощью Zabbix monitoring system

Мониторинг клиентской части

Zabbix мониторинг отслеживает параметры клиентской части POSiFLORA. Девопс-инженер создает запросы для проверки каждого параметра: количества активных устройств, скорости загрузки каталога, объема трафика и других. Система собирает и хранит данные.

скриншот3

Пример запроса Zabbix-server к Zabbix-agent на проверку количества активных устройств

Визуализация и оповещения

Чтобы девопс-инженер мог видеть все метрики сразу и анализировать их изменение во времени, Заббикс визуализирует данные в виде графиков.

Быстро реагировать на опасные ситуации помогает система триггеров и оповещений: девопс задает условия, при наступлении которых Zabbix monitoring понимает, что что-то идет не так, и присылает оповещение в Telegram. Девопс-инженер видит и решает проблему до того, как она нанесет вред.

скриншот4

Пример визуализации данных о работе POSiFLORA

Результаты: распределили нагрузку и обеспечили бесперебойную работу системы

  • Разделили задачи между Prometheus и Zabbix monitoring systems и решили проблему лишних соединений. Это обеспечивает стабильную работу POSiFLORA в дни пиковых нагрузок.
  • Настроили мониторинг: постоянно отслеживаем работу POSiFLORA и ее серверной инфраструктуры.
  • При нахождении ошибок система сразу же сообщает о них в Telegram.
  • Непрерывность работы POSiFLORA составляет 99,95%, а возможное время аварийной остановки — не более часа в год.

В чем бы вы ни нуждались, мы можем помочь!

Расскажите нам, с какими проблемами вы сталкиваетесь в своем бизнесе. Мы с нетерпением ждем вашего ответа.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.