Вийшов Zabbix 4.2

Наша команда дуже рада поділитися новиною про те, що відбувся реліз вільної системи моніторингу з відкритим кодом Zabbix 4.2!

Вийшов Zabbix 4.2

Чи є версія 4.2 відповіддю на головне питання життя, всесвіту та моніторингу в цілому? Давайте подивимося!

Нагадаємо, що Zabbix – це універсальна система для моніторингу продуктивності та доступності серверів, інженерного та мережевого обладнання, додатків, баз даних, систем віртуалізації, контейнерів, ІТ-сервісів, веб-сервісів.

Zabbix реалізує повний цикл від збору даних, їх обробки та перетворення, аналізу отриманих даних, і закінчуючи зберіганням цих даних, візуалізацією та розсилкою сповіщень з використанням правил ескалацій. Також система надає гнучкі можливості розширення методів збирання даних та оповіщень, а також можливості автоматизації через API. Єдиний веб-інтерфейс реалізує централізоване керування конфігураціями моніторингу та розподілом прав доступу до різних груп користувачів. Код проекту вільно розповсюджується під ліцензією GPLv2.

Zabbix 4.2 - це нова не LTS-версія з укороченим терміном офіційної підтримки. Користувачам, які орієнтуються на тривалий цикл експлуатації програмних продуктів, рекомендуємо використовувати версії LTS, такі як 3.0 і 4.0.

Отже, давайте поговоримо про новинки та основні покращення версії 4.2:

Більше офіційних платформ

Вийшов Zabbix 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 4.2
Отримуємо значення конкретної метрики

Важливо, що нині низькорівневе виявлення може використовувати зібрані дані для автоматичного створення метрик. У цьому випадку Zabbix перетворює отримані дані у формат JSON, з яким дуже зручно працювати.

Вийшов Zabbix 4.2
Знаходимо метрики використовуючи фільтр мовою запитів PromQL

На даний момент існує більше 300 інтеграцій та рецептів з моніторингу сторонніх сервісів та програм за допомогою Zabbix. Підтримка Prometheus дозволить додати цілий набір додатків, які мають офіційні або підтримувані співдружністю експортери Prometheus. Це моніторинг популярних сервісів, контейнерів та хмарних ресурсів.

Ефективний високочастотний моніторинг

Чи хочемо виявляти проблеми якнайшвидше? Звісно, ​​жодних сумнівів! Найчастіше такий підхід призводить до того, що нам необхідно занадто часто опитувати пристрої та збирати дані, що призводить до більшого навантаження на систему моніторингу. Як цього уникнути?

Ми реалізували механізм тролінгу (throttling) у правилах препроцессингу. Тротлінг, по суті, дає можливість пропуску однакових значень.

Припустимо, що ми стежимо станом критичного докладання. Кожну секунду ми перевіряємо, чи функціонує наша програма чи ні. При цьому Zabbix надходить безперервний потік даних з 1 (працює) і 0 (не працює). Наприклад: 1111111111110001111111111111…

Коли з нашим додатком все гаразд, то в Zabbix надходить потік з одних лише одиниць. Чи потрібно їх обробляти? Загалом немає, адже нас тільки цікавить зміна стану програми, ми не хочемо збирати і зберігати так багато даних. Так ось, тротлінг дозволяє пропускати значення, якщо воно ідентичне попередньому. У результаті ми отримаємо лише дані про зміну стану, наприклад, 01010101… Цілком достатньо інформації для виявлення проблем!

Пропущені значення Zabbix просто ігнорує, вони не записуються в історію і не впливають на тригери. З погляду Zabbix пропущених значень немає.

Вийшов Zabbix 4.2
Ігноруємо значення, що повторюються

Здорово! Тепер ми можемо дуже часто опитувати пристрої, миттєво виявляти проблеми без зберігання непотрібної інформації у базі даних.

А як же графіки? Адже вони будуть порожніми через брак даних! І як зрозуміти, чи збирає Zabbix дані, якщо більшість цих даних буде пропущено?

Ми й про це подумали! Zabbix пропонує ще один вид тротлінгу, тротлінг із контрольними точками перевірки (throttling with heartbeat).

Вийшов Zabbix 4.2
Раз на хвилину перевіряємо, чи жива метрика

У цьому випадку, Zabbix, незважаючи на потік даних, що повторюється, буде зберігати як мінімум одне значення в зазначений інтервал часу. Якщо дані збираються раз на секунду, а інтервал заданий однією хвилиною, то Zabbix перетворить щомиті потік одиниць на щохвилинний потік. Неважко помітити, що це призводить до 60-кратного стиснення отриманих даних.

Тепер ми впевнені, що дані збираються, функція тригера nodata() працює і з графіками все гаразд!

Валідація зібраних даних та обробка помилок

Ніхто з нас не хоче збирати помилкові чи недостовірні дані. Наприклад, ми знаємо, що датчик температури повинен повертати дані в діапазоні від 0°C до 100°C і будь-яке інше значення має розглядатися як помилкове та/або ігноруватися.

Зараз це можливо за допомогою вбудованих у препроцесинг правил валідації даних щодо відповідності або відсутності відповідності регулярним виразам, діапазону значень, JSONPath та XMLPath.

Тепер ми можемо керувати реакцією на помилку. Якщо температура поза діапазоном, ми можемо просто проігнорувати таке значення, задати значення за промовчанням (наприклад, 0°C ), або визначити своє власне повідомлення про помилку, наприклад, Датчик пошкоджений або Замініть батарейку.

Вийшов Zabbix 4.2
Температура має бути від 0 до 100, інше ігноруємо

Хорошим прикладом використання валідації є можливість перевірки вхідних даних на наявність повідомлення про помилку та встановлення цієї помилки для всієї метрики. Це дуже корисна функціональність при отриманні даних із зовнішніх API.

Будь-яка трансформація даних за допомогою JavaScript

Якщо нам недостатньо вбудованих правил препроцессингу, то тепер ми пропонуємо повну свободу з використанням довільних скриптів JavaScript!

Вийшов Zabbix 4.2
Всього один рядок коду для перетворення градусів за фаренгейтом на градуси цельсія

Це відкриває безмежні можливості обробки вхідних даних. Практичною користю цієї функціональності є те, що нам тепер не потрібні зовнішні скрипти, які ми використовували для будь-яких операцій з даними. Тепер це все можна зробити за допомогою JavaScript.

Тепер можливі трансформація даних, агрегація, фільтри, арифметичні та логічні операції та багато іншого!

Вийшов Zabbix 4.2
Витягуємо корисну інформацію з виводу Apache mod_status!

Тестуємо препроцесинг

Тепер нам не потрібно гадати, як же працюють наші складні сценарії препроцессингу. З'явилася зручна перевірка правильності роботи препроцессингу з інтерфейсу!

Вийшов Zabbix 4.2

Обробляємо мільйони метриків за секунду!

До Zabbix 4.2 препроцесингом займався виключно Zabbix сервер, що обмежувало можливості застосування проксі для розподілу навантаження.

Починаючи з версії Zabbix 4.2, ми отримуємо неймовірно ефективне масштабування навантаження за рахунок підтримки препроцессингу на стороні проксі. Тепер цим займаються проксі!

Вийшов Zabbix 4.2

У комбінації з тротлінгом такий підхід дозволяє виконувати високочастотний масштабний моніторинг та здійснювати мільйони перевірок за секунду, не навантажуючи при цьому центральний сервер Zabbix. Проксі обробляють величезні обсяги даних, при цьому до Zabbix сервера за рахунок тротлінгу доходить лише їх невелика частина, на один-два порядку менше.

Простіше низькорівневе виявлення

Нагадаємо, що низькорівневе виявлення (LLD) — це дуже потужний механізм для автоматичного виявлення будь-яких ресурсів для моніторингу (файлових систем, процесів, додатків, сервісів, тощо) та автоматичного створення на їх основі елементів даних, тригерів, вузлів мережі та інших об'єктів. Це неймовірно заощаджує час, спрощує конфігурацію та дозволяє використовувати один шаблон для вузлів мережі, що мають різні ресурси для моніторингу.

Низькорівневе виявлення вимагало на вході спеціально оформленого JSON. Все так більше не буде!

Zabbix 4.2 дозволяє низькорівневому виявлення (LLD) використовувати довільно оформлені дані у форматі JSON. Чому це важливо? Це дозволяє, не вдаючись до скриптів, спілкуватися, наприклад, із зовнішніми API та використовувати отриману інформацію для автоматичного створення вузлів мережі, елементів даних та тригерів.

У поєднанні з підтримкою JavaScript це створює фантастичні можливості для створення шаблонів роботи з різними джерелами даних, такими як, наприклад, хмарні API, API додатків, дані у форматах XML, CSV та інше.

Вийшов Zabbix 4.2
Зв'язуємо JSON з інформацією про процеси з LLD

Можливості справді безмежні!

Підтримка TimescaleDB

Вийшов Zabbix 4.2

Що таке TimescaleDB? Це звичайний PostgreSQL плюс модуль розширення від команди TimescaleDB. TimescaleDB обіцяє кращу продуктивність за рахунок більш ефективних алгоритмів та структури даних.

Крім цього, ще однією перевагою TimescaleDB є автоматичне партикування таблиць з історією. TimescaleDB це швидкість та простота обслуговування! Хоча, я мушу зазначити, що наша команда поки що не проводила серйозного порівняння продуктивності зі звичайним PostgreSQL.

На даний момент TimescaleDB є досить молодим і швидко розвивається. Використовуйте з обережністю!

Легке керування тегами

Якщо раніше тегами можна було керувати лише на рівні тригерів, то тепер управління тегами набагато гнучкіше. Zabbix підтримує теги для шаблонів та вузлів мережі!

Всі виявлені проблеми одержують теги не тільки тригера, але й вузла мережі, а також шаблонів цього вузла мережі.

Вийшов Zabbix 4.2
Визначаємо теги для вузла мережі

Гнучкіша автореєстрація

Zabbix 4.2 дозволяє фільтрувати вузли мережі на ім'я, використовуючи регулярні вирази. Це дозволяє створювати різні сценарії виявлення для різних груп вузлів мережі. Особливо зручно, якщо у нас використовуються складні правила іменування пристроїв.

Гнучкіше мережне виявлення

Ще одне поліпшення пов'язані з ім'ям вузлів мережі. З'явилася можливість керування іменами пристроїв при виявленні мережі та отримання імені пристрою зі значення метрики.

Це дуже потрібна функціональність, особливо при мережному виявленні за допомогою SNMP та Zabbix агента.

Вийшов Zabbix 4.2
Автоматично призначаємо локальне ім'я вузла мережі видимим ім'ям

Перевірка працездатності способів оповіщення

Тепер прямо з Веб-інтерфейсу можна надіслати собі тестове повідомлення та перевірити, чи працює спосіб оповіщення. Особливо ця функціональність корисна для перевірки скриптів об'єднання Zabbix з різними системами оповіщення, системами завдань та іншими зовнішніми програмами та API.

Вийшов Zabbix 4.2

Віддалений моніторинг компонентів інфраструктури Zabbix

З'явилася можливість віддаленого моніторингу внутрішніх метрик сервера Zabbix і проксі (метрик продуктивності і працездатності компонентів Zabbix).

Для чого це потрібно? Функціональність дозволяє стежити з боку за внутрішніми метриками серверів та проксі, дозволяє швидко виявляти та сповіщати про проблеми навіть якщо самі компоненти перевантажені або, наприклад, на проксі великий обсяг ненаправлених даних.

Підтримка формату HTML для електронних повідомлень

Тепер ми не обмежені простим текстом і можемо формувати красиві e-mail повідомлення завдяки наявності формату HTML. Час вивчати HTML + CSS!

Вийшов Zabbix 4.2
Повідомлення легко сприймати навіть при мінімальному використанні HTML

Доступ до зовнішніх систем із мережевих карток

З'явилася підтримка цілого набору нових макросів у URL користувача для кращої інтеграції карт із зовнішніми системами. Це дозволяє одним-двома кліками на іконку вузла мережі відкривати, наприклад, тикет у системі завдань.

Вийшов Zabbix 4.2
Одним кліком відкриваємо тикет у Jira

Правило виявлення може бути залежним елементом даних

Навіщо це потрібно – спитайте ви. Це дозволяє використовувати дані основної метрики як виявлення, так безпосереднього збору даних. Наприклад, у разі збору даних з експортера Prometheus, Zabbix здійснить один HTTP запит і негайно використовує отриману інформацію для всіх залежних елементів даних: значень метрик та правил низькорівневого виявлення.

Новий спосіб візуалізації проблем на картах

З'явилася підтримка анімованих GIF зображень на картах для помітнішої візуалізації проблем.

Вийшов Zabbix 4.2
Проблемні пристрої стали помітнішими

Вилучаємо дані із заголовків HTTP у Веб-моніторингу

Веб-моніторинг додалася можливість вибирати дані з отриманого заголовка HTTP.

Це дозволяє створювати багатокрокові сценарії веб-моніторингу або моніторингу сторонніх API, використовуючи токен авторизації, отриманий в одному з кроків.

Вийшов Zabbix 4.2
Витягуємо AuthID із заголовка HTTP

Zabbix Sender використовує всі IP адреси

Zabbix Sender тепер надсилає дані на всі IP адреси з параметра ServerActive конфігураційного файлу агента.

Вийшов Zabbix 4.2

Зручний новий фільтр у конфігурації тригерів

Сторінка конфігурації тригерів отримала розширений фільтр для швидкої і зручної вибірки тригерів за заданими критеріями.

Вийшов Zabbix 4.2
Вибираємо тригери, що належать до сервісу K8S

Точний час

Тут все просто тепер Zabbix показує точний час при наведенні мишкою на графік.

Вийшов Zabbix 4.2

Інші нововведення

  • Реалізовано більш передбачуваний алгоритм зміни порядку розташування віджетів в dashboard (панелі)
  • Можливість масового зміни параметрів прототипів елементів даних
  • Підтримка IPv6 для перевірок DNS: "net.dns" і "new.dns.record"
  • Додався параметр "skip" для перевірок "vmware.eventlog"
  • Помилка виконання кроку препроцессингу включає номер кроку

Як оновитися?

Для переходу з попередніх версій необхідна лише установка нових бінарних файлів (сервера та проксі) та нового інтерфейсу. Zabbix автоматично проведе процедуру оновлення бази даних. Встановлення нових агентів не потрібно.

Ми проводимо безкоштовні вебінари для тих, хто хоче детальніше дізнатися про Zabbix 4.2 і мати можливість поставити запитання команді Zabbix. Записуйтеся!

Не забуваємо про популярне Telegram каналі Zabbix спільноти, де завжди можна отримати консультацію та відповіді на свої запитання російською мовою від досвідченіших колег, а якщо пощастить, то і від самих розробників Zabbix. Для новачків рекомендуємо групу для новачків.

Корисні посилання

- Примітки до випуску
- Upgrade notes
- Оригінальна стаття

Джерело: habr.com

Додати коментар або відгук