Prometheus vs Zabbix: отличия и сходства систем мониторинга
В этой статье мы рассмотрим две основных системы мониторинга: Prometheus vs Zabbix. Чем они похожи, а чем отличаются? Далее в материале.
Мы выбрали и сравнили два самых популярных инструмента мониторинга: Prometheus vs Zabbix. Какой из них подойдёт вам? Давайте разбираться.
Краткий обзор Prometheus
Prometheus — это система мониторинга с открытым исходным кодом. Она предоставляет пользователям язык запросов, возможности хранения и визуализации. Система собирает метрики в реальном времени и записывает их в базу данных временных рядов.
Модель данных Prometheus может определять показатели по имени и/или тегам. Система написана на Go и распространяется по лицензии Apache 2 License, а исходный код доступен на GitHub.
Как проект с открытым исходным кодом Prometheus пользуется широкой поддержкой сообщества и поэтому имеет достаточно клиентских библиотек, которые обеспечивают простое взаимодействие с ним. Кроме того, Prometheus имеет встроенную поддержку таких сервисов, как Docker и Kubernetes.
Краткий обзор Zabbix
Zabbix — это программное обеспечение для мониторинга множества параметров сетей, серверов, приложений, виртуальных машин и облачных сервисов. Программа может собирать метрики, обнаруживать проблемы, визуализировать и отправлять уведомления. Веб-интерфейс Zabbix обеспечивает простое взаимодействие со всей статистикой, визуализациями и настройками параметров.
Сам Zabbix не хранит данные, но может использовать широкий спектр баз данных. Бэкенд Zabbix написан на C, а веб-интерфейс — на PHP.
Prometheus vs Zabbix: сравнение важных моментов
Сбор метрик
Prometheus — это инструмент со встроенными функциями, поэтому пользователям не нужно устанавливать различные плагины или демоны для сбора показателей. Обнаружение службы также происходит автоматически, что ускоряет работу. Благодаря большому сообществу многие сервисы могут отправлять метрики в формате Prometheus. Если некоторые службы не могут этого сделать, есть множество библиотек, которые помогают экспортировать существующие метрики из сторонних систем в качестве метрик Prometheus. Эти библиотеки называются экспортёрами. Популярные сервисы, такие как Kubernetes и Docker, поддерживают метрики Prometheus.
Prometheus разработан, чтобы периодически получать метрики из целевой системы. Также можно собирать метрики с помощью механизма push. Это может потребоваться в ситуациях, когда службы мониторинга защищены брандмауэром. Для этого используется специальный компонент pushgateway, который устанавливается отдельно.
Поскольку Zabbix изначально разрабатывался для серверов мониторинга, он ориентирован на хосты. С точки зрения пользователя, Zabbix разделён на две большие части: сервер и агенты. Сервер расположен на одной машине, которая собирает и хранит статистические данные. Агенты расположены на тех машинах, с которых собираются данные.
Агенты Zabbix поддерживают как пассивные, так и активные проверки. Пассивные проверки означают, что Zabbix-сервер запрашивает значение у Zabbix-агента, а агент обрабатывает запрос и возвращает значение Zabbix-серверу. Активные проверки означают, что агент Zabbix запрашивает список активных проверок с сервера Zabbix, а затем периодически отправляет результаты.
Если нет возможности установить агент, Zabbix предлагает базовый безагентный мониторинг. Так вы можете проверять доступность сетевых сервисов и выполнять удалённые команды.
Хранилище данных: Prometheus vs Zabbix
Prometheus хранит данные в собственной базе данных временных рядов (TSDB). Имея собственную TSDB, инструмент может получать и обрабатывать больше метрик, чем другие системы мониторинга. Prometheus может записывать данные с точностью до миллисекунды. Система сама по себе хранит инфу до 14 дней, и это усложняет ведение учёта и прогнозирование. Чтобы продлить срок хранения данных — настройте удалённое хранилище.
Zabbix использует внешнюю базу данных для хранения инфы. БД Zabbix нужно создавать во время его установки. На данный момент поддерживаются: MySQL, PostgreSQL, Oracle, IBM DB2 и SQLite.
Prometheus хранит только значения временных рядов. Он не подходит для текста, логов или журналов событий. Если вы используете Prometheus с Grafana, то вы легко найдёте обходной путь с помощью Grafana Loki. Для журналов лучше использовать специализированные продукты.
Zabbix предоставляет базовую функциональность для хранения некоторых текстовых значений, их анализа и настройки триггеров.
Визуализация
У Prometheus есть Expression Browser, простой, но полезный инструмент визуализации. У браузера нет функций полноценной панели мониторинга. Используйте его для выполнения подробных запросов к сохранённым метрикам. Браузер Expression не отображает показатели, за которыми вы наблюдаете в течение длительного периода времени. Он работает как консоль исследования: вы запрашиваете свою БД, меняете запрос и находите ответы на вопросы.
Чтобы в полной мере наблюдать и анализировать свои графики, вам надо установить полноценный инструмент визуализации. Grafana имеет встроенную поддержку Prometheus. Вы сможете эффективно использовать оба инструмента в полной мере.
У Zabbix есть собственный веб-интерфейс, в котором есть панель управления с гибкими настройками. Эта функция по умолчанию, вам не нужно ничего устанавливать или настраивать. Веб-интерфейс Zabbix предоставляет несколько вариантов: панели мониторинга на основе виджетов, графики, сетевые карты, слайд-шоу, детализированные отчеты. По умолчанию интерфейс Zabbix имеет несколько тем. Также пользователи могут создавать собственные.
Prometheus vs Zabbix: оповещение
Чтобы управлять оповещениями с помощью Prometheus, установите Alertmanager. Всё потому, что сначала вы должны определить правила оповещения на сервере Prometheus, который будет отправлять оповещения в Alertmanager. Затем Alertmanager управляет ими с учётом ваших пожеланий (отключая звук, запрещая отправку уведомлений и т.д). Уведомления отправляются по электронной почте, через соответствующие системы и чат-платформы. Что удобно, Alertmanager классифицирует несколько уведомлений схожего характера в одно, чтобы избежать дублирования. Это особенно полезно, когда сразу несколько систем выходят из строя.
Как и в случае с визуализацией, у Zabbix есть встроенная функция оповещения. Zabbix информирует ответственного коллегу о возникновении проблем, используя различные каналы и опции. Система предупреждений Zabbix управляет событиями по-разному: отправлять сообщения, выполнять удалённые команды и так далее. Также можно настроить уведомления в зависимости от роли получателя, выбрав, какую информацию включать.
Когда использовать Prometheus, а когда Zabbix?
Используйте Hosted Prometheus, когда вам:
- требуется решение для мониторинга базы данных временных рядов,
- нужно долгосрочное хранилище для метрик Prometheus,
- необходимо использовать теги/ярлыки для показателей,
- надо запускать оповещения для разных источников данных,
- хочется использовать и Prometheus, и Graphite (через Grafana, как часть одного сервиса).
Используйте Zabbix, когда вам:
- нужно ПО с открытым исходным кодом с серверной частью C и клиентской частью PHP,
- хочется использовать MySQL, MariaDB, PostgreSQL, SQLite, Oracle или IBM DB2 для хранения данных,
- нужно управлять небольшим бизнесом с менее чем 1000 устройств,
- важно мониторить, а визуализация/вспомогательная документация не столь важны.
Prometheus vs Zabbix: стоимость
У Prometheus открытый исходный код, продукт бесплатен. Готовый для бизнеса Prometheus (услуга от MetricFire), включая Hosted Prometheus, Hosted Graphite и Grafana, стоит от 85 долларов в месяц.
Zabbix бесплатный продукт с открытым исходный код. Zabbix Enterprise доступен через само ПО.
Итог
Prometheus и Zabbix — популярные продукты для мониторинга. Но Prometheus, всё же считается более современным инструментом. Как и у всех продуктов, у них есть сильные и слабые стороны. Следовательно, каждый определяет, какой инструмент использовать для своей инфраструктуры и под свои требования.
У Prometheus есть функции для оптимального мониторинга показателей, построения графиков и предупреждений. Есть версия, которая включает хранение ваших данных в течение одного года, полную настройку панели управления Grafana для визуализации данных и многое другое.
IT Education Center проводит набор на авторские курсы системного администратора в Киеве и онлайн.
Zabbix считают системой мониторинга общего назначения, ведь на неё можно замкнуть всю инфраструктуру. К примеру, настроить мониторинг ssl сертификатов, а также время делегирования домена. Мы слышали о реальном опыте решения задачи мониторинга промышленных контроллеров, которые отдавали данные по протоколу ModBus. Zabbix поддерживает его и после установки ещё одного модуля. Как такое можно сделать в Prometheus, нам пока не известно.
Prometheus vs Zabbix: что выбираете вы? Пишите в комментах.