Prometheus vs Zabbix: відмінне та подібне цих систем моніторингу

У цій статті ми розглянемо дві основні системи моніторингу: Prometheus vs Zabbix. Чим вони схожі, а чим відрізняються? Далі в матеріалі. 

Ми вибрали та порівняли два найпопулярніших інструменти моніторингу: Prometheus vs Zabbix. Який з них підійде вам? Нумо розбиратися.

Короткий огляд Prometheus

Короткий огляд Prometheus

Prometheus — це система моніторингу з відкритим вихідним кодом. Вона надає користувачам мову запитів, можливості зберігання і візуалізації. Система збирає метрики в реальному часі та записує їх в базу даних часових рядів. 

Модель даних Prometheus може визначати показники за ім’ям і/або за тегами. Система написана на Go і поширюється за ліцензією Apache 2 License, а вихідний код доступний на GitHub.

Як проєкт з відкритим вихідним кодом Prometheus користується широкою підтримкою спільноти, тому має достатньо клієнтських бібліотек, які забезпечують просту взаємодію з ним. Крім того, Prometheus має вбудовану підтримку таких сервісів, як Docker і Kubernetes.

Короткий огляд Zabbix

Короткий огляд 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, а потім періодично відправляє результати.

Дізнайтеся список найпопулярніших дистрибутивів Linux на ITEDU Blog.

Якщо немає можливості встановити агент, 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 для візуалізації даних і багато іншого. 

Авторські ІТ-курси з системного адміністрування та DevOps у IT Education Center.

Zabbix вважають системою моніторингу загального призначення, адже на неї можна замкнути всю інфраструктуру. Наприклад, налаштувати моніторинг ssl сертифікатів, а також час делегування домену. Ми чули про реальний досвід вирішення завдання моніторингу промислових контролерів, які віддавали дані по протоколу ModBus. Zabbix підтримує його і після установки ще одного модуля. Як таке можна зробити в Prometheus, нам поки не відомо. 

Prometheus vs Zabbix: що обираєте ви? Пишіть в коментах.

Залишити відповідь

Дякуємо, що поділились