Prometheus

Prometheus - это система мониторинга. Основные преимущества — предоставление возможности создания гибких запросов к данным и хранение значений метрик в базе данных временных рядов, возможность автоматизации при администрировании. Разработана фондом облачных вычислений (Cloud Native Computing Foundation или CNCF).

Для получения метрик с удаленных узлов используется метод pull (сервер сам забирает данные). На узлы для сбора информации устанавливаются экспортеры (exporter) — пакеты, получающие данные для операционной системы или конкретного сервиса. Существует большое количество уже написанных экспортеров для различных приложений. Также метрики могут собираться с помощью механизма push — для этого используется компонент pushgateway, который должен быть установлен дополнительно.

Довольно часто Prometheus настраивают в связке с Grafana, которая позволяет визуализировать показания наших метрик. В графане для этого есть уже настроенный источник, таким образом, настройка выполняется из коробки.

В сравнении с другими системами мониторинга обладает рядом отличий, например, в сравнении с Zabbix:

Zabbix является полностью законченной системой, которая предоставляет веб-инструмент для настройки и визуализации (dashboard). Prometheus — это всего лишь база данных со значениями для метрик. Для настройки и визуализации используются средства, которые являются сторонними или разработанными самостоятельно. Установка Prometheus не может быть выполнена из репозитория простыми командами. Нам необходимо скачать бинарник, а также создать скрипт для автозапуска или юнит в systemd. Также возможно установка из неофициального образа Docker. Для отправки уведомлений Zabbix использует штатные средства. Для Prometheus устанавливается и настраивается Alertmanager. Zabbix наполнен дополнительными инструментами, такими как графики, построение логической сети, автообнаружение и так далее. Prometheus этим не богат и для дополнительных возможностей необходима установка плагинов или доработка собственных модулей. Это не все отличия между Zabbix и Prometheus, но уже можно сделать вывод, что последний является приложением от программистов для программистов. Prometheus более популярен для мониторинга сервисов в среде DevOps, например, Kubernetes. Zabbix же плохо подходит для динамических систем (например, в последнем могут постоянно удаляться и создаваться новые поды с сервисами) и уступает в этом плане прометею.