Проекты

Что такое 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%, а возможное время аварийной остановки — не более часа в год.

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

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

Перезвонить вам, чтобы ответить на вопросы?

Когда с вами связаться?

Связаться по телефону:+7 499 321-59-32

Нажимая на кнопку, я принимаю условия политики и пользовательского соглашения

Фото эксперта
Дмитрий

Проектный менеджер

Получите ответ на ваш вопрос в любимом мессенджере

Выберите удобный мессенджер и начните диалог прямо сейчас

Telegram WhatsApp

Рассчитать стоимость проекта

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

Напишите ваше имя
Укажите ваш email

Выберите удобный для вас способ связи

Мы сразу получим ваш запрос и поможем в решении проблемы

Написать в Telegram

Написать в WhatsApp

Позвонить нам