Наша команда дуже рада поділитися новиною про те, що відбувся реліз вільної системи моніторингу з відкритим кодом
Чи є версія 4.2 відповіддю на головне питання життя, всесвіту та моніторингу в цілому? Давайте подивимося!
Нагадаємо, що Zabbix – це універсальна система для моніторингу продуктивності та доступності серверів, інженерного та мережевого обладнання, додатків, баз даних, систем віртуалізації, контейнерів, ІТ-сервісів, веб-сервісів.
Zabbix реалізує повний цикл від збору даних, їх обробки та перетворення, аналізу отриманих даних, і закінчуючи зберіганням цих даних, візуалізацією та розсилкою сповіщень з використанням правил ескалацій. Також система надає гнучкі можливості розширення методів збирання даних та оповіщень, а також можливості автоматизації через API. Єдиний веб-інтерфейс реалізує централізоване керування конфігураціями моніторингу та розподілом прав доступу до різних груп користувачів. Код проекту вільно розповсюджується під ліцензією
Zabbix 4.2 - це нова не LTS-версія з укороченим терміном офіційної підтримки. Користувачам, які орієнтуються на тривалий цикл експлуатації програмних продуктів, рекомендуємо використовувати версії LTS, такі як 3.0 і 4.0.
Отже, давайте поговоримо про новинки та основні покращення версії 4.2:
Більше офіційних платформ
На додаток до вже існуючих офіційних пакетів, ми також пропонуємо нові зборки для:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- MSI для Windows агента
- Docker образи
Вбудована підтримка Prometheus для моніторингу програм
Zabbix вміє збирати дані у різний спосіб (push/pull) з різних джерел даних. Це JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, агенти та скрипти та інші джерела. А тепер зустрічайте підтримку Prometheus!
Строго кажучи, збір даних з експортерів Prometheus був можливим і раніше завдяки типу елементів даних HTTP/HTTPS та регулярним виразам.
Однак, нова версія дозволяє працювати з Prometheus максимально ефективно за рахунок вбудованої підтримки мови запитів PromQL. А використання залежних метрик дозволяє збирати та обробляти дані найбільш ефективно: один раз звернулися за даними, а далі розкладаємо їх за потрібними метриками.
Важливо, що нині низькорівневе виявлення може використовувати зібрані дані для автоматичного створення метрик. У цьому випадку Zabbix перетворює отримані дані у формат JSON, з яким дуже зручно працювати.
На даний момент існує більше
Ефективний високочастотний моніторинг
Чи хочемо виявляти проблеми якнайшвидше? Звісно, жодних сумнівів! Найчастіше такий підхід призводить до того, що нам необхідно занадто часто опитувати пристрої та збирати дані, що призводить до більшого навантаження на систему моніторингу. Як цього уникнути?
Ми реалізували механізм тролінгу (throttling) у правилах препроцессингу. Тротлінг, по суті, дає можливість пропуску однакових значень.
Припустимо, що ми стежимо станом критичного докладання. Кожну секунду ми перевіряємо, чи функціонує наша програма чи ні. При цьому Zabbix надходить безперервний потік даних з 1 (працює) і 0 (не працює). Наприклад: 1111111111110001111111111111…
Коли з нашим додатком все гаразд, то в Zabbix надходить потік з одних лише одиниць. Чи потрібно їх обробляти? Загалом немає, адже нас тільки цікавить зміна стану програми, ми не хочемо збирати і зберігати так багато даних. Так ось, тротлінг дозволяє пропускати значення, якщо воно ідентичне попередньому. У результаті ми отримаємо лише дані про зміну стану, наприклад, 01010101… Цілком достатньо інформації для виявлення проблем!
Пропущені значення Zabbix просто ігнорує, вони не записуються в історію і не впливають на тригери. З погляду Zabbix пропущених значень немає.
Здорово! Тепер ми можемо дуже часто опитувати пристрої, миттєво виявляти проблеми без зберігання непотрібної інформації у базі даних.
А як же графіки? Адже вони будуть порожніми через брак даних! І як зрозуміти, чи збирає Zabbix дані, якщо більшість цих даних буде пропущено?
Ми й про це подумали! Zabbix пропонує ще один вид тротлінгу, тротлінг із контрольними точками перевірки (throttling with heartbeat).
У цьому випадку, Zabbix, незважаючи на потік даних, що повторюється, буде зберігати як мінімум одне значення в зазначений інтервал часу. Якщо дані збираються раз на секунду, а інтервал заданий однією хвилиною, то Zabbix перетворить щомиті потік одиниць на щохвилинний потік. Неважко помітити, що це призводить до 60-кратного стиснення отриманих даних.
Тепер ми впевнені, що дані збираються, функція тригера nodata() працює і з графіками все гаразд!
Валідація зібраних даних та обробка помилок
Ніхто з нас не хоче збирати помилкові чи недостовірні дані. Наприклад, ми знаємо, що датчик температури повинен повертати дані в діапазоні від 0°C до 100°C і будь-яке інше значення має розглядатися як помилкове та/або ігноруватися.
Зараз це можливо за допомогою вбудованих у препроцесинг правил валідації даних щодо відповідності або відсутності відповідності регулярним виразам, діапазону значень, JSONPath та XMLPath.
Тепер ми можемо керувати реакцією на помилку. Якщо температура поза діапазоном, ми можемо просто проігнорувати таке значення, задати значення за промовчанням (наприклад, 0°C ), або визначити своє власне повідомлення про помилку, наприклад, Датчик пошкоджений або Замініть батарейку.
Хорошим прикладом використання валідації є можливість перевірки вхідних даних на наявність повідомлення про помилку та встановлення цієї помилки для всієї метрики. Це дуже корисна функціональність при отриманні даних із зовнішніх API.
Будь-яка трансформація даних за допомогою JavaScript
Якщо нам недостатньо вбудованих правил препроцессингу, то тепер ми пропонуємо повну свободу з використанням довільних скриптів JavaScript!
Це відкриває безмежні можливості обробки вхідних даних. Практичною користю цієї функціональності є те, що нам тепер не потрібні зовнішні скрипти, які ми використовували для будь-яких операцій з даними. Тепер це все можна зробити за допомогою JavaScript.
Тепер можливі трансформація даних, агрегація, фільтри, арифметичні та логічні операції та багато іншого!
Тестуємо препроцесинг
Тепер нам не потрібно гадати, як же працюють наші складні сценарії препроцессингу. З'явилася зручна перевірка правильності роботи препроцессингу з інтерфейсу!
Обробляємо мільйони метриків за секунду!
До Zabbix 4.2 препроцесингом займався виключно Zabbix сервер, що обмежувало можливості застосування проксі для розподілу навантаження.
Починаючи з версії Zabbix 4.2, ми отримуємо неймовірно ефективне масштабування навантаження за рахунок підтримки препроцессингу на стороні проксі. Тепер цим займаються проксі!
У комбінації з тротлінгом такий підхід дозволяє виконувати високочастотний масштабний моніторинг та здійснювати мільйони перевірок за секунду, не навантажуючи при цьому центральний сервер Zabbix. Проксі обробляють величезні обсяги даних, при цьому до Zabbix сервера за рахунок тротлінгу доходить лише їх невелика частина, на один-два порядку менше.
Простіше низькорівневе виявлення
Нагадаємо, що низькорівневе виявлення (LLD) — це дуже потужний механізм для автоматичного виявлення будь-яких ресурсів для моніторингу (файлових систем, процесів, додатків, сервісів, тощо) та автоматичного створення на їх основі елементів даних, тригерів, вузлів мережі та інших об'єктів. Це неймовірно заощаджує час, спрощує конфігурацію та дозволяє використовувати один шаблон для вузлів мережі, що мають різні ресурси для моніторингу.
Низькорівневе виявлення вимагало на вході спеціально оформленого JSON. Все так більше не буде!
Zabbix 4.2 дозволяє низькорівневому виявлення (LLD) використовувати довільно оформлені дані у форматі JSON. Чому це важливо? Це дозволяє, не вдаючись до скриптів, спілкуватися, наприклад, із зовнішніми API та використовувати отриману інформацію для автоматичного створення вузлів мережі, елементів даних та тригерів.
У поєднанні з підтримкою JavaScript це створює фантастичні можливості для створення шаблонів роботи з різними джерелами даних, такими як, наприклад, хмарні API, API додатків, дані у форматах XML, CSV та інше.
Можливості справді безмежні!
Підтримка TimescaleDB
Що таке TimescaleDB? Це звичайний PostgreSQL плюс модуль розширення від команди TimescaleDB. TimescaleDB обіцяє кращу продуктивність за рахунок більш ефективних алгоритмів та структури даних.
Крім цього, ще однією перевагою TimescaleDB є автоматичне партикування таблиць з історією. TimescaleDB це швидкість та простота обслуговування! Хоча, я мушу зазначити, що наша команда поки що не проводила серйозного порівняння продуктивності зі звичайним PostgreSQL.
На даний момент TimescaleDB є досить молодим і швидко розвивається. Використовуйте з обережністю!
Легке керування тегами
Якщо раніше тегами можна було керувати лише на рівні тригерів, то тепер управління тегами набагато гнучкіше. Zabbix підтримує теги для шаблонів та вузлів мережі!
Всі виявлені проблеми одержують теги не тільки тригера, але й вузла мережі, а також шаблонів цього вузла мережі.
Визначаємо теги для вузла мережі
Гнучкіша автореєстрація
Zabbix 4.2 дозволяє фільтрувати вузли мережі на ім'я, використовуючи регулярні вирази. Це дозволяє створювати різні сценарії виявлення для різних груп вузлів мережі. Особливо зручно, якщо у нас використовуються складні правила іменування пристроїв.
Гнучкіше мережне виявлення
Ще одне поліпшення пов'язані з ім'ям вузлів мережі. З'явилася можливість керування іменами пристроїв при виявленні мережі та отримання імені пристрою зі значення метрики.
Це дуже потрібна функціональність, особливо при мережному виявленні за допомогою SNMP та Zabbix агента.
Перевірка працездатності способів оповіщення
Тепер прямо з Веб-інтерфейсу можна надіслати собі тестове повідомлення та перевірити, чи працює спосіб оповіщення. Особливо ця функціональність корисна для перевірки скриптів об'єднання Zabbix з різними системами оповіщення, системами завдань та іншими зовнішніми програмами та API.
Віддалений моніторинг компонентів інфраструктури Zabbix
З'явилася можливість віддаленого моніторингу внутрішніх метрик сервера Zabbix і проксі (метрик продуктивності і працездатності компонентів Zabbix).
Для чого це потрібно? Функціональність дозволяє стежити з боку за внутрішніми метриками серверів та проксі, дозволяє швидко виявляти та сповіщати про проблеми навіть якщо самі компоненти перевантажені або, наприклад, на проксі великий обсяг ненаправлених даних.
Підтримка формату HTML для електронних повідомлень
Тепер ми не обмежені простим текстом і можемо формувати красиві e-mail повідомлення завдяки наявності формату HTML. Час вивчати HTML + CSS!
Доступ до зовнішніх систем із мережевих карток
З'явилася підтримка цілого набору нових макросів у URL користувача для кращої інтеграції карт із зовнішніми системами. Це дозволяє одним-двома кліками на іконку вузла мережі відкривати, наприклад, тикет у системі завдань.
Правило виявлення може бути залежним елементом даних
Навіщо це потрібно – спитайте ви. Це дозволяє використовувати дані основної метрики як виявлення, так безпосереднього збору даних. Наприклад, у разі збору даних з експортера Prometheus, Zabbix здійснить один HTTP запит і негайно використовує отриману інформацію для всіх залежних елементів даних: значень метрик та правил низькорівневого виявлення.
Новий спосіб візуалізації проблем на картах
З'явилася підтримка анімованих GIF зображень на картах для помітнішої візуалізації проблем.
Вилучаємо дані із заголовків HTTP у Веб-моніторингу
Веб-моніторинг додалася можливість вибирати дані з отриманого заголовка HTTP.
Це дозволяє створювати багатокрокові сценарії веб-моніторингу або моніторингу сторонніх API, використовуючи токен авторизації, отриманий в одному з кроків.
Zabbix Sender використовує всі IP адреси
Zabbix Sender тепер надсилає дані на всі IP адреси з параметра ServerActive конфігураційного файлу агента.
Зручний новий фільтр у конфігурації тригерів
Сторінка конфігурації тригерів отримала розширений фільтр для швидкої і зручної вибірки тригерів за заданими критеріями.
Точний час
Тут все просто тепер Zabbix показує точний час при наведенні мишкою на графік.
Інші нововведення
- Реалізовано більш передбачуваний алгоритм зміни порядку розташування віджетів в dashboard (панелі)
- Можливість масового зміни параметрів прототипів елементів даних
- Підтримка IPv6 для перевірок DNS: "net.dns" і "new.dns.record"
- Додався параметр "skip" для перевірок "vmware.eventlog"
- Помилка виконання кроку препроцессингу включає номер кроку
Як оновитися?
Для переходу з попередніх версій необхідна лише установка
Ми проводимо безкоштовні вебінари для тих, хто хоче детальніше дізнатися про Zabbix 4.2 і мати можливість поставити запитання команді Zabbix.
Не забуваємо про популярне
Корисні посилання
-
-
-
Джерело: habr.com