Table of Contents

5 Что нового в Zabbix 4.4.0

Zabbix агент 2

Разработан Zabbix агент нового поколения под названием Zabbix агент 2. Некоторые цели, поставленные при разработке нового агента 2:

  • уменьшение количества TCP соединений
  • улучшение многопоточности проверок
  • легкое расширение при помощи плагинов
  • простая замена Zabbix агента (поскольку он поддерживает все предыдущие функциональности)

Agent 2 написан на Go (с некоторым переиспользованием C кода из Zabbix агента). Для сборки Zabbix агент 2 требуется подготовленная среда Go версии 1.12+.

Zabbix агент 2 доступен в уже подготовленных, скомпилированных пакетах Zabbix. Для компиляции Zabbix агента 2 из исходных кодов вам необходимо указать --enable-agent2 опцию конфигурирования.

В настоящее время агент 2 поддерживается только на Linux платформе; поддержка Windows агента ожидается в скором времени. Сейчас агент 2 имеет экспериментальный статус, и в следующей мажорной версии ожидается состояние готовности к продуктивным средам.

Смотрите также: Zabbix агент 2

Webhook в оповещениях

В новой версии вы можете писать свой собственный JavaScript код для расширения возможностей Zabbix в плане оповещений. Если в предыдущих версиях это можно было сделать только при помощи каки-либо внешних скриптов, сейчас всю логику оповещений можно хранить внутри Zabbix, более конкретно с использованием нового способа оповещения Webhook.

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

Официальная поддержка TimescaleDB

Поддержка TimescaleDB, ранее добавленная на экспериментальной основе в Zabbix 4.2, теперь официальная. Смотрите также: Миграция на TimescaleDB

Функции агрегации в графиках

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

Таким образом вы можете выбрать желаемый период (5 минут, час, день) и затем отобразить агрегированное значение по этому периоду, вместо всех значений. Опции агрегации указаны ниже:

  • мин
  • макс
  • сред
  • кол-во
  • сумма
  • перв. (отображение первого значения)
  • посл. (отображение последнего значения)

Наиболее захватывающее использование агрегации данных - возможность создавать красивые параллельные сравнения данных за какой-либо период:

Агрегацию можно настроить в настройках набора данных при добавлении виджета графика.

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

Смотрите также: Агрегация в графиках

Повышение ограничения количества зависимых элементов данных

Увеличено максимальное количество разрешенных зависимых элементов данных у одного основного элемента данных с 999 до 29999.

Аутентификация Kerberos

Аутентификация Kerberos теперь поддерживается в:

Живые / оперативные данные проблем

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

Отображение оперативных данных можно настроить в фильтре МониторингПроблемы или в настройках соответствующего виджета панели, выбрав одну из трех опций:

  • Нет - оперативные данные не будут отображаться
  • Раздельно - оперативные данные будут отображаться в отдельной колонке (в этом случае оперативные данные заменяют колонку Последние значения из предыдущей версии)

  • С именем проблемы - оперативные данные добавляются к имени проблемы и отображаются в круглых скобках

Содержимое оперативных данных можно настроить по каждому отдельному триггеру, в поле Оперативные данные. Это поле принимает произвольную строку с макросами и, что наиболее важно, с {ITEM.LASTVALUE<1-9>} макросом.

Оперативные данные также включаются в оповещении при использовании нового {EVENT.OPDATA} макроса.

Монитор баз данных может получать несколько строк / колонок

Добавлен новый монитор баз данных элемент данных:

db.odbc.get[уникальное_описание,имя_источника_данных]

В сравнении с db.odbc.select[] элементов данных, который был уже ранее доступен в предыдущих версиях, этот новый элемент данных может возвращать значения с нескольких строк и колонок, с форматированием в виде JSON.

Таким образом его можно использовать основным элементом данных, который будет собирать все требуемые метрики за один системный вызов. Можно использовать JSONPath предобработку в зависимых элементах данных, чтобы извлечь отдельные значения из этого основного элемента данных.

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

В сравнении с db.odbc.discovery[] элементом данных с предыдущих версий этот элемент данных не определяет макросы низкоуровневого обнаружения в возвращаемом JSON, однако, пользователь может задать эти макросы по мере необходимости, используя функционал пользовательского LLD макроса с JSONPath, чтобы обратиться к требуемым значениям в полученном JSON.

Низкоуровневое обнаружение

Низкоуровневое обнаружение блочных устройств

Поддерживается низкоуровневое обнаружение блочных устройств и их типов с использованием нового встроенного ключа обнаружения:

 vfs.dev.discovery

Обнаружение вернет JSON со значениями двух макросов - {#DEVNAME} и {#DEVTYPE}, которые определяют имя блочного устройства и его тип соответственно.

Эти макросы можно использовать для создания прототипов элементов данных, используя элементы данных агента vfs.dev.read[] и vfs.dev.write[], например, vfs.dev.read[{#DEVNAME},sps]. Смотрите также: Обнаружение блочных устройств.

Низкоуровневое обнаружение systemd сервисов

Поддерживается низкоуровневое обнаружение systemd модулей (сервисов, по умолчанию) с использованием нового встроенного ключа обнаружения:

 systemd.unit.discovery

Этот ключ элемента данных поддерживается только в Zabbix агент 2.

Правило обнаружения вернет JSON со значениями нескольких макросов, которые определяют различные свойства systemd модулей. Эти макросы можно использовать для создания прототипов элементов данных, используя новый ключ элемента данных systemd.unit.info[], например, systemd.unit.info["{#UNIT.NAME}",LoadState].

Смотрите также:

Обнаружение JMX MBean с не-ASCII символами

Теперь имеется новый элемент данных для обнаружения JMX MBean, который не генерирует макросы низкоуровневого обнаружения и, таким образом, может вернуть значения без ограничений, связанных с формированием имен LLD макросов (например, дефисов, квадратных скобок и не-ASCII символов):

jmx.get[<режим_обнаружения>,<имя_объекта>]

Элемент данных jmx.discovery[] с предыдущих версий, если встречал свойства JMX MBean, которые не мог преобразовать в имена макросов (по причине наличия символов не поддерживаемых в формировании имен LLD макросов), этот элемент данных игнорировал такие свойства.

Новый элемент данных jmx.get[] не генерирует имена LLD макросов в возвращаемом JSON. Вместо этого, имена LLD макросов можно задать на вкладке пользовательских макросов низкоуровневого обнаружения, используя JSONPath для обращения к требуемым значениям.

Смотрите также: Обнаружение JMX объектов

Обнаружение WMI

Добавлен новый Windows агент элемент данных:

wmi.getall[<пространство_имён>,<запрос>]

С сравнении с wmi.get[] элементом данных, который был уже доступен в предыдущих версиях, этот элемент данных может вернуть весь ответ запроса, отформатированный в виде JSON. Можно использовать JSONPath предобработку для обращения к отдельным значениям из полученного JSON.

Этот элемент данных можно использовать для низкоуровневого обнаружения с использованием WMI запросов.

Хотя этот элемент данных не задает макросы низкоуровневого обнаружения в возвращаемом JSON, эти макросы может задать пользователь по мере необходимости, используя функционал пользовательских LLD макросов с JSONPath, чтобы обратиться к требуемым значениям в полученном JSON.

Безопасная авторегистрация

Ранее все взаимодействие в процессе авторегистрации агентов выполнялось в нешифрованном виде. В новой версии безопасный способ авторегистрации возможен при настройке аутентификации на основе PSK с зашифрованными соединениями.

Уровень шифрования настраивается глобально в АдминистрированиеОбщие, в разделе Авторегистрация через всплывающее меню справа. Имеется возможность выбрать без шифрования, TLS шифрование с PSK аутентификацией или оба варианта (таким образом некоторые хосты смогут зарегестрироваться без использования шифрования, в то время как другие с шифрованием):

Аутентификация при помощи PSK проверяется Zabbix сервером перед добавлением узла сети. В случае успешной проверки узел сети добавляется и Соединения с/к узлу сети выставляется значением 'PSK' только при одинаковых значениях строки идентификатора/pre-shared ключа и глобальной настройки авторегистрации.

Авторегистрация с DNS именем

Теперь имеется возможность указать что узел сети необходимо зарегистрировать автоматически с использованием DNS имени в качестве интерфейса агента по умолчанию. Чтобы это сделать, DNS имя должно быть указано/отправлено значением из параметров конфигурации либо 'HostInterface', либо 'HostInterfaceItem'. Обратите внимание, если значение одного из параметров меняется, интерфейс зарегистрированного автоматически узла сети будет обновлен. Таким образом имеется возможность обновления интерфейса по умолчанию на другие DNS имя или IP адрес. Чтобы изменения вступили в силу, агента необходимо перезапустить. Параметры конфигурации 'HostInterface' и 'HostInterfaceItem' поддерживаются в конфигурации агента начиная с Zabbix 4.4.

Разрешены более длинные имена узлов сети в обнаружении

Максимально допустимая длина имени узла сети увеличена с 64 до 128 символов в обнаружении узлов сети и в авторегистрации агентов.

Расширенные опции предобработки значений элементов данных

Конвертация CSV в JSON

Теперь имеется возможность конвертации данных CSV файла в JSON формат.

Смотрите также: Предобработка CSV в JSON

Пользовательская обработка ошибок

Пользовательская обработка ошибок теперь также доступна для следующих шагов предобработки:

 * Проверка на ошибку в JSON
        * Проверка на ошибку в XML
        * Проверка на ошибку с использованием регулярного выражения

Опция Другое при ошибке доступна для этих шагов предобработки в обычных элементах данных и в прототипах элементов данных. В правилах низкоуровневого обнаружения опция Другое при ошибке доступна для 'Проверка на ошибку в JSON' и 'Проверка на ошибку в XML' шагов предобработки.

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

Дополнительные опции предобработки LLD правил

В правила низкоуровневого обнаружения добавлены дополнительные опции предобработки:

  • XML Xpath
  • CSV в JSON (новое в 4.4)
  • Проверка на ошибку в XML

Имена узлов сети включены в экспорт реального времени

Имена узлов сети теперь включены в экспорт реального времени событий, значений элементов данных и динамики изменений (ранее экспортировалось только видимое имя узла сети). Обратите внимание, что изменился протокол экспорта, теперь информация с именем узла сети является объектом, а не строкой / массивом.

Типы значений включены в экспорт реального времени

Типы значений теперь включены в экспорт реального времени значений элементов данных и динамики изменений. Смотрите протокол экспорта для получения более подробных сведений.

Новые шаблоны

Доступны новые официальные шаблоны для мониторинга:

Linux

Новые шаблоны мониторинга Linux представлены в трёх вариантах:

  • Template OS Linux by Zabbix agent, Template OS Linux by Zabbix agent active - мониторинг Linux через Zabbix агента (модульный)
    • зависит от Template Module Zabbix agent, необходимо импортировать / обновить первым
  • Template OS Linux by Prom - мониторинг Linux monitored через экспортер ноды (монолитный)
  • Template OS Linux SNMPv2 - мониторинг Linux через SNMPv2 (модульный)
    • зависит от Template Module Generic SNMPv2, необходимо импортировать / обновить первым
    • зависит от Template Module Interfaces SNMPv2, необходимо импортировать / обновить первым

Windows

  • Template OS Windows by Zabbix agent, Template OS Windows by Zabbix agent active - мониторинг Windows через Zabbix агента. Эти шаблоны поддерживаются Windows Server 2008/Vista и более новыми версиями.

Cisco UCS server

  • Template Server Cisco UCS SNMPv2 - шаблон мониторинга Cisco UCS сервера

Nginx

  • Template App Nginx by Zabbix agent - сбор метрик локально с помощью ngx_stub_status_module через Zabbix агента (смотрите описание);
  • Template App Nginx by HTTP - сбор метрик удаленно при помощи опроса ngx_stub_status_module с использованием HTTP агента (смотрите описание).

Apache

  • Template App Apache by Zabbix agent - сбор метрик локально с помощью mod_status через Zabbix агента (смотрите описание);
  • Template App Apache by HTTP - сбор метрик удаленно при помощи опроса mod_status с использованием HTTP агента (смотрите описание).

RabbitMQ

  • Template App RabbitMQ cluster by Zabbix agent и Template App RabbitMQ node by Zabbix agent - сбор метрик локально с помощью плагина управления RabbitMQ через Zabbix агента;
  • Template App RabbitMQ cluster by HTTP и Template App RabbitMQ node by HTTP - сбор метрик удаленно при помощи опроса плагина управления RabbitMQ с использованием HTTP агента.

MySQL/MariaDB

PostgreSQL

Вы можете получить эти шаблоны:

  • В НастройкаШаблоны в новых инсталляциях;
  • Если вы обновляетесь с предыдущих версий, вы можете загрузить эти шаблоны с Git репозитория Zabbix или найти эти шаблоны в папке templates в последней загруженной версии Zabbix. Затем, находясь в НастройкаШаблоны вы можете импортировать их вручную в Zabbix. Если шаблоны с таким же именем уже существуют, при импорте необходимо выбрать Удалить отсутствующие, чтобы добиться чистого импорта. Таким образом старые элементы данных, которые отсутствуют в обновленном шаблоне будут удалены (обратите внимание, это также значит потерю истории по этим старым элементам данных).

Внутренняя база знаний

Описания к элементам данных и триггерам позволяют делиться знаниями в Zabbix между различными пользователями. Такие описания могут объяснять что конкретно делает элемент данных или понять природу происхождения проблемы. Теперь эту информацию легче заметить и прочитать на страницах последних данных и проблем.

Описание элементов данных в последних данных

Описания к элементам данных можно найти в разделе Последние данные.

Иконка со знаком вопроса отображается сразу после имени элемента данных по всем элементам данных у которых имеется описание. Если вы поместите курсор мыши на эту иконку, описание элемента данных отобразится в виде подсказки.

Описания к триггерам для проблем

Иконка со знаком вопроса отображается сразу после имени проблемы по всем проблемам у которых имеется описание. Если вы поместите курсор мыши на эту иконку, отобразится описание связанного триггера в виде подсказки.

Описания к проблемам также доступны в деталях событий.

Удалены способы повещения Jabber, Ez Texting

Удалены способы оповещения Jabber и Ez Texting для доставки оповещений.

Если эти способы оповещения присутствуют в вашей инсталляции, в процессе обновления у них будет заменён тип способа оповещения, все соответсвующие параметры останутся нетронутыми. Однако, оповещения через Jabber и Ez Texting более не будут работать.

Экспорт / импорт

Экспорт способов оповещений

Для более простого совместного использования способов оповещения, включая новые webhook, способы оповещения теперь можно экспортировать и импортировать.

Файлы экспорта поддерживают новый удобный для восприятия формат (см. ниже), который реализован для экспорта узлов сети / шаблонов.

Удобочитаемые файлы экспорта узлов сети / шаблонов

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

В новой версии файлы экспорта получаются намного меньше и проще:

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

|<| |<| |-| |<|

Смотрите также:

Включение триггеров в теги узла сети

Ранее все триггеры в экспорте узлов сети / шаблонов перечислялись после информации о узле сети. Теперь, чтобы добиться лучшей выразительности, триггеры в основе которых лежит только один элемент данных узла сети в выражениях проблемы и восстановления перечисляются вместе со своими тегами в соответствующем элементе данных узла сети.

Кроме того, тег выражения таких триггеров не ссылается на узел сети или элемент данных, а только на функцию ({last()}<>0 в этом примере):

    <hosts>
               <host>
                   <host>Host</host>
                   ...
                   <items>
                       <item>
                           <name>Item</name>
                           <key>item.key</key>
                           ...
                           <triggers>
                               <trigger>
                                   <expression>{last()}<>0</expression>
                                   <name>Item value not 0</name>
                               </trigger>
                           </triggers>
                       </item>
                   </items>
               </host>
           </hosts>

Такое же изменение коснулось простых прототипов триггеров, теперь они помещаются в <item_prototype><trigger_prototypes>.

Однако, триггеры, более сложные, а также содержащие несколько элементов данных, перечисляются в отдельных тегах <triggers>, как и ранее.

Веб-интерфейс

Панель по умолчанию

Улучшена панель по умолчанию, которая поставляется с новыми инсталляциями (Global view):

  • Добавлено агрегированный вид проблем вместе с обновленным Проблемы по важности виджетом
  • Добавлен новый Доступность узлов сети виджет
  • У нескольких виджетов теперь скрыты заголовки, включая виджет Часы

Столбчатые графики

Значения графика в этом виджете графика теперь могут отображаться в виде столбцов.

Для отображения значений в виде столбцов при настройке набора данных графика выберите Столбцы в опциях отрисовки:

Поле мультивыбора для выбора элементов данных графика

Ранее выбор нескольких элементов данных в новом виджете графика (добавлен в Zabbix 4.0) работал с разделением элементов данных при помощи запятой. Что создавалось ограничение в выборе элементов данных, в которых уже имелась запятая, разрешенный символ, в имени.

Чтобы убрать это ограничение, в этой новой версии, выбор как узлов сети, так и элементов данных реализован с помощью полей мультивыбора, где запятая в виде разделителя более не требуется. Функциональность добавления имён узлов сети / элементов данных с метасимволом также осталась. Чтобы указать имя с метасимволов, просто введите строку вручную и нажмите Enter. Пока вы печатаете, обратите внимание как все совпадающие объекты отображаются в выпадающем списке.

Сетка в 24 колонки на панели

Ограничение допустимого количества виджетов панели по горизонтали увеличено с 12 до 24 колонок.

Быстрое изменение виджетов панели

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

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

Скрытие заголовков виджетов

Чтобы использовать место на панели более эффективно, добавлена возможность скрытия заголовков виджетов, позволяющая отображать большее количество содержимого в виджетах. Эту настройку можно задавать отдельно по каждому виджету в их настройках (опция Отображать заголовки). Если заголовки скрываются, они всё же будут появляться у виджетов при фокусировке на виджете мышью или клавиатурой.

Удобство использования панелью

  • Улучшен опыт редактирования виджетов. Сделано несколько исправлений, связанных с лучшей фокусировкой на виджете в режиме редактирования, с более удобным изменением размеров виджетов и изменением расположения виджетов.
  • Теперь последний использованный тип виджета запоминается - при добавлении нового виджета на панели его тип выбирается на основе виджета, который был ранее выбран.

Расширение возможностей виджета проблем по важности

Виджет Проблемы по важности расширен, добавилась опция отображения общего количества проблем по нескольким группам узлов сети и узлам сети:

Общее количество можно отобразить в блоках по горизонтали или по вертикали:

Новый виджет доступности узлов сети

Добавлен новый виджет доступности узлов сети к доступным виджетам панели. Этот виджет аналогичен Информация о узле сети элементу комплексного экрана и отображает высокоуровневую статистику доступности узлов сети на основе выбранных групп узлов сети.

Статистику доступности можно отобразить в блоках по горизонтали или по вертикали:

В этом виджете также возможно отображать раздельно статистику доступности узлов сети по любому количеству типов интерфейсов узлов сети (Zabbix агент, SNMP, JMX, IPMI).

Новый виджет прототипов графиков

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

Моноширинные шрифты в полях выражения триггера / команды

Для более лучшей читаемости изменились шрифты области такста на моноширинные в следующих местах:

  • Поля выражения триггера и выражения восстановления
  • Поле выполняемого скрипта SSH/Telnet агент элементов данных
  • Поле формулы вычисляемых элементов данных
  • Поле SQL запроса монитора баз данных элементов данных
  • Поле команды глобальных скриптов
  • Поле удаленной команды в настройках действия

Более длинные поля ввода

Поля ввода, которые потенциально могут содержать длинные имена или значения, увеличены до 300 пикселов и также увеличиваются динамически при вводе данных, добавляя новую строку:

Это изменение реализовано в:

  • Диалоги настройки узлов сети и шаблонов (теги и макросы)
  • Диалоги настройки триггеров и прототипов триггеров (теги)
  • Диалоги массового обновления узлов сети, шаблонов и триггеров (теги)
  • Диалог настройки низкоуровневого правила обнаружения (LLD макросы)
  • АдминистрированиеОбщиеМакросы
  • Диалоги настройки элементов данных, прототипов элементов данных и LLD правил (тестирование предобработки элемента данных)

Отдельные колонки прокси

В веб-интерфейсе информация о прокси вынесена в отдельную колонку в нескольких местах:

  • в списке узлов сети в НастройкаУзлы сети
  • в списке правил обнаружения в НастройкаОбнаружение
  • АдминистрированиеОчередь (с выбранной опцией Детали во всплывающем меню)

Таким образом, например, если ранее имена узлов сети хостов, которые наблюдаются через прокси, имели префикс с именем прокси, то теперь имя прокси указывается в отдельной колонке.

Макросы

  • {EVENT.ID} теперь поддерживается в URL'ах к триггерам, что позволяет конструировать полные URL'ы к деталям проблем.
  • Теперь имеется возможность добавления комментариев к пользовательским макросам:

Производительность

Разделение таблицы с элементами данных

Таблица items ранее использовалась как веб-интерфейсом, так и сервером, в результате происходили нежелательные блокировки строк во время когда, например, сервер мог обновлять поля связанные с 'журнал (лог)' элементами данных. Чтобы решить такую ситуацию, поля реального времени (lastlogsize, state, mtime, error) вынесены в отдельную таблицу с названием item_rtdata.