Что нового в Zabbix 5.0

В середине мая вышла версия Zabbix 5.0, и мы организовали серию онлайн митапов на разных языках с целью наглядно продемонстрировать сообществу все изменения и нововведения. Предлагаем вам ознакомиться с докладом исполнительного директора и создателя Zabbix Алексея Владышева, в котором он пошагово рассказал, что нового в Zabbix 5.0.

Что нового в 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, где представлены шаблоны для мониторинга и плагины, в том числе для нового агента.

Что нового в Zabbix 5.0
Доступные шаблоны для мониторинга и интеграции

Кроме того, существуют возможности интеграции с различными системами, включая системы тикетов, ITSM-системы и системы доставки сообщений с помощью Webhook.

Что нового в Zabbix 5.0
Возможности интеграции

В Zabbix 5.0 расширена встроенная поддержка для интеграции с различными системами тикетов, а также системами оповещений:

Что нового в Zabbix 5.0
Интеграция с различными системами

Расширен список встроенных шаблонов для мониторинга приложений и устройств:

Что нового в Zabbix 5.0
Встроенные шаблоны для мониторинга приложений и устройств

Все обновления доступны для скачивания в Git repository.

Любой пользователь или разработчик может участвовать в Zabbix с готовыми наработками — шаблонами или плагинами, воспользовавшись простой процедурой:

  1. Подписание Zabbix Contributory Agreement (ZCA) на https://www.zabbix.com/developers.
  2. Размещение Pull Request на https://git.zabbix.com.
  3. Рассмотрение заявки командой разработчиков. Если плагин или шаблон соответствует стандартам Zabbix, он включается в продукт, и работа такого разработчика будет официально поддерживаться командой Zabbix.

Zabbix — открытое программное обеспечение с открытым исходным кодом, доступным для просмотра, изучения и изменения. Пользователю предоставляется возможность свободно использовать продукт, участвовать в доработке программы или использовать код для своих новых программ. С другой стороны, команда Zabbix делает все возможное, чтобы Zabbix можно было легко устанавливать на различных платформах.

Разработчики Zabbix предлагают пакеты для практически всех наиболее популярных дистрибутивов и различных платформ виртуализации. Кроме того, Zabbix с помощью одного клика мыши можно установить в публичном облаке. Zabbix также доступен на платформах Red Hat Openshift или OpenStack.

Что нового в Zabbix 5.0
Пакеты Zabbix для дистрибутивов и платформ

Поддержка Zabbix Agent 2 для Windows и Linux

Новый Zabbix Agent 2 — одно из лучших решений на рынке.

  • Предлагает структуру, основанную на плагинах, и поддерживает скрипты для сбора данных, которые могут работать часами.
  • Поддерживает параллельные активные проверки, постоянные подключения к внешним системам, что полезно, например, для эффективного мониторинга баз данных.
  • Поддерживает ловушки и события, что важно для мониторинга, например, MQTT-устройств.
  • Новая версия агента легко устанавливается (поскольку новый агент поддерживает все предыдущие функциональности).

Кроме того, для нового агента в Zabbix 5.0 предлагается поддержка постоянного хранения данных. Ранее неотправленная информация хранилась только в буферной памяти агента, а в новой версии доступна настройка хранения такой информации на диске.

Что нового в 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-соединений. Это важно для мониторинга сред, для которых применяются определенные стандарты безопасности.

Что нового в Zabbix 5.0
Выбор алгоритмов шифрования для TLS-соединений

4. В Zabbix 5.0 появилась поддержка шифрованных соединений с базой данных. На данный момент доступно только шифрованное соединение с PostgreSQL и MySQL.

Что нового в Zabbix 5.0
Шифрованные соединения с базой данных

5. Zabbix 5.0 перешел с MD5 на SHA256 для хранения хэшей паролей пользователей в базе данных, поскольку на данный момент это наиболее безопасный алгоритм.

6. Zabbix 5.0 поддерживает секретные пользовательские макросы для хранения любой конфиденциальной информации, такой как пароли и API токены, к которой не имеют доступа конечные пользователи.

Что нового в Zabbix 5.0
Секретные макросы

7. Все соединения Zabbix с внешними системами и внутренние соединения с агентами являются безопасными. Поддерживается шифрование с использованием TLS сертификатов, либо с использованием предварительно опубликованного ключа (pre-shared key encryption) для соединения с агентами и c прокси, либо HTTPS. Безопасность на стороне агентов можно усиливать за счет белых и черных списков. Интерфейс работает через HTTPS.

Что нового в Zabbix 5.0
Безопасные соединения

8. Поддержка SAML для обеспечения единой точки аутентификации у надежного поставщика идентификационных услуг, поэтому пользовательские учетные данные не покинут границы брандмауэра.

Что нового в Zabbix 5.0
SAML-идентификация

Поддержка SAML позволяет интегрировать Zabbix с различными локальными и облачными поставщиками идентификационных услуг, такими как Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, а также Azure, AWS или Google Cloud Platform.

Удобство использования Zabbix 5.0

1. Пользовательский интерфейс, оптимизированный для широких экранов. Мы переместили меню из верхней части, где всегда не хватает места, в левую часть экрана. Меню по-прежнему отображается в полном, минимальном и скрытом режиме.

Что нового в Zabbix 5.0
Интерфейс, оптимизированный для широкого экрана

2. Копирование виджетов с панелей позволяет очень быстро создавать новые ПАНЕЛИ. Для этого в ПАНЕЛИ необходимо выбрать нужный виджет, нажать Copy

Что нового в Zabbix 5.0
Копирование виджета

и вставить виджет в нужную панель.

Что нового в Zabbix 5.0
Вставка скопированного виджета

3. Экспорт графиков. Чтобы скопировать график и отправить, например, по электронной почтe, можно получить график в формате PNG, выбрав нужный виджет и нажав Download image.

Что нового в Zabbix 5.0
Экспорт графиков

4. Фильтрация по тегам: Problem by severity и Problem hosts. Появилась возможность, например, собрать в одном дата-центре данные по всем проблемам, связанным с одним узлом сети.

Что нового в Zabbix 5.0
Фильтрация по тегам

5. Поддержка модулей для расширения интерфейса Zabbix. Для установки независимого модуля нужно скопировать его в определенную директорию. Модули позволяют расширять существующую функциональность интерфейса, создавать новые страницы, менять структуру меню, например, добавлять пункты.

Написать и интегрировать модуль может любой пользователь. Для этого модуль копируется в папку modules, после чего становится видим для интерфейса, где его можно включить и выключить.

Что нового в Zabbix 5.0
Добавление нового модуля

6. Простота навигации по ресурсам, связанным с узлами сети. В Monitoring > Hosts отображается список устройств, которые мониторит Zabbix: узлы сети, сервисы, сетевые устройства и т. д. Кроме того, доступна быстрая навигация к экранам, графикам и проблемам конкретных устройств.

Мы убрали вкладки Monitoring > Graphs и Monitoring > Webs, и вся навигация осуществляется через Monitoring > Hosts. Отображаемую информацию можно фильтровать, в том числе, по тегам, что позволяет отображать отключенные устройства

Что нового в Zabbix 5.0
Навигация по ресурсам, связанным с узлами сети

Например, можно выбрать устройства, которые относятся к сервисам конечных пользователей, выбрав ‘Service’, а также задав уровень важности этих проблем.

Что нового в Zabbix 5.0
Возможности фильтрации

7. Новая операция предварительной обработки — ‘Замена‘ позволяет делать несколько полезных вещей, которые раньше можно было делать только с помощью регулярных выражений, достаточно сложных для многих пользователей.
Replace позволяет фактически заменить одну строку или символ на другие, что позволяет просто конвертировать данные, полученные в текстовом формате, в числовое представление.

Что нового в Zabbix 5.0
Оператор Replace

8. Оператор JSONPath, который позволяет извлекать имена атрибутов в удобной форме

Что нового в Zabbix 5.0
Оператор для JSONPath

9. Отображение сообщений электронной почты Zabbix. В предыдущих версиях все сообщения электронной почты от Zabbix в папке Входящие отображались списком. Начиная с Zabbix 5.0 сообщения будут группироваться по проблемам.

Что нового в Zabbix 5.0
Группировка сообщений электронной почты от Zabbix

10. Поддержка пользовательских макросов для IPMI для имени пользователя и пароля. Если для имени пользователя и пароля используются секретные макросы, доступ к их значению будет закрыт.

Что нового в Zabbix 5.0
Поддержка пользовательских макросов

11. Массовое изменение пользовательских макросов для узлов сети. В новой версии можно открыть список шаблонов, выбрать список узлов сети и добавлять макросы или менять значения существующих макросов,

Что нового в Zabbix 5.0
Добавление и изменение пользовательских макросов

а также удалять какие-то определенные или все макросы из выбранных шаблонов для узлов сети.

Что нового в Zabbix 5.0
Удаление отдельных или всех пользовательских макросов

12. Контроль формата сообщений на уровне способа оповещения. В Media types появилась вкладка Media templates с шаблонами сообщений.

Что нового в Zabbix 5.0
Шаблоны способов оповещений

Для разных типов сообщений можно определить различные шаблоны.

Что нового в Zabbix 5.0
Определение шаблона для типа сообщений

В предыдущих версиях нужно было управлять этими сообщениями на уровне действий, определять сообщения и предмет по умолчанию.

Что нового в Zabbix 5.0
Управление шаблонами на уровне действий

В новой версии все можно определить на глобальном уровне, а на уровне сообщений — переписать глобальные настройки.

Что нового в Zabbix 5.0
Управление шаблонами на глобальном уровне

Для большинства пользователей достаточно определять форматы шаблонов на уровне способа оповещения. Более того, после импорта какого-то нового способа оповещения все соответствующие форматы шаблонов уже являются его частью.

13. Более широкое применение JavaScript. JavaScript используется для скриптов предобработки, для Webhook и т.д. В командной строке, работать с JavaScript непросто.
В Zabbix 5.0 используется новая утилита — zabbix_js, запускающая JavaScript, который принимает данные, обрабатывает их и генерирует выходные значения.

Что нового в Zabbix 5.0
Утилита zabbix_js

Что нового в Zabbix 5.0
Примеры использования утилиты 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[]

    Что нового в Zabbix 5.0
    Проверки JMX

  • В новой версии появился ключ для мониторинга счетчиков производительности Windows, который поддерживается старым и новым агентами на русском и английском языках и позволяет, например, обнаруживать количество процессоров, файловых систем, сервисов и т. д.

    Что нового в Zabbix 5.0
    Мониторинг счетчиков производительности Windows с помощью ключа perf_counter

  • ODBC-мониторинг стал намного проще. Ранее все параметры для ODBC-мониторинга приходилось описывать во внешнем файле /etc/odbc.ini, к которому не было доступа со стороны интерфейса Zabbix. В новой версии практически все параметры могут быть частью ключа метрики.

    Что нового в Zabbix 5.0
    Ключ метрики с описанием параметров

    В новой версии можно задать имя сервера и порт на уровне метрики, а имя и пароль для доступа — с использованием секретных макросов для безопасности.

    Что нового в Zabbix 5.0
    Использование секретных макросов

  • При использовании протокола IPMI для мониторинга оборудования появилась возможность создавать более простые шаблоны для автоматизации с помощью ipmi.get.

    Что нового в Zabbix 5.0
    ipmi.get

16. Тестирование элементов данных из интерфейса. В Zabbix 5.0 появилась возможность тестирования некоторых элементов данных и, что еще более важно, шаблонов элементов данных из интерфейса.

Что нового в Zabbix 5.0
Тестирование элементов данных

Любые возникающие проблемы отображаются в интерфейсе.

Что нового в Zabbix 5.0
Отображение проблем в интерфейсе

Аналогичный алгоритм используется для шаблонов элементов данных. Кроме того, если какой-либо элемент данных не поддерживается, чтобы узнать причину сбоя, нужно просто нажать Test.

17. Тестирование способов оповещения, которое появилось в Zabbix 4.4, сохраняется, что важно при интеграции Zabbix с другими системами, например, системами тикетов.

Что нового в Zabbix 5.0
Тестирование способов оповещения

18. Поддержка пользовательских макросов для прототипов элементов данных. Для определения значений пользовательских макросов можно использовать LLD-макросы.

Что нового в Zabbix 5.0
Использование 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 дней. Это значительно сокращает требуемое место на диске (почти в десять раз, по данным пользователей), что улучшает экономию дискового пространства и повышает производительность.

Что нового в Zabbix 5.0
Компрессия с помощью TimescaleDB

22. Настройка SNMP на уровне интерфейса. В Zabbix 5.0 вместо трех типов элементов данных используется только один — SNMP agent. Все атрибуты SNMP перенесены на уровень интерфейса узлов сети, что позволяет упростить шаблоны, переключение между версиями SNMP и т. д.

Что нового в Zabbix 5.0
Настройка SNMP на уровне интерфейса

23. Зависимость мониторинга доступности узлов сети от доступности прокси позволяет отображать проблему доступности прокси как первоочередную в случае недоступности узлов сети при мониторинге с использованием триггера с функцией nodata:

{HostA:item.nodata(1m)}=1

Что нового в Zabbix 5.0
Доступность узлов сети определяется доступностью прокси

Функция nodata по умолчанию принимает во внимание доступность прокси. Для более строгой проверки, не принимающей во внимание доступность прокси, используется второй параметр — strict:

{HostA:item.nodata(1m,strict)}=1

24. Управление правилами низкоуровневого обнаружения. В Zabbix 5.0 появился LLD-фильтр, который позволяет просматривать в том числе неподдерживаемые правила обнаружения

Что нового в Zabbix 5.0
LLD-фильтр

25. Возможность снять подтверждение проблемы (unacknowledge) позволяет исправлять ошибки и полезна при создании рабочих процессов, зависящих от подтверждения проблемы.

Что нового в Zabbix 5.0
Снятие подтверждения проблемы

26. Изменение правил низкоуровневого обнаружения —возможность добавления исключений при обнаружении объектов в результате мониторинга файловых систем, которая позволяет при низкоуровнем обнаружении создавать или не создавать определенные объекты, триггеры, элементы данных и т.д., менять важность проблем, добавлять теги для определенных объектов, исключать объекты, например, временные файловые системы, из поиска, менять интервал обновления данных и т.д.

Что нового в Zabbix 5.0
Исключение из низкоуровневого обнаружения временных файловых систем

Например, можно изменить уровень приоритетности триггеров для обнаруженных файловых систем Oracle, оставив уровень приоритетности триггеров других файловых систем на прежнем уровне.

Что нового в Zabbix 5.0
Изменение уровеня приоритетности триггеров для отдельны файловых систем

27. Новые макросы в Zabbix 5.0 позволяют повысить качество мониторинга.

Что нового в Zabbix 5.0
Новые макросы в Zabbix 5.0

28. Другие нововведения в Zabbix 5.0:

Что нового в Zabbix 5.0
Улучшения в Zabbix 5.0

29. Прекращение поддержки
Что нового в Zabbix 5.0
Неподдерживаемая функциональность

Заключение

Обновиться до Zabbix 5.0 очень просто! Устанавливайте и запускайте новые бинарные файлы для сервера и frontend-файлы, и сервер автоматически обновит вашу базу данных.
Информация о процедуре обновления Zabbix размещена по адресу:
https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500

ВАЖНО!

  1. Обновление исторических данных до формата Float64 необязательно.
  2. Данные TimescaleDB доступны только для чтения.
  3. Минимальная требуемая версия PHP7.2.
  4. DB2 не поддерживается как backend для Zabbix сервера

(!) Видео и слайды презентаций Алексея Владышева и других спикеров Zabbix Meetup Online (Russian) можно посмотреть здесь.

Источник: habr.com