У середині травня вийшла версія Zabbix 5.0, і ми організували серію онлайн мітапів різними мовами з метою наочно продемонструвати спільноті всі зміни та нововведення. Пропонуємо вам ознайомитися з доповіддю виконавчого директора та творця Zabbix Олексія Владишева, в якій він покроково розповів, що нового в Zabbix 5.0.
Zabbix 4.2 та Zabbix 4.4
Почнемо зі змін, що з'явилися у версії Zabbix 4.0 у зв'язку з використанням LTS-версій.
У версії Zabbix 4.2, яка вийшла у квітні 2019 року, з'явилися такі можливості:
Високочастотний моніторинг за допомогою тротлінгу, який забезпечує масштабування та підвищення NVPS, що означає швидше виявлення проблем та спрямування оповіщень без великого навантаження на Zabbix.
Збір даних за допомогою HTTP-агенту.
Підтримка збирання даних від Prometheus Pro.
Передобробка підтримує валідацію і JavaScript, який дозволяє трансформувати будь-які дані, що збираються.
Передобробка на стороні проксі, що забезпечує більш ефективне масштабування за допомогою проксі.
Поліпшене керування тегами — мета-інформацією на рівні подій та проблем, з якими зручно працювати, тому що теги підтримуються і на рівні шаблонів, і на рівні вузлів мережі.
У вересні минулого року вийшла версія Zabbix 4.4, яка пропонувала такі можливості:
Новий агент Zabbix.
Підтримка Webhook для сповіщень та повідомлень, що дозволяє інтегруватися із зовнішніми системами.
Підтримка TimescaleDB.
Вбудована база знань для метриків та тригерів стала видимою для користувачів Zabbix. Наприклад, користувачі можуть використовувати опис елементів даних і тригерів Monitoring > Latest data.
Новий стандарт шаблонів.
Zabbix 5.0
Сьогодні ми поговоримо про LTS-реліз Zabbix 5.0, який підтримуватиметься протягом 5 років. Підтримка версії 4.4 припиняється через місяць. LTS-реліз Zabbix 3.0 підтримуватиметься ще 3,5 роки.
Zabbix забезпечує моніторинг багатьох речей, список яких можна уточнити на сторінці http://www.zabbix.com/integrations, де представлені шаблони для моніторингу та плагіни, у тому числі для нового агента.
Доступні шаблони для моніторингу та інтеграції
Крім того, існують можливості інтеграції з різними системами, включаючи тикетні системи, ITSM-системи та системи доставки повідомлень за допомогою Webhook.
Можливості інтеграції
У Zabbix 5.0 розширена вбудована підтримка для інтеграції з різними системами тикетів, а також системами оповіщень:
Інтеграція з різними системами
Розширено список вбудованих шаблонів для моніторингу програм та пристроїв:
Вбудовані шаблони для моніторингу програм та пристроїв
Розгляд заявки командою розробників. Якщо плагін або шаблон відповідає стандартам Zabbix, він включається до продукту, і робота такого розробника офіційно підтримуватиметься командою Zabbix.
Zabbix — це відкрите програмне забезпечення з відкритим вихідним кодом, доступним для перегляду, вивчення та зміни. Користувачеві надається можливість вільно використовувати продукт, брати участь у доопрацюванні програми або використовувати код для нових програм. З іншого боку, команда Zabbix робить все можливе, щоб Zabbix можна легко встановлювати на різних платформах.
Розробники Zabbix пропонують пакети для практично всіх найпопулярніших дистрибутивів та різних платформ віртуалізації. Крім того, Zabbix за допомогою одного кліка миші можна встановити в публічній хмарі. Zabbix також доступний на платформах Red Hat Openshift або OpenStack.
Пакети Zabbix для дистрибутивів та платформ
Підтримка Zabbix Agent 2 для Windows та Linux
Новий Zabbix Agent 2 – одне з найкращих рішень на ринку.
Пропонує структуру, засновану на плагінах, та підтримує скрипти для збору даних, які можуть працювати годинами.
Підтримує паралельні активні перевірки, постійні підключення до зовнішніх систем, що є корисним, наприклад, для ефективного моніторингу баз даних.
Підтримує пастки та події, що є важливими для моніторингу, наприклад, MQTT-пристроїв.
Нова версія агента легко встановлюється (оскільки новий агент підтримує всі попередні функціональності).
Крім того, для нового агента Zabbix 5.0 пропонується підтримка постійного зберігання даних. Раніше невідправлена інформація зберігалася тільки в буферній пам'яті агента, а в новій версії доступне налаштування такої інформації на диску.
Постійне зберігання даних
Це важливо у разі моніторингу критичних систем та нестабільних комунікацій, оскільки велика кількість найважливіших даних зберігається до відправки на сервер Zabbix. Опція також корисна для супутникових з'єднань, які можуть бути недоступними протягом тривалого часу. ВАЖЛИВО! У Zabbix 5.0 збережена підтримка Zabbix Agent 1.
Зміни в системі безпеки у Zabbix 5.0
1. У новій версії підтримується HTTP-проксі для webhook, який дозволяє виконувати з'єднання з сервером Zabbix на зовнішні системами оповіщення більш безпечним і керованим чином.
Якщо потрібна інтеграція Zabbix-сервера в локальній мережі із зовнішньою системою, наприклад, JIRA у хмарі, можна підтримувати з'єднання через HTTP-проксі, що покращує контрольованість та надійність з'єднання.
2. Як для старого, так і нового агента передбачена можливість вибирати, які саме перевірки повинні бути доступні на певному агенті. Наприклад, можна обмежити кількість перевірок, фактично створивши білі та чорні списки, визначити ключі, що підтримуються.
Whitelist for MySQL related checks
AllowKey=mysql[*]
DenyKey=*
Blacklist to deny all shell scripts
DenyKey=system.run[*]
Blacklist to deny access to /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. Можливий вибір алгоритмів шифрування всім компонентів Zabbix, щоб уникнути використання небезпечних шифрів для TLS-соединений. Це важливо для моніторингу середовищ, для яких використовуються певні стандарти безпеки.
Вибір алгоритмів шифрування для TLS-з'єднань
4. У Zabbix 5.0 з'явилася підтримка шифрованих з'єднань із базою даних. На даний момент доступне лише шифроване з'єднання з PostgreSQL та MySQL.
Шифровані з'єднання з базою даних
5. Zabbix 5.0 перейшов із MD5 на SHA256 для зберігання хешів паролів користувачів у базі даних, оскільки на даний момент це найбільш безпечний алгоритм.
6. Zabbix 5.0 підтримує секретні користувацькі макроси для зберігання будь-якої конфіденційної інформації, такої як паролі та API токени, до якої не мають доступу кінцеві користувачі.
Секретні макроси
7. Всі з'єднання Zabbix із зовнішніми системами та внутрішні з'єднання з агентами є безпечними. Підтримується шифрування з використанням TLS сертифікатів, або з використанням попередньо опублікованого ключа (pre-shared key encryption) для з'єднання з агентами c проксі, або HTTPS. Безпеку на стороні агентів можна посилювати за рахунок білих та чорних списків. Інтерфейс працює через HTTPS.
Безпечні з'єднання
8. Підтримка SAML для забезпечення єдиної точки аутентифікації у надійного постачальника ідентифікаційних послуг, тому облікові дані користувача не залишать межі брандмауера.
SAML-ідентифікація
Підтримка SAML дозволяє інтегрувати Zabbix із різними локальними та хмарними постачальниками ідентифікаційних послуг, такими як Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, а також Azure, AWS або Google Cloud Platform.
Зручність у використанні Zabbix 5.0
1. Інтерфейс користувача, оптимізований для широких екранів. Ми перемістили меню з верхньої частини, де завжди не вистачає місця в ліву частину екрана. Меню, як і раніше, відображається в повному, мінімальному та прихованому режимі.
Інтерфейс, оптимізований для широкого екрану
2. Копіювання віджетів із панелей дозволяє дуже швидко створювати нові панелі. Для цього в ПАНЕЛІ необхідно вибрати потрібний віджет, натиснути Copy
Копіювання віджету
та вставити віджет у потрібну панель.
Вставка скопійованого віджету
3. Експорт графіків. Щоб скопіювати графік та надіслати, наприклад, електронною поштою, можна отримати графік у форматі PNG, вибравши потрібний віджет і натиснувши Завантажити зображення.
Експорт графіків
4. Фільтрування за тегами: Problem by severity та Problem hosts. З'явилася можливість, наприклад, зібрати в одному дата-центрі дані про всі проблеми, пов'язані з одним вузлом мережі.
Фільтрування за тегами
5. Підтримка модулів для розширення інтерфейсу Zabbix. Для встановлення незалежного модуля потрібно скопіювати його до певної директорії. Модулі дозволяють розширювати функціональність інтерфейсу, створювати нові сторінки, змінювати структуру меню, наприклад, додавати пункти.
Написати та інтегрувати модуль може будь-який користувач. Для цього модуль копіюється в папку modules, після чого стає бачимо для інтерфейсу, де його можна увімкнути та вимкнути.
Додавання нового модуля
6. Простота навігації за ресурсами, пов'язаними з вузлами мережі. У Monitoring > Hosts відображається список пристроїв, які моніторить Zabbix: вузли мережі, сервіси, мережні пристрої тощо. До того ж, доступна швидка навігація до екранів, графіків і проблем конкретних пристроїв.
Ми прибрали вкладки Monitoring > Graphs та Monitoring > Webs, і вся навігація здійснюється через Monitoring > Hosts. Відображувану інформацію можна фільтрувати, у тому числі, за тегами, що дозволяє відображати вимкнені пристрої
Навігація по ресурсам, пов'язаним із вузлами мережі
Наприклад, можна вибрати пристрої, які належать до сервісів кінцевих користувачів, вибравши 'Обслуговування', а також поставивши рівень важливості цих проблем.
Можливості фільтрації
7. Нова операція попередньої обробки - 'Заміна' дозволяє робити кілька корисних речей, які раніше можна було робити лише за допомогою регулярних виразів, досить складних для багатьох користувачів. заміщати дозволяє фактично замінити один рядок або символ на інші, що дозволяє просто конвертувати дані, отримані в текстовому форматі, числове подання.
Оператор Replace
8. Оператор JSONPath, який дозволяє отримувати імена атрибутів у зручній формі
Оператор для JSONPath
9. Відображення повідомлень електронної пошти Zabbix. У попередніх версіях усі повідомлення електронної пошти від Zabbix у папці Вхідні відображалися списком. Починаючи з Zabbix 5.0, повідомлення будуть групуватися з проблем.
Угруповання повідомлень електронної пошти від Zabbix
10. Підтримка користувацьких макросів для IPMI для імені користувача та пароля. Якщо для імені користувача та пароля використовуються секретні макроси, доступ до їх значення буде закрито.
Підтримка користувальницьких макросів
11. Масова зміна користувацьких макросів для вузлів мережі. У новій версії можна відкрити список шаблонів, вибрати список вузлів мережі та додавати макроси або змінювати значення існуючих макросів,
Додавання та зміна користувацьких макросів
а також видаляти певні або всі макроси з вибраних шаблонів для вузлів мережі.
Видалення окремих або всіх користувацьких макросів
12. Контроль формату повідомлень на рівні способу оповіщення. У Типи медіа з'явилася вкладка Media templates із шаблонами повідомлень.
Шаблони способів сповіщень
Ви можете визначити різні шаблони для різних типів повідомлень.
Визначення шаблону для типу повідомлень
У попередніх версіях потрібно було керувати цими повідомленнями на рівні дій, визначати повідомлення та предмет за умовчанням.
Керування шаблонами на рівні дій
У новій версії все можна визначити на глобальному рівні, а на рівні повідомлень переписати глобальні налаштування.
Управління шаблонами на глобальному рівні
Для більшості користувачів достатньо визначати формати шаблонів на рівні способу оповіщення. Більше того, після імпорту нового способу оповіщення всі відповідні формати шаблонів вже є його частиною.
13. Більш широке застосування JavaScript. JavaScript використовується для скриптів передобробки, Webhook і т.д. У командному рядку працювати з JavaScript непросто.
У Zabbix 5.0 використовується нова утиліта. zabbix_js, що запускає JavaScript, який приймає дані, обробляє їх та генерує вихідні значення.
Утиліта zabbix_js
Приклади використання утиліти zabbix_js
14. Підтримка текстових операцій тригерними виразами дозволяє перевіряти версії встановлених компонентів, порівнювати значення з будь-якими константами, при цьому константою може бути користувальницький макрос,
порівняти останнє значення з попереднім, наприклад, коли йдеться про текстові дані,
{host:text.last()}<>{host.text.prev()}
або
{host:text.last(#1)}<>{host.text.prev(#2)}
або порівнювати текстові значення різних метриків.
{hostA:textA.last()}={hostB:textB.last()}
15. Автоматизація та виявлення.
Доступні нові перевірки JMX для отримання та виявлення списку лічильників JMX, що дуже корисно, наприклад, для моніторингу Java-програм, а також для автоматизації створення елементів моніторингу, метрик, тригерів та графіків.
jmx.get[]
и
jmx.discovery[]
Перевірки JMX
У новій версії з'явився ключ для моніторингу лічильників продуктивності Windows, який підтримується старим та новим агентами російською та англійською мовами та дозволяє, наприклад, виявляти кількість процесорів, файлових систем, сервісів тощо.
Моніторинг лічильників продуктивності Windows за допомогою ключа perf_counter
ODBC-моніторинг став набагато простішим. Раніше всі параметри для ODBC-моніторингу доводилося описувати у зовнішньому файлі /etc/odbc.ini, якого не було доступу з боку інтерфейсу Zabbix. У новій версії практично всі параметри можуть бути частиною ключа метрики.
Ключ метрики з описом параметрів
У новій версії можна задати ім'я сервера та порт на рівні метрики, а ім'я та пароль для доступу – з використанням секретних макросів для безпеки.
Використання секретних макросів
При використанні протоколу IPMI для моніторингу обладнання з'явилася можливість створювати простіші шаблони для автоматизації за допомогою ipmi.get.
ipmi.get
16. Тестування елементів даних із інтерфейсу. У Zabbix 5.0 з'явилася можливість тестування деяких елементів даних і, що важливіше, шаблонів елементів даних з інтерфейсу.
Тестування елементів даних
Будь-які проблеми, що виникають, відображаються в інтерфейсі.
Відображення проблем в інтерфейсі
Аналогічний алгоритм використовується шаблонів елементів даних. Крім того, якщо будь-який елемент даних не підтримується, щоб дізнатися про причину збою, потрібно просто натиснути Тест.
17. Тестування способів оповіщення, що з'явилося в Zabbix 4.4, зберігається, що важливо при інтеграції Zabbix з іншими системами, наприклад, системами тикетів.
Тестування способів оповіщення
18. Підтримка користувальницьких макросів для прототипів елементів даних. Для визначення значень користувацьких макросів можна використовувати LLD-макроси.
Використання LLD-макросів для визначення значень користувацьких макросів
19. Підтримка даних Float64, які необхідні, в основному, для моніторингу дуже великих значень, в Zabbix потрібно для підтримки даних, що отримуються від агентів Prometheus.
У разі встановлення Zabbix 5.0 автоматична міграція даних на стандарт Float64 не відбувається. Користувач залишається можливість використовувати старі типи даних. Скрипти міграції на Float64 запускаються вручну та змінюють типи даних в історичних таблицях. Автоматична заміна не використовується, оскільки займає тривалий час.
Усунені списки, що розкриваються, наприклад, для вибору вузлів мережі, тому що ця функція не масштабується.
З'явилися «вбудовані» ліміти для розмірів таблиць огляд.
З'явилися нові можливості в Monitoring > Hosts > Graphs.
З'явилася функція paging (Monitoring > Hosts > Web) там, де її не було.
21. Поліпшена компресія
Компресія в Zabbix заснована на розширенні для PostgreSQL - TimescaleDB (починаючи з Zabbix 4.4). TimescaleDB забезпечить автоматичне секціонування бази даних та підвищує її продуктивність, оскільки продуктивність TimescaleDB фактично не залежить від розміру бази даних.
У Zabbix 5.0 Administration > General > Housekeeping можна налаштувати, наприклад, компресію даних старше 7 днів. Це значно скорочує потрібне місце на диску (майже вдесятеро, за даними користувачів), що покращує економію дискового простору та підвищує продуктивність.
Компресія за допомогою TimescaleDB
22. Налаштування SNMP на рівні інтерфейсу. У Zabbix 5.0 замість трьох типів елементів даних використовується лише один - SNMP agent. Всі атрибути SNMP перенесені на рівень інтерфейсу вузлів мережі, що дозволяє спростити шаблони, перемикання між версіями SNMP і т.д.
Налаштування SNMP на рівні інтерфейсу
23. Залежність моніторингу доступності вузлів мережі від доступності проксі дозволяє відображати проблему доступності проксі як першочергову у разі недоступності вузлів мережі під час моніторингу з використанням тригера з функцією немає даних:
{HostA:item.nodata(1m)}=1
Доступність вузлів мережі визначається доступністю проксі
Функція немає даних за умовчанням бере до уваги доступність проксі. Для більш строгої перевірки, яка не бере до уваги доступність проксі, використовується другий параметр. строгий:
{HostA:item.nodata(1m,strict)}=1
24. Управління правилами низькорівневого виявлення. У Zabbix 5.0 з'явився LLD-фільтр, який дозволяє переглядати в тому числі правила виявлення, що не підтримуються.
LLD-фільтр
25. Можливість зняти підтвердження проблеми (unacknowledge) дозволяє виправляти помилки та корисна при створенні робочих процесів, що залежать від підтвердження проблеми.
Зняття підтвердження проблеми
26. Зміна правил низькорівневого виявлення —можливість додавання винятків при виявленні об'єктів у результаті моніторингу файлових систем, що дозволяє при низькорівному виявленні створювати або не створювати певні об'єкти, тригери, елементи даних тощо, змінювати важливість проблем, додавати теги для певних об'єктів, виключати об'єкти, наприклад, тимчасові файлові системи з пошуку, змінювати інтервал оновлення даних і т.д.
Виняток із низькорівневого виявлення тимчасових файлових систем
Наприклад, можна змінити рівень пріоритетності тригерів для виявлених файлових систем Oracle, залишивши рівень пріоритетності тригерів інших файлових систем на попередньому рівні.
Зміна рівня пріоритетності тригерів для окремих файлових систем
27. Нові макроси в Zabbix 5.0 дозволяють підвищити якість моніторингу.