В середине мая вышла версия Zabbix 5.0, и мы организовали серию онлайн митапов на разных языках с целью наглядно продемонстрировать сообществу все изменения и нововведения. Предлагаем вам ознакомиться с докладом исполнительного директора и создателя Zabbix Алексея Владышева, в котором он пошагово рассказал, что нового в Zabbix 5.0.
![image](https://habrastorage.org/r/w1560/webt/zy/r2/mm/zyr2mm5cioxt5vau-kwclpbho0o.png)
Начнем с изменений, появившихся в версии Zabbix 4.0, в связи с использованием LTS-версий.
В версии Zabbix 4.2, которая вышла в апреле 2019 года, появились следующие возможности:
В сентябре прошлого года вышла версия Zabbix 4.4, которая предлагала следующие возможности:
Сегодня мы поговорим о LTS-релизе Zabbix 5.0, который будет поддерживаться в течение 5 лет. Поддержка версии 4.4 прекращается через один месяц. LTS-релиз Zabbix 3.0 будет поддерживаться еще 3,5 года.
Zabbix обеспечивает мониторинг многих вещей, список которых можно уточнить на странице http://www.zabbix.com/integrations, где представлены шаблоны для мониторинга и плагины, в том числе для нового агента.
![image](https://habrastorage.org/r/w780q1/webt/2u/la/6z/2ula6zqk3n229t0i1mpzifo7egq.jpeg)
Доступные шаблоны для мониторинга и интеграции
Кроме того, существуют возможности интеграции с различными системами, включая системы тикетов, ITSM-системы и системы доставки сообщений с помощью Webhook.
![image](https://habrastorage.org/r/w780q1/webt/ti/hw/bf/tihwbfrbwmxuh4gmsfi73grbf-i.jpeg)
Возможности интеграции
В Zabbix 5.0 расширена встроенная поддержка для интеграции с различными системами тикетов, а также системами оповещений:
![image](https://habrastorage.org/r/w780q1/webt/ci/ji/lu/cijiluih2sit_d1efgj64vblrhu.jpeg)
Интеграция с различными системами
Расширен список встроенных шаблонов для мониторинга приложений и устройств:
![image](https://habrastorage.org/r/w780q1/webt/96/8z/le/968zletuqt6b0ragatyvoyi4lmi.jpeg)
Встроенные шаблоны для мониторинга приложений и устройств
Все обновления доступны для скачивания в Git repository.
Любой пользователь или разработчик может участвовать в Zabbix с готовыми наработками — шаблонами или плагинами, воспользовавшись простой процедурой:
Zabbix — открытое программное обеспечение с открытым исходным кодом, доступным для просмотра, изучения и изменения. Пользователю предоставляется возможность свободно использовать продукт, участвовать в доработке программы или использовать код для своих новых программ. С другой стороны, команда Zabbix делает все возможное, чтобы Zabbix можно было легко устанавливать на различных платформах.
Разработчики Zabbix предлагают пакеты для практически всех наиболее популярных дистрибутивов и различных платформ виртуализации. Кроме того, Zabbix с помощью одного клика мыши можно установить в публичном облаке. Zabbix также доступен на платформах Red Hat Openshift или OpenStack.
![image](https://habrastorage.org/r/w780q1/webt/mr/s5/vw/mrs5vw0c2--u5prfvf_sunnre0u.jpeg)
Пакеты Zabbix для дистрибутивов и платформ
Новый Zabbix Agent 2 — одно из лучших решений на рынке.
Кроме того, для нового агента в Zabbix 5.0 предлагается поддержка постоянного хранения данных. Ранее неотправленная информация хранилась только в буферной памяти агента, а в новой версии доступна настройка хранения такой информации на диске.
![image](https://habrastorage.org/r/w780q1/webt/8l/jk/xx/8ljkxxmnkeskhd4vo_iyc_yxgd0.jpeg)
Постоянное хранение данных
Это важно в случае мониторинга критических систем и нестабильных коммуникаций, поскольку большое количество важнейших данных сохраняется до отправки на Zabbix сервер. Опция также полезна для спутниковых соединений, которые могут быть недоступны в течение длительного времени.
ВАЖНО! В Zabbix 5.0 сохранена поддержка Zabbix Agent 1.
1. В новой версии поддерживается HTTP-прокси для webhook, который позволяет выполнять соединения с Zabbix сервера на внешние системами оповещения более безопасным и управляемым образом.
Если необходима интеграция Zabbix-сервера в локальной сети с внешней системой, наример, JIRA в облаке, можно поддерживать соединение через HTTP-прокси, что улучшает контролируемость и надежность соединения.
2. Как для старого, так и для нового агента предусмотрена возможность выбирать, какие именно проверки должны быть доступны на определенном агенте. Например, можно ограничить количество проверок, фактически создав белые и черные списки, определить поддерживаемые ключи.
3. Возможен выбор алгоритмов шифрования для всех компонентов Zabbix, во избежание использования небезопасных шифров для TLS-соединений. Это важно для мониторинга сред, для которых применяются определенные стандарты безопасности.
![image](https://habrastorage.org/r/w780q1/webt/de/zj/s6/dezjs6lenlvi_nymrvkiq_j90rq.jpeg)
Выбор алгоритмов шифрования для TLS-соединений
4. В Zabbix 5.0 появилась поддержка шифрованных соединений с базой данных. На данный момент доступно только шифрованное соединение с PostgreSQL и MySQL.
![image](https://habrastorage.org/r/w780q1/webt/jw/23/8q/jw238q6ofiqyczebxeyn_6pu5ou.jpeg)
Шифрованные соединения с базой данных
5. Zabbix 5.0 перешел с MD5 на SHA256 для хранения хэшей паролей пользователей в базе данных, поскольку на данный момент это наиболее безопасный алгоритм.
6. Zabbix 5.0 поддерживает секретные пользовательские макросы для хранения любой конфиденциальной информации, такой как пароли и API токены, к которой не имеют доступа конечные пользователи.
![image](https://habrastorage.org/r/w780q1/webt/qh/a6/3s/qha63svwpfw-iu_-kxyymjq_igk.jpeg)
Секретные макросы
7. Все соединения Zabbix с внешними системами и внутренние соединения с агентами являются безопасными. Поддерживается шифрование с использованием TLS сертификатов, либо с использованием предварительно опубликованного ключа (pre-shared key encryption) для соединения с агентами и c прокси, либо HTTPS. Безопасность на стороне агентов можно усиливать за счет белых и черных списков. Интерфейс работает через HTTPS.
![image](https://habrastorage.org/r/w780q1/webt/dw/ep/s1/dweps1kra9wgitghq_rweveoyr4.jpeg)
Безопасные соединения
8. Поддержка SAML для обеспечения единой точки аутентификации у надежного поставщика идентификационных услуг, поэтому пользовательские учетные данные не покинут границы брандмауэра.
![image](https://habrastorage.org/r/w780q1/webt/gb/df/-r/gbdf-r80xfg5okbvst_dvvj70yi.jpeg)
SAML-идентификация
Поддержка SAML позволяет интегрировать Zabbix с различными локальными и облачными поставщиками идентификационных услуг, такими как Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, а также Azure, AWS или Google Cloud Platform.
1. Пользовательский интерфейс, оптимизированный для широких экранов. Мы переместили меню из верхней части, где всегда не хватает места, в левую часть экрана. Меню по-прежнему отображается в полном, минимальном и скрытом режиме.
![image](https://habrastorage.org/r/w780q1/webt/uz/se/20/uzse20fqka75lwkt_7cs9niyn5u.jpeg)
Интерфейс, оптимизированный для широкого экрана
2. Копирование виджетов с панелей позволяет очень быстро создавать новые ПАНЕЛИ. Для этого в ПАНЕЛИ необходимо выбрать нужный виджет, нажать Copy
![image](https://habrastorage.org/r/w780q1/webt/vl/nz/9x/vlnz9xtp8puglupw2yfnpbjxqnm.jpeg)
Копирование виджета
и вставить виджет в нужную панель.
![image](https://habrastorage.org/r/w780q1/webt/ey/at/7p/eyat7powpy8ibxmf3c_hy3mddyu.jpeg)
Вставка скопированного виджета
3. Экспорт графиков. Чтобы скопировать график и отправить, например, по электронной почтe, можно получить график в формате PNG, выбрав нужный виджет и нажав Download image.
![image](https://habrastorage.org/r/w780q1/webt/dx/y_/wa/dxy_wac_iualrct0ksdu1b3r030.jpeg)
Экспорт графиков
4. Фильтрация по тегам: Problem by severity и Problem hosts. Появилась возможность, например, собрать в одном дата-центре данные по всем проблемам, связанным с одним узлом сети.
![image](https://habrastorage.org/r/w780q1/webt/47/qn/wb/47qnwbbymbrvxfp3zu6diilxttw.jpeg)
Фильтрация по тегам
5. Поддержка модулей для расширения интерфейса Zabbix. Для установки независимого модуля нужно скопировать его в определенную директорию. Модули позволяют расширять существующую функциональность интерфейса, создавать новые страницы, менять структуру меню, например, добавлять пункты.
Написать и интегрировать модуль может любой пользователь. Для этого модуль копируется в папку modules, после чего становится видим для интерфейса, где его можно включить и выключить.
![image](https://habrastorage.org/r/w780q1/webt/pa/f_/-z/paf_-zb5j-3nvxwceir4duwupjk.jpeg)
Добавление нового модуля
6. Простота навигации по ресурсам, связанным с узлами сети. В Monitoring > Hosts отображается список устройств, которые мониторит Zabbix: узлы сети, сервисы, сетевые устройства и т. д. Кроме того, доступна быстрая навигация к экранам, графикам и проблемам конкретных устройств.
Мы убрали вкладки Monitoring > Graphs и Monitoring > Webs, и вся навигация осуществляется через Monitoring > Hosts. Отображаемую информацию можно фильтровать, в том числе, по тегам, что позволяет отображать отключенные устройства
![image](https://habrastorage.org/r/w780q1/webt/bi/0l/8d/bi0l8dtkcskk1nko47ec0u47cas.jpeg)
Навигация по ресурсам, связанным с узлами сети
Например, можно выбрать устройства, которые относятся к сервисам конечных пользователей, выбрав ‘Service’, а также задав уровень важности этих проблем.
![image](https://habrastorage.org/r/w780q1/webt/ei/lo/hs/eilohsijmb-tmwjmvjncm4xedtk.jpeg)
Возможности фильтрации
7. Новая операция предварительной обработки — ‘Замена‘ позволяет делать несколько полезных вещей, которые раньше можно было делать только с помощью регулярных выражений, достаточно сложных для многих пользователей.
Replace позволяет фактически заменить одну строку или символ на другие, что позволяет просто конвертировать данные, полученные в текстовом формате, в числовое представление.
![image](https://habrastorage.org/r/w780q1/webt/g5/vn/gn/g5vngnlwm7gi1h0t-6aga_9g-bo.jpeg)
Оператор Replace
8. Оператор JSONPath, который позволяет извлекать имена атрибутов в удобной форме
![image](https://habrastorage.org/r/w780q1/webt/yi/v1/uc/yiv1uciu-y89ykirmymyck1gomk.jpeg)
Оператор для JSONPath
9. Отображение сообщений электронной почты Zabbix. В предыдущих версиях все сообщения электронной почты от Zabbix в папке Входящие отображались списком. Начиная с Zabbix 5.0 сообщения будут группироваться по проблемам.
![image](https://habrastorage.org/r/w780q1/webt/w1/f0/d4/w1f0d4usdvhafrg1a1wjqmfktdy.jpeg)
Группировка сообщений электронной почты от Zabbix
10. Поддержка пользовательских макросов для IPMI для имени пользователя и пароля. Если для имени пользователя и пароля используются секретные макросы, доступ к их значению будет закрыт.
![image](https://habrastorage.org/r/w780q1/webt/6y/gk/ex/6ygkexchpt29utebk7plnxmqqkc.jpeg)
Поддержка пользовательских макросов
11. Массовое изменение пользовательских макросов для узлов сети. В новой версии можно открыть список шаблонов, выбрать список узлов сети и добавлять макросы или менять значения существующих макросов,
![image](https://habrastorage.org/r/w780q1/webt/co/nh/he/conhhezbwkqleednflfq0k1o2jy.jpeg)
Добавление и изменение пользовательских макросов
а также удалять какие-то определенные или все макросы из выбранных шаблонов для узлов сети.
![image](https://habrastorage.org/r/w780q1/webt/ef/wk/zj/efwkzj7f9thfbugugknxhj-xreo.jpeg)
Удаление отдельных или всех пользовательских макросов
12. Контроль формата сообщений на уровне способа оповещения. В Media types появилась вкладка Media templates с шаблонами сообщений.
![image](https://habrastorage.org/r/w780q1/webt/ku/8r/dv/ku8rdvev4qd7u-kiw9gfmiyjqxu.jpeg)
Шаблоны способов оповещений
Для разных типов сообщений можно определить различные шаблоны.
![image](https://habrastorage.org/r/w780q1/webt/lf/ai/mx/lfaimx-zci680lbm1w3m1cojh5u.jpeg)
Определение шаблона для типа сообщений
В предыдущих версиях нужно было управлять этими сообщениями на уровне действий, определять сообщения и предмет по умолчанию.
![image](https://habrastorage.org/r/w780q1/webt/81/cf/z1/81cfz1bud1slfivz4b9vush3j34.jpeg)
Управление шаблонами на уровне действий
В новой версии все можно определить на глобальном уровне, а на уровне сообщений — переписать глобальные настройки.
![image](https://habrastorage.org/r/w780q1/webt/q2/c8/3w/q2c83w4tkepcbcajgpb2qdiy2by.jpeg)
Управление шаблонами на глобальном уровне
Для большинства пользователей достаточно определять форматы шаблонов на уровне способа оповещения. Более того, после импорта какого-то нового способа оповещения все соответствующие форматы шаблонов уже являются его частью.
13. Более широкое применение JavaScript. JavaScript используется для скриптов предобработки, для Webhook и т.д. В командной строке, работать с JavaScript непросто.
В Zabbix 5.0 используется новая утилита — zabbix_js, запускающая JavaScript, который принимает данные, обрабатывает их и генерирует выходные значения.
![image](https://habrastorage.org/r/w780q1/webt/uj/lk/ps/ujlkpsgc-xpg-liqyfgzjj0lbss.jpeg)
Утилита zabbix_js
![image](https://habrastorage.org/r/w780q1/webt/4z/xj/qv/4zxjqvuvqo0fotftuy2xwibbgzi.jpeg)
Примеры использования утилиты zabbix_js
14. Поддержка текстовых операций триггерными выражениями позволяет проверять версии установленных компонентов, сравнивать значения с какими-либо константами, при этом константой может быть пользовательский макрос,
cравнивать последнее значение с предыдущим, например, когда речь идет о текстовых данных,
или
или сравнивать текстовые значения различных метрик.
15. Автоматизация и обнаружение.
16. Тестирование элементов данных из интерфейса. В Zabbix 5.0 появилась возможность тестирования некоторых элементов данных и, что еще более важно, шаблонов элементов данных из интерфейса.
![image](https://habrastorage.org/r/w780q1/webt/z2/hj/e-/z2hje-3ascil1mcjyejoopejvq0.jpeg)
Тестирование элементов данных
Любые возникающие проблемы отображаются в интерфейсе.
![image](https://habrastorage.org/r/w780q1/webt/k1/kg/2g/k1kg2gsyx9tvsvawunggmn2zom4.jpeg)
Отображение проблем в интерфейсе
Аналогичный алгоритм используется для шаблонов элементов данных. Кроме того, если какой-либо элемент данных не поддерживается, чтобы узнать причину сбоя, нужно просто нажать Test.
17. Тестирование способов оповещения, которое появилось в Zabbix 4.4, сохраняется, что важно при интеграции Zabbix с другими системами, например, системами тикетов.
![image](https://habrastorage.org/r/w780q1/webt/gg/ta/zg/ggtazgllrlxcxym_x7erfobvzow.jpeg)
Тестирование способов оповещения
18. Поддержка пользовательских макросов для прототипов элементов данных. Для определения значений пользовательских макросов можно использовать LLD-макросы.
![image](https://habrastorage.org/r/w780q1/webt/hq/kz/8m/hqkz8m5vy27npwvgwdy0gqhxjts.jpeg)
Использование LLD-макросов для определения значений пользовательских макросов
19. Поддержка данных Float64, которые необходимы, в основном, для мониторинга очень больших значений, в Zabbix требуется для поддержки данных получаемых от агентов Prometheus.
В случае установки Zabbix 5.0 автоматическая миграция данных на стандарт Float64 не происходит. У пользователя остается возможность использовать старые типы данных. Скрипты миграции на Float64 запускаются вручную и меняют типы данных в исторических таблицах. Автоматическая замена не используется, поскольку занимает очень длительное время.
20. Улучшение масштабируемости Zabbix 5.0: оптимизация интерфейса и устранение «узких мест»
21. Улучшенная компрессия
Компрессия в Zabbix основана на расширении для PostgreSQL — TimescaleDB (начиная с Zabbix 4.4). TimescaleDB обеспечивет автоматическое секционирование базы данных и повышает её производительность, поскольку производительность TimescaleDB фактически не зависит от размера базы данных.
В Zabbix 5.0 в Administration > General > Housekeeping можно настроить, например, компрессию данных старше 7 дней. Это значительно сокращает требуемое место на диске (почти в десять раз, по данным пользователей), что улучшает экономию дискового пространства и повышает производительность.
![image](https://habrastorage.org/r/w780q1/webt/zt/p_/jg/ztp_jgfsc_6zhupps4o4ad5yjjg.jpeg)
Компрессия с помощью TimescaleDB
22. Настройка SNMP на уровне интерфейса. В Zabbix 5.0 вместо трех типов элементов данных используется только один — SNMP agent. Все атрибуты SNMP перенесены на уровень интерфейса узлов сети, что позволяет упростить шаблоны, переключение между версиями SNMP и т. д.
![image](https://habrastorage.org/r/w780q1/webt/vl/pw/mt/vlpwmt9mcv_mx_khc7p7i4nqcaa.jpeg)
Настройка SNMP на уровне интерфейса
23. Зависимость мониторинга доступности узлов сети от доступности прокси позволяет отображать проблему доступности прокси как первоочередную в случае недоступности узлов сети при мониторинге с использованием триггера с функцией nodata:
![image](https://habrastorage.org/r/w780q1/webt/qo/kx/au/qokxaufmymcji14tpdvklizjes0.jpeg)
Доступность узлов сети определяется доступностью прокси
Функция nodata по умолчанию принимает во внимание доступность прокси. Для более строгой проверки, не принимающей во внимание доступность прокси, используется второй параметр — strict:
24. Управление правилами низкоуровневого обнаружения. В Zabbix 5.0 появился LLD-фильтр, который позволяет просматривать в том числе неподдерживаемые правила обнаружения
![image](https://habrastorage.org/r/w780q1/webt/vd/_l/xq/vd_lxqsb63sxpellifsuo075n3c.jpeg)
LLD-фильтр
25. Возможность снять подтверждение проблемы (unacknowledge) позволяет исправлять ошибки и полезна при создании рабочих процессов, зависящих от подтверждения проблемы.
![image](https://habrastorage.org/r/w780q1/webt/2l/g2/kf/2lg2kffa_fqd4elsps6bvq28_tg.jpeg)
Снятие подтверждения проблемы
26. Изменение правил низкоуровневого обнаружения —возможность добавления исключений при обнаружении объектов в результате мониторинга файловых систем, которая позволяет при низкоуровнем обнаружении создавать или не создавать определенные объекты, триггеры, элементы данных и т.д., менять важность проблем, добавлять теги для определенных объектов, исключать объекты, например, временные файловые системы, из поиска, менять интервал обновления данных и т.д.
![image](https://habrastorage.org/r/w780q1/webt/sg/rs/3i/sgrs3iorfqexg6frgum-ffbtbqa.jpeg)
Исключение из низкоуровневого обнаружения временных файловых систем
Например, можно изменить уровень приоритетности триггеров для обнаруженных файловых систем Oracle, оставив уровень приоритетности триггеров других файловых систем на прежнем уровне.
![image](https://habrastorage.org/r/w780q1/webt/75/iy/gs/75iygsl31flze7o0txzfqkuxjtu.jpeg)
Изменение уровеня приоритетности триггеров для отдельны файловых систем
27. Новые макросы в Zabbix 5.0 позволяют повысить качество мониторинга.
![image](https://habrastorage.org/r/w780q1/webt/dt/lt/iz/dtltizrwpywsdu5wgl0qcwnqmte.jpeg)
Новые макросы в Zabbix 5.0
28. Другие нововведения в Zabbix 5.0:
![image](https://habrastorage.org/r/w780q1/webt/cx/8t/qw/cx8tqw90vwsladkruzyd4ze00jk.jpeg)
Улучшения в Zabbix 5.0
29. Прекращение поддержки
![image](https://habrastorage.org/r/w780q1/webt/tu/va/4n/tuva4nunvio-dvhvor0qkykik94.jpeg)
Неподдерживаемая функциональность
Обновиться до Zabbix 5.0 очень просто! Устанавливайте и запускайте новые бинарные файлы для сервера и frontend-файлы, и сервер автоматически обновит вашу базу данных.
Информация о процедуре обновления Zabbix размещена по адресу:
https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500
ВАЖНО!
(!) Видео и слайды презентаций Алексея Владышева и других спикеров Zabbix Meetup Online (Russian) можно посмотреть здесь.
![image](https://habrastorage.org/webt/zy/r2/mm/zyr2mm5cioxt5vau-kwclpbho0o.png)
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, где представлены шаблоны для мониторинга и плагины, в том числе для нового агента.
![image](https://habrastorage.org/webt/2u/la/6z/2ula6zqk3n229t0i1mpzifo7egq.jpeg)
Доступные шаблоны для мониторинга и интеграции
Кроме того, существуют возможности интеграции с различными системами, включая системы тикетов, ITSM-системы и системы доставки сообщений с помощью Webhook.
![image](https://habrastorage.org/webt/ti/hw/bf/tihwbfrbwmxuh4gmsfi73grbf-i.jpeg)
Возможности интеграции
В Zabbix 5.0 расширена встроенная поддержка для интеграции с различными системами тикетов, а также системами оповещений:
![image](https://habrastorage.org/webt/ci/ji/lu/cijiluih2sit_d1efgj64vblrhu.jpeg)
Интеграция с различными системами
Расширен список встроенных шаблонов для мониторинга приложений и устройств:
![image](https://habrastorage.org/webt/96/8z/le/968zletuqt6b0ragatyvoyi4lmi.jpeg)
Встроенные шаблоны для мониторинга приложений и устройств
Все обновления доступны для скачивания в Git repository.
Любой пользователь или разработчик может участвовать в Zabbix с готовыми наработками — шаблонами или плагинами, воспользовавшись простой процедурой:
- Подписание Zabbix Contributory Agreement (ZCA) на https://www.zabbix.com/developers.
- Размещение Pull Request на https://git.zabbix.com.
- Рассмотрение заявки командой разработчиков. Если плагин или шаблон соответствует стандартам Zabbix, он включается в продукт, и работа такого разработчика будет официально поддерживаться командой Zabbix.
Zabbix — открытое программное обеспечение с открытым исходным кодом, доступным для просмотра, изучения и изменения. Пользователю предоставляется возможность свободно использовать продукт, участвовать в доработке программы или использовать код для своих новых программ. С другой стороны, команда Zabbix делает все возможное, чтобы Zabbix можно было легко устанавливать на различных платформах.
Разработчики Zabbix предлагают пакеты для практически всех наиболее популярных дистрибутивов и различных платформ виртуализации. Кроме того, Zabbix с помощью одного клика мыши можно установить в публичном облаке. Zabbix также доступен на платформах Red Hat Openshift или OpenStack.
![image](https://habrastorage.org/webt/mr/s5/vw/mrs5vw0c2--u5prfvf_sunnre0u.jpeg)
Пакеты Zabbix для дистрибутивов и платформ
Поддержка Zabbix Agent 2 для Windows и Linux
Новый Zabbix Agent 2 — одно из лучших решений на рынке.
- Предлагает структуру, основанную на плагинах, и поддерживает скрипты для сбора данных, которые могут работать часами.
- Поддерживает параллельные активные проверки, постоянные подключения к внешним системам, что полезно, например, для эффективного мониторинга баз данных.
- Поддерживает ловушки и события, что важно для мониторинга, например, MQTT-устройств.
- Новая версия агента легко устанавливается (поскольку новый агент поддерживает все предыдущие функциональности).
Кроме того, для нового агента в Zabbix 5.0 предлагается поддержка постоянного хранения данных. Ранее неотправленная информация хранилась только в буферной памяти агента, а в новой версии доступна настройка хранения такой информации на диске.
![image](https://habrastorage.org/webt/8l/jk/xx/8ljkxxmnkeskhd4vo_iyc_yxgd0.jpeg)
Постоянное хранение данных
Это важно в случае мониторинга критических систем и нестабильных коммуникаций, поскольку большое количество важнейших данных сохраняется до отправки на 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-соединений. Это важно для мониторинга сред, для которых применяются определенные стандарты безопасности.
![image](https://habrastorage.org/webt/de/zj/s6/dezjs6lenlvi_nymrvkiq_j90rq.jpeg)
Выбор алгоритмов шифрования для TLS-соединений
4. В Zabbix 5.0 появилась поддержка шифрованных соединений с базой данных. На данный момент доступно только шифрованное соединение с PostgreSQL и MySQL.
![image](https://habrastorage.org/webt/jw/23/8q/jw238q6ofiqyczebxeyn_6pu5ou.jpeg)
Шифрованные соединения с базой данных
5. Zabbix 5.0 перешел с MD5 на SHA256 для хранения хэшей паролей пользователей в базе данных, поскольку на данный момент это наиболее безопасный алгоритм.
6. Zabbix 5.0 поддерживает секретные пользовательские макросы для хранения любой конфиденциальной информации, такой как пароли и API токены, к которой не имеют доступа конечные пользователи.
![image](https://habrastorage.org/webt/qh/a6/3s/qha63svwpfw-iu_-kxyymjq_igk.jpeg)
Секретные макросы
7. Все соединения Zabbix с внешними системами и внутренние соединения с агентами являются безопасными. Поддерживается шифрование с использованием TLS сертификатов, либо с использованием предварительно опубликованного ключа (pre-shared key encryption) для соединения с агентами и c прокси, либо HTTPS. Безопасность на стороне агентов можно усиливать за счет белых и черных списков. Интерфейс работает через HTTPS.
![image](https://habrastorage.org/webt/dw/ep/s1/dweps1kra9wgitghq_rweveoyr4.jpeg)
Безопасные соединения
8. Поддержка SAML для обеспечения единой точки аутентификации у надежного поставщика идентификационных услуг, поэтому пользовательские учетные данные не покинут границы брандмауэра.
![image](https://habrastorage.org/webt/gb/df/-r/gbdf-r80xfg5okbvst_dvvj70yi.jpeg)
SAML-идентификация
Поддержка SAML позволяет интегрировать Zabbix с различными локальными и облачными поставщиками идентификационных услуг, такими как Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, а также Azure, AWS или Google Cloud Platform.
Удобство использования Zabbix 5.0
1. Пользовательский интерфейс, оптимизированный для широких экранов. Мы переместили меню из верхней части, где всегда не хватает места, в левую часть экрана. Меню по-прежнему отображается в полном, минимальном и скрытом режиме.
![image](https://habrastorage.org/webt/uz/se/20/uzse20fqka75lwkt_7cs9niyn5u.jpeg)
Интерфейс, оптимизированный для широкого экрана
2. Копирование виджетов с панелей позволяет очень быстро создавать новые ПАНЕЛИ. Для этого в ПАНЕЛИ необходимо выбрать нужный виджет, нажать Copy
![image](https://habrastorage.org/webt/vl/nz/9x/vlnz9xtp8puglupw2yfnpbjxqnm.jpeg)
Копирование виджета
и вставить виджет в нужную панель.
![image](https://habrastorage.org/webt/ey/at/7p/eyat7powpy8ibxmf3c_hy3mddyu.jpeg)
Вставка скопированного виджета
3. Экспорт графиков. Чтобы скопировать график и отправить, например, по электронной почтe, можно получить график в формате PNG, выбрав нужный виджет и нажав Download image.
![image](https://habrastorage.org/webt/dx/y_/wa/dxy_wac_iualrct0ksdu1b3r030.jpeg)
Экспорт графиков
4. Фильтрация по тегам: Problem by severity и Problem hosts. Появилась возможность, например, собрать в одном дата-центре данные по всем проблемам, связанным с одним узлом сети.
![image](https://habrastorage.org/webt/47/qn/wb/47qnwbbymbrvxfp3zu6diilxttw.jpeg)
Фильтрация по тегам
5. Поддержка модулей для расширения интерфейса Zabbix. Для установки независимого модуля нужно скопировать его в определенную директорию. Модули позволяют расширять существующую функциональность интерфейса, создавать новые страницы, менять структуру меню, например, добавлять пункты.
Написать и интегрировать модуль может любой пользователь. Для этого модуль копируется в папку modules, после чего становится видим для интерфейса, где его можно включить и выключить.
![image](https://habrastorage.org/webt/pa/f_/-z/paf_-zb5j-3nvxwceir4duwupjk.jpeg)
Добавление нового модуля
6. Простота навигации по ресурсам, связанным с узлами сети. В Monitoring > Hosts отображается список устройств, которые мониторит Zabbix: узлы сети, сервисы, сетевые устройства и т. д. Кроме того, доступна быстрая навигация к экранам, графикам и проблемам конкретных устройств.
Мы убрали вкладки Monitoring > Graphs и Monitoring > Webs, и вся навигация осуществляется через Monitoring > Hosts. Отображаемую информацию можно фильтровать, в том числе, по тегам, что позволяет отображать отключенные устройства
![image](https://habrastorage.org/webt/bi/0l/8d/bi0l8dtkcskk1nko47ec0u47cas.jpeg)
Навигация по ресурсам, связанным с узлами сети
Например, можно выбрать устройства, которые относятся к сервисам конечных пользователей, выбрав ‘Service’, а также задав уровень важности этих проблем.
![image](https://habrastorage.org/webt/ei/lo/hs/eilohsijmb-tmwjmvjncm4xedtk.jpeg)
Возможности фильтрации
7. Новая операция предварительной обработки — ‘Замена‘ позволяет делать несколько полезных вещей, которые раньше можно было делать только с помощью регулярных выражений, достаточно сложных для многих пользователей.
Replace позволяет фактически заменить одну строку или символ на другие, что позволяет просто конвертировать данные, полученные в текстовом формате, в числовое представление.
![image](https://habrastorage.org/webt/g5/vn/gn/g5vngnlwm7gi1h0t-6aga_9g-bo.jpeg)
Оператор Replace
8. Оператор JSONPath, который позволяет извлекать имена атрибутов в удобной форме
![image](https://habrastorage.org/webt/yi/v1/uc/yiv1uciu-y89ykirmymyck1gomk.jpeg)
Оператор для JSONPath
9. Отображение сообщений электронной почты Zabbix. В предыдущих версиях все сообщения электронной почты от Zabbix в папке Входящие отображались списком. Начиная с Zabbix 5.0 сообщения будут группироваться по проблемам.
![image](https://habrastorage.org/webt/w1/f0/d4/w1f0d4usdvhafrg1a1wjqmfktdy.jpeg)
Группировка сообщений электронной почты от Zabbix
10. Поддержка пользовательских макросов для IPMI для имени пользователя и пароля. Если для имени пользователя и пароля используются секретные макросы, доступ к их значению будет закрыт.
![image](https://habrastorage.org/webt/6y/gk/ex/6ygkexchpt29utebk7plnxmqqkc.jpeg)
Поддержка пользовательских макросов
11. Массовое изменение пользовательских макросов для узлов сети. В новой версии можно открыть список шаблонов, выбрать список узлов сети и добавлять макросы или менять значения существующих макросов,
![image](https://habrastorage.org/webt/co/nh/he/conhhezbwkqleednflfq0k1o2jy.jpeg)
Добавление и изменение пользовательских макросов
а также удалять какие-то определенные или все макросы из выбранных шаблонов для узлов сети.
![image](https://habrastorage.org/webt/ef/wk/zj/efwkzj7f9thfbugugknxhj-xreo.jpeg)
Удаление отдельных или всех пользовательских макросов
12. Контроль формата сообщений на уровне способа оповещения. В Media types появилась вкладка Media templates с шаблонами сообщений.
![image](https://habrastorage.org/webt/ku/8r/dv/ku8rdvev4qd7u-kiw9gfmiyjqxu.jpeg)
Шаблоны способов оповещений
Для разных типов сообщений можно определить различные шаблоны.
![image](https://habrastorage.org/webt/lf/ai/mx/lfaimx-zci680lbm1w3m1cojh5u.jpeg)
Определение шаблона для типа сообщений
В предыдущих версиях нужно было управлять этими сообщениями на уровне действий, определять сообщения и предмет по умолчанию.
![image](https://habrastorage.org/webt/81/cf/z1/81cfz1bud1slfivz4b9vush3j34.jpeg)
Управление шаблонами на уровне действий
В новой версии все можно определить на глобальном уровне, а на уровне сообщений — переписать глобальные настройки.
![image](https://habrastorage.org/webt/q2/c8/3w/q2c83w4tkepcbcajgpb2qdiy2by.jpeg)
Управление шаблонами на глобальном уровне
Для большинства пользователей достаточно определять форматы шаблонов на уровне способа оповещения. Более того, после импорта какого-то нового способа оповещения все соответствующие форматы шаблонов уже являются его частью.
13. Более широкое применение JavaScript. JavaScript используется для скриптов предобработки, для Webhook и т.д. В командной строке, работать с JavaScript непросто.
В Zabbix 5.0 используется новая утилита — zabbix_js, запускающая JavaScript, который принимает данные, обрабатывает их и генерирует выходные значения.
![image](https://habrastorage.org/webt/uj/lk/ps/ujlkpsgc-xpg-liqyfgzjj0lbss.jpeg)
Утилита zabbix_js
![image](https://habrastorage.org/webt/4z/xj/qv/4zxjqvuvqo0fotftuy2xwibbgzi.jpeg)
Примеры использования утилиты zabbix_js
14. Поддержка текстовых операций триггерными выражениями позволяет проверять версии установленных компонентов, сравнивать значения с какими-либо константами, при этом константой может быть пользовательский макрос,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}
cравнивать последнее значение с предыдущим, например, когда речь идет о текстовых данных,
{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 появилась возможность тестирования некоторых элементов данных и, что еще более важно, шаблонов элементов данных из интерфейса.
![image](https://habrastorage.org/webt/z2/hj/e-/z2hje-3ascil1mcjyejoopejvq0.jpeg)
Тестирование элементов данных
Любые возникающие проблемы отображаются в интерфейсе.
![image](https://habrastorage.org/webt/k1/kg/2g/k1kg2gsyx9tvsvawunggmn2zom4.jpeg)
Отображение проблем в интерфейсе
Аналогичный алгоритм используется для шаблонов элементов данных. Кроме того, если какой-либо элемент данных не поддерживается, чтобы узнать причину сбоя, нужно просто нажать Test.
17. Тестирование способов оповещения, которое появилось в Zabbix 4.4, сохраняется, что важно при интеграции Zabbix с другими системами, например, системами тикетов.
![image](https://habrastorage.org/webt/gg/ta/zg/ggtazgllrlxcxym_x7erfobvzow.jpeg)
Тестирование способов оповещения
18. Поддержка пользовательских макросов для прототипов элементов данных. Для определения значений пользовательских макросов можно использовать LLD-макросы.
![image](https://habrastorage.org/webt/hq/kz/8m/hqkz8m5vy27npwvgwdy0gqhxjts.jpeg)
Использование LLD-макросов для определения значений пользовательских макросов
19. Поддержка данных Float64, которые необходимы, в основном, для мониторинга очень больших значений, в Zabbix требуется для поддержки данных получаемых от агентов Prometheus.
В случае установки Zabbix 5.0 автоматическая миграция данных на стандарт Float64 не происходит. У пользователя остается возможность использовать старые типы данных. Скрипты миграции на Float64 запускаются вручную и меняют типы данных в исторических таблицах. Автоматическая замена не используется, поскольку занимает очень длительное время.
20. Улучшение масштабируемости Zabbix 5.0: оптимизация интерфейса и устранение «узких мест»
- Устранены раскрывающиеся списки, например, для выбора узлов сети, потому что эта функция не масштабируется.
- Появились «встроенные» лимиты для размеров таблиц Overview.
- Появились новые возможности в Monitoring > Hosts > Graphs.
- Появилась функция paging (Monitoring > Hosts > Web) там, где её не было.
21. Улучшенная компрессия
Компрессия в Zabbix основана на расширении для PostgreSQL — TimescaleDB (начиная с Zabbix 4.4). TimescaleDB обеспечивет автоматическое секционирование базы данных и повышает её производительность, поскольку производительность TimescaleDB фактически не зависит от размера базы данных.
В Zabbix 5.0 в Administration > General > Housekeeping можно настроить, например, компрессию данных старше 7 дней. Это значительно сокращает требуемое место на диске (почти в десять раз, по данным пользователей), что улучшает экономию дискового пространства и повышает производительность.
![image](https://habrastorage.org/webt/zt/p_/jg/ztp_jgfsc_6zhupps4o4ad5yjjg.jpeg)
Компрессия с помощью TimescaleDB
22. Настройка SNMP на уровне интерфейса. В Zabbix 5.0 вместо трех типов элементов данных используется только один — SNMP agent. Все атрибуты SNMP перенесены на уровень интерфейса узлов сети, что позволяет упростить шаблоны, переключение между версиями SNMP и т. д.
![image](https://habrastorage.org/webt/vl/pw/mt/vlpwmt9mcv_mx_khc7p7i4nqcaa.jpeg)
Настройка SNMP на уровне интерфейса
23. Зависимость мониторинга доступности узлов сети от доступности прокси позволяет отображать проблему доступности прокси как первоочередную в случае недоступности узлов сети при мониторинге с использованием триггера с функцией nodata:
{HostA:item.nodata(1m)}=1
![image](https://habrastorage.org/webt/qo/kx/au/qokxaufmymcji14tpdvklizjes0.jpeg)
Доступность узлов сети определяется доступностью прокси
Функция nodata по умолчанию принимает во внимание доступность прокси. Для более строгой проверки, не принимающей во внимание доступность прокси, используется второй параметр — strict:
{HostA:item.nodata(1m,strict)}=1
24. Управление правилами низкоуровневого обнаружения. В Zabbix 5.0 появился LLD-фильтр, который позволяет просматривать в том числе неподдерживаемые правила обнаружения
![image](https://habrastorage.org/webt/vd/_l/xq/vd_lxqsb63sxpellifsuo075n3c.jpeg)
LLD-фильтр
25. Возможность снять подтверждение проблемы (unacknowledge) позволяет исправлять ошибки и полезна при создании рабочих процессов, зависящих от подтверждения проблемы.
![image](https://habrastorage.org/webt/2l/g2/kf/2lg2kffa_fqd4elsps6bvq28_tg.jpeg)
Снятие подтверждения проблемы
26. Изменение правил низкоуровневого обнаружения —возможность добавления исключений при обнаружении объектов в результате мониторинга файловых систем, которая позволяет при низкоуровнем обнаружении создавать или не создавать определенные объекты, триггеры, элементы данных и т.д., менять важность проблем, добавлять теги для определенных объектов, исключать объекты, например, временные файловые системы, из поиска, менять интервал обновления данных и т.д.
![image](https://habrastorage.org/webt/sg/rs/3i/sgrs3iorfqexg6frgum-ffbtbqa.jpeg)
Исключение из низкоуровневого обнаружения временных файловых систем
Например, можно изменить уровень приоритетности триггеров для обнаруженных файловых систем Oracle, оставив уровень приоритетности триггеров других файловых систем на прежнем уровне.
![image](https://habrastorage.org/webt/75/iy/gs/75iygsl31flze7o0txzfqkuxjtu.jpeg)
Изменение уровеня приоритетности триггеров для отдельны файловых систем
27. Новые макросы в Zabbix 5.0 позволяют повысить качество мониторинга.
![image](https://habrastorage.org/webt/dt/lt/iz/dtltizrwpywsdu5wgl0qcwnqmte.jpeg)
Новые макросы в Zabbix 5.0
28. Другие нововведения в Zabbix 5.0:
![image](https://habrastorage.org/webt/cx/8t/qw/cx8tqw90vwsladkruzyd4ze00jk.jpeg)
Улучшения в Zabbix 5.0
29. Прекращение поддержки
![image](https://habrastorage.org/webt/tu/va/4n/tuva4nunvio-dvhvor0qkykik94.jpeg)
Неподдерживаемая функциональность
Заключение
Обновиться до Zabbix 5.0 очень просто! Устанавливайте и запускайте новые бинарные файлы для сервера и frontend-файлы, и сервер автоматически обновит вашу базу данных.
Информация о процедуре обновления Zabbix размещена по адресу:
https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500
ВАЖНО!
- Обновление исторических данных до формата Float64 необязательно.
- Данные TimescaleDB доступны только для чтения.
- Минимальная требуемая версия PHP7.2.
- DB2 не поддерживается как backend для Zabbix сервера
(!) Видео и слайды презентаций Алексея Владышева и других спикеров Zabbix Meetup Online (Russian) можно посмотреть здесь.