К своим статьям по Zabbix регулярно получаю комментарии о том, что это устаревший продукт и надо переходить на Prometheus - там все современно, модно, молодёжно. Я знаком с этим мониторингом, ставил его, тестировал, поэтому могу провести обзорное сравнение Zabbix vs Prometheus. Последний хороший продукт, не хочу заниматься критикой и убеждением кого-то в том, что Zabbix лучше, хуже и т.д. Сравнивать их в лоб не имеет смысла, так как это разные продукты под разные задачи. Они схожи тем, что оба считаются системами мониторинга, но у них масса отличий.
Авторизация и аутентификация
Простой пример значительной разницы между Prometheus и Zabbix. На обучении по Прому (1,5 года назад) я спросил у лектора, как обеспечить аутентификацию и авторизацию пользователей. Про второе вообще ничего не сказал, а насчет первого предложил настроить ограничения на firewall или сделать basic_auth при проксировании через nginx. Сравните это с готовой системой пользователей и групп в Zabbix, где можно настроить права доступа вплоть до отдельной группы или хоста.В Prometheus вам эту задачу придется решать отдельно, даже не знаю как. Возможно есть какие-то готовые удобные решения, о которых я не слышал. Если есть, прошу подсказать. Статью пишу в том числе для того, чтобы собрать обратную связь и расширить свои знания по упоминаемым продуктам.
Панель мониторинга
Zabbix сразу включает в себя панель мониторинга с возможностью настраивать Dashboards. Этот функционал присутствует изначально и ничего дополнительно устанавливать и настраивать не придется. Для Prometheus вам придется использовать сторонние приложения для визуализации данных. Согласен, что это не проблема, так как интеграция с Grafana очень простая. А последняя дает удобную визуализацию, лучше чем встроенная в Zabbix. Но тем не менее, это принципиальное отличие Zabbix от Prometheus, о котором стоит упомянуть.
Prometheus это только значения временных рядов
Идем далее. Еще одно отличие Prometheus от Zabbix в том, что первый хранит у себя только значения временных рядов. Он не подходит для текста, логов, журналов событий. Да, согласен, что для логов лучше использовать специализированные продукты, типа ELK. Но это отдельное, большое и сложное приложение, которое вот так с пол тычка не поставишь для того, чтобы к примеру мониторить логины по ssh или winbox.
Но даже если внедрить ELK, там отдельно придется решать вопросы аутентификации, уведомлений и т.д. В общем, для простых случаев, когда хочется хранить какие-то текстовые значения, анализировать их и настраивать триггеры, zabbix отлично подходит, предоставляя готовый функционал из коробки и сразу.
Так что важное отличие Prometheus от Zabbix - последний поддерживает сбор и хранение разнородной информации, в том числе в текстовом виде.
Уведомления
В истории с уведомлениями тоже наглядно видна разница Zabbix от Prometheus. У первого огромное количество встроенных уведомлений и интеграций с различными сервисами. В случае с Prometheus вам придется решать этот вопрос отдельно. К примеру, с помощью alertmanager. Я не берусь оценивать его функционал и возможности, так как знаком очень поверхностно. Но на первый взгляд, настройка будет посложнее, чем аналогичная через web интерфейс заббикса. Туда по дефолту завезли в том числе уведомления в telegram.
Долгосрочное хранение данных
Изначально Prometheus был рассчитан на краткосрочное (неделя-две) хранение метрик и работы с ними. У него для этого есть TSDB, отлично оптимизированная под временные ряды и добавление данные по модели pull. То есть это продукт для оперативного мониторинга. Если вы хотите хранить исторические данные месяцы и годы, вам придется искать какое-то отдельное решение для этого. Они существуют, их относительно много, но придется отдельно потрудиться, чтобы выбрать что-то подходящее и настроить.
В Zabbix с этим проще. Он изначально рассчитан на долгосрочное хранение. Конечно, там есть свои сложности с высокой нагрузкой на базу (это его узкое место, так как там честный SQL) и долгосрочным хранением больших объемов. Но тем не менее, эти вопросы прорабатываются и развиваются. К примеру, 5-я версия Zabbix поддерживает в качестве базы данных PostgreSQL + TimescaleDB.
Zabbix способен объять всю инфраструктуру
Zabbix можно считать системой мониторинга общего назначения, на которую можно замкнуть всю инфраструктуру. Например, настроить мониторинг ssl сертификатов и время делегирования домена. Недавно я решал задачу мониторинга промышленных контроллеров, которые отдают данные по протоколу ModBus. Заббикс его поддерживает после установки дополнительного модуля. Как такие вещи сделать в Prometheus, я даже не представляю.
Таким образом, у вас есть универсальная система мониторинга, которая объединяет в себе вообще всю инфраструктуру. Плюс, можно сразу подключить какие-то внешние метрики через API удаленных систем. У Prometheus все же более узкая специализация под конкретные задачи.
В чем преимущество Prometheus?
Прочитав мое сравнение этих двух систем мониторинга, может показаться, что Zabbix по всем статьям лучше Prometheus. Конечно, это не так. Стоит принять во внимание то, что Zabbix я использую очень давно и хорошо знаю, поэтому я не объективен. На мой взгляд, Prometheus похож на некий framework, на базе которого строится полноценная система мониторинга. Вот его наиболее сильные стороны:
- Prometheus query language. Это свой язык запросов, очень крутая штука, аналогов которой вроде и нет нигде. С его помощью очень удобно и быстро можно построить запрос на выборку данных. В Zabbix ничего и близко нет.
- Service discovery. Прометеус отлично подходит для динамических систем, например Kubernetes. Он автоматически находит необходимые таргеты и ставит на мониторинг.
- Exporters. Формат данных Prometheus поддерживает огромное количество софта. Они сразу из коробки выдают все метрики для Prometheus. Вам остается их только направить в него. Zabbix движется в этом направлении, создает шаблоны для приема данных с экспортеров prometheus, пишет свои шаблоны, но тут он в роли сильно отстающего.
- Highload. За счет TSDB, Prometheus может принять и обработать несравнимо больше метрик, чем Zabbix. Правда, актуально это становится для тех, у кого реально очень высокая нагрузка.
Вот преимущества Prometheus, которые сходу пришли мне на ум. Думаю, этот список можно дополнить. Поделитесь в комментариях информацией, которую я упустил.
Заключение
На этом по сравнению Zabbix vs Prometheus у меня все. Сел писать небольшую заметку в Telegram, но, как обычно, не смог ограничиться его форматом. Чтобы раскрыть тему, нужна полноценная статья, которая в итоге и получилась. Надеюсь, она вам была полезна. Про Прометеус не так много информации на русском языке, в отличие от Zabbix. Так что если не знакомы с продуктами, быстро сравнение сделать не получится, придется погружаться.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.