Разработан Zabbix агент нового поколения под названием Zabbix агент 2. Некоторые цели, поставленные при разработке нового агента 2:
Agent 2 написан на Go (с некоторым переиспользованием C кода из Zabbix агента). Для сборки Zabbix агент 2 требуется подготовленная среда Go версии 1.12+.
Zabbix агент 2 доступен в уже подготовленных, скомпилированных пакетах Zabbix. Для компиляции Zabbix агента 2 из исходных кодов вам необходимо указать --enable-agent2
опцию конфигурирования.
В настоящее время агент 2 поддерживается только на Linux платформе; поддержка Windows агента ожидается в скором времени. Сейчас агент 2 имеет экспериментальный статус, и в следующей мажорной версии ожидается состояние готовности к продуктивным средам.
Смотрите также: Zabbix агент 2
В новой версии вы можете писать свой собственный JavaScript код для расширения возможностей Zabbix в плане оповещений. Если в предыдущих версиях это можно было сделать только при помощи каки-либо внешних скриптов, сейчас всю логику оповещений можно хранить внутри Zabbix, более конкретно с использованием нового способа оповещения Webhook.
Webhook можно использовать для простой интеграции оповещений Zabbix со сторонними системами помощи, чатами, мессенджерами и т.п. Кроме того, имеется возможность вернуть некоторые данные касательно созданных задач, чтобы эти данные затем отображались в Zabbix.
Поддержка TimescaleDB, ранее добавленная на экспериментальной основе в Zabbix 4.2, теперь официальная. Смотрите также: Миграция на TimescaleDB
Наряду с отображением данных на графиках в виде столбцов, новая версия также привнесла возможность создания агрегаций данных на графике.
Таким образом вы можете выбрать желаемый период (5 минут, час, день) и затем отобразить агрегированное значение по этому периоду, вместо всех значений. Опции агрегации указаны ниже:
Наиболее захватывающее использование агрегации данных - возможность создавать красивые параллельные сравнения данных за какой-либо период:
Агрегацию можно настроить в настройках набора данных при добавлении виджета графика.
Вы можете выбрать функцию агрегации и интервал времени. Так как набор данных может содержать несколько элементов данных, имеется еще одна опция, которая позволяет отображать агрегированные данные по каждому элементу данных отдельно или по всем элементам данных набора данных в виде одного агрегированного значения:
Смотрите также: Агрегация в графиках
Увеличено максимальное количество разрешенных зависимых элементов данных у одного основного элемента данных с 999 до 29999.
Аутентификация Kerberos теперь поддерживается в:
Теперь имеется возможность настройки способов отображения оперативных данных по текущим проблемам, то есть самых последних значений элементов данных, а не значений элементов данных во время возникновения проблемы.
Отображение оперативных данных можно настроить в фильтре Мониторинг → Проблемы или в настройках соответствующего виджета панели, выбрав одну из трех опций:
Содержимое оперативных данных можно настроить по каждому отдельному триггеру, в поле Оперативные данные. Это поле принимает произвольную строку с макросами и, что наиболее важно, с {ITEM.LASTVALUE<1-9>}
макросом.
Оперативные данные также включаются в оповещении при использовании нового {EVENT.OPDATA} макроса.
Добавлен новый монитор баз данных элемент данных:
В сравнении с db.odbc.select[]
элементов данных, который был уже ранее доступен в предыдущих версиях, этот новый элемент данных может возвращать значения с нескольких строк и колонок, с форматированием в виде JSON.
Таким образом его можно использовать основным элементом данных, который будет собирать все требуемые метрики за один системный вызов. Можно использовать JSONPath предобработку в зависимых элементах данных, чтобы извлечь отдельные значения из этого основного элемента данных.
Новый элемент данных также можно использовать для низкоуровневого обнаружения, с использованием ODBC SQL запросов.
В сравнении с db.odbc.discovery[]
элементом данных с предыдущих версий этот элемент данных не определяет макросы низкоуровневого обнаружения в возвращаемом JSON, однако, пользователь может задать эти макросы по мере необходимости, используя функционал пользовательского LLD макроса с JSONPath, чтобы обратиться к требуемым значениям в полученном JSON.
Поддерживается низкоуровневое обнаружение блочных устройств и их типов с использованием нового встроенного ключа обнаружения:
Обнаружение вернет JSON со значениями двух макросов - {#DEVNAME} и {#DEVTYPE}, которые определяют имя блочного устройства и его тип соответственно.
Эти макросы можно использовать для создания прототипов элементов данных, используя элементы данных агента vfs.dev.read[]
и vfs.dev.write[]
, например, vfs.dev.read[{#DEVNAME},sps]
. Смотрите также: Обнаружение блочных устройств.
Поддерживается низкоуровневое обнаружение systemd модулей (сервисов, по умолчанию) с использованием нового встроенного ключа обнаружения:
Этот ключ элемента данных поддерживается только в Zabbix агент 2.
Правило обнаружения вернет JSON со значениями нескольких макросов, которые определяют различные свойства systemd модулей. Эти макросы можно использовать для создания прототипов элементов данных, используя новый ключ элемента данных systemd.unit.info[]
, например, systemd.unit.info["{#UNIT.NAME}",LoadState]
.
Смотрите также:
Теперь имеется новый элемент данных для обнаружения JMX MBean, который не генерирует макросы низкоуровневого обнаружения и, таким образом, может вернуть значения без ограничений, связанных с формированием имен LLD макросов (например, дефисов, квадратных скобок и не-ASCII символов):
Элемент данных jmx.discovery[]
с предыдущих версий, если встречал свойства JMX MBean, которые не мог преобразовать в имена макросов (по причине наличия символов не поддерживаемых в формировании имен LLD макросов), этот элемент данных игнорировал такие свойства.
Новый элемент данных jmx.get[]
не генерирует имена LLD макросов в возвращаемом JSON. Вместо этого, имена LLD макросов можно задать на вкладке пользовательских макросов низкоуровневого обнаружения, используя JSONPath для обращения к требуемым значениям.
Смотрите также: Обнаружение JMX объектов
Добавлен новый Windows агент элемент данных:
С сравнении с wmi.get[]
элементом данных, который был уже доступен в предыдущих версиях, этот элемент данных может вернуть весь ответ запроса, отформатированный в виде JSON. Можно использовать JSONPath предобработку для обращения к отдельным значениям из полученного JSON.
Этот элемент данных можно использовать для низкоуровневого обнаружения с использованием WMI запросов.
Хотя этот элемент данных не задает макросы низкоуровневого обнаружения в возвращаемом JSON, эти макросы может задать пользователь по мере необходимости, используя функционал пользовательских LLD макросов с JSONPath, чтобы обратиться к требуемым значениям в полученном JSON.
Ранее все взаимодействие в процессе авторегистрации агентов выполнялось в нешифрованном виде. В новой версии безопасный способ авторегистрации возможен при настройке аутентификации на основе PSK с зашифрованными соединениями.
Уровень шифрования настраивается глобально в Администрирование → Общие, в разделе Авторегистрация через всплывающее меню справа. Имеется возможность выбрать без шифрования, TLS шифрование с PSK аутентификацией или оба варианта (таким образом некоторые хосты смогут зарегестрироваться без использования шифрования, в то время как другие с шифрованием):
Аутентификация при помощи PSK проверяется Zabbix сервером перед добавлением узла сети. В случае успешной проверки узел сети добавляется и Соединения с/к узлу сети выставляется значением 'PSK' только при одинаковых значениях строки идентификатора/pre-shared ключа и глобальной настройки авторегистрации.
Теперь имеется возможность указать что узел сети необходимо зарегистрировать автоматически с использованием DNS имени в качестве интерфейса агента по умолчанию. Чтобы это сделать, DNS имя должно быть указано/отправлено значением из параметров конфигурации либо 'HostInterface', либо 'HostInterfaceItem'. Обратите внимание, если значение одного из параметров меняется, интерфейс зарегистрированного автоматически узла сети будет обновлен. Таким образом имеется возможность обновления интерфейса по умолчанию на другие DNS имя или IP адрес. Чтобы изменения вступили в силу, агента необходимо перезапустить. Параметры конфигурации 'HostInterface' и 'HostInterfaceItem' поддерживаются в конфигурации агента начиная с Zabbix 4.4.
Максимально допустимая длина имени узла сети увеличена с 64 до 128 символов в обнаружении узлов сети и в авторегистрации агентов.
Теперь имеется возможность конвертации данных CSV файла в JSON формат.
Смотрите также: Предобработка CSV в JSON
Пользовательская обработка ошибок теперь также доступна для следующих шагов предобработки:
* Проверка на ошибку в JSON
* Проверка на ошибку в XML
* Проверка на ошибку с использованием регулярного выражения
Опция Другое при ошибке доступна для этих шагов предобработки в обычных элементах данных и в прототипах элементов данных. В правилах низкоуровневого обнаружения опция Другое при ошибке доступна для 'Проверка на ошибку в JSON' и 'Проверка на ошибку в XML' шагов предобработки.
Распространенным случаем использования пользовательской обработки ошибок является возможность пропуска данных при найденном сообщении об ошибке.
В правила низкоуровневого обнаружения добавлены дополнительные опции предобработки:
Имена узлов сети теперь включены в экспорт реального времени событий, значений элементов данных и динамики изменений (ранее экспортировалось только видимое имя узла сети). Обратите внимание, что изменился протокол экспорта, теперь информация с именем узла сети является объектом, а не строкой / массивом.
Типы значений теперь включены в экспорт реального времени значений элементов данных и динамики изменений. Смотрите протокол экспорта для получения более подробных сведений.
Доступны новые официальные шаблоны для мониторинга:
Новые шаблоны мониторинга Linux представлены в трёх вариантах:
Вы можете получить эти шаблоны:
templates
в последней загруженной версии Zabbix. Затем, находясь в Настройка → Шаблоны вы можете импортировать их вручную в Zabbix. Если шаблоны с таким же именем уже существуют, при импорте необходимо выбрать Удалить отсутствующие, чтобы добиться чистого импорта. Таким образом старые элементы данных, которые отсутствуют в обновленном шаблоне будут удалены (обратите внимание, это также значит потерю истории по этим старым элементам данных).Описания к элементам данных и триггерам позволяют делиться знаниями в Zabbix между различными пользователями. Такие описания могут объяснять что конкретно делает элемент данных или понять природу происхождения проблемы. Теперь эту информацию легче заметить и прочитать на страницах последних данных и проблем.
Описания к элементам данных можно найти в разделе Последние данные.
Иконка со знаком вопроса отображается сразу после имени элемента данных по всем элементам данных у которых имеется описание. Если вы поместите курсор мыши на эту иконку, описание элемента данных отобразится в виде подсказки.
Иконка со знаком вопроса отображается сразу после имени проблемы по всем проблемам у которых имеется описание. Если вы поместите курсор мыши на эту иконку, отобразится описание связанного триггера в виде подсказки.
Описания к проблемам также доступны в деталях событий.
Удалены способы оповещения 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. Пока вы печатаете, обратите внимание как все совпадающие объекты отображаются в выпадающем списке.
Ограничение допустимого количества виджетов панели по горизонтали увеличено с 12 до 24 колонок.
Режим редактирования виджетов панели теперь доступен за одно нажатие мыши.
Сразу после нажатия кнопки изменения открывается диалог редактирования виджета и вся панель переходит в режим редактирования.
Чтобы использовать место на панели более эффективно, добавлена возможность скрытия заголовков виджетов, позволяющая отображать большее количество содержимого в виджетах. Эту настройку можно задавать отдельно по каждому виджету в их настройках (опция Отображать заголовки). Если заголовки скрываются, они всё же будут появляться у виджетов при фокусировке на виджете мышью или клавиатурой.
Виджет Проблемы по важности расширен, добавилась опция отображения общего количества проблем по нескольким группам узлов сети и узлам сети:
Общее количество можно отобразить в блоках по горизонтали или по вертикали:
Добавлен новый виджет доступности узлов сети к доступным виджетам панели. Этот виджет аналогичен Информация о узле сети элементу комплексного экрана и отображает высокоуровневую статистику доступности узлов сети на основе выбранных групп узлов сети.
Статистику доступности можно отобразить в блоках по горизонтали или по вертикали:
В этом виджете также возможно отображать раздельно статистику доступности узлов сети по любому количеству типов интерфейсов узлов сети (Zabbix агент, SNMP, JMX, IPMI).
На панель добавлен новый виджет прототипов графиков. В этом виджете вы можете отобразить сетку из одного и более графиков, созданных низкоуровневым обнаружением из одного прототипа графиков.
Для более лучшей читаемости изменились шрифты области такста на моноширинные в следующих местах:
Поля ввода, которые потенциально могут содержать длинные имена или значения, увеличены до 300 пикселов и также увеличиваются динамически при вводе данных, добавляя новую строку:
Это изменение реализовано в:
В веб-интерфейсе информация о прокси вынесена в отдельную колонку в нескольких местах:
Таким образом, например, если ранее имена узлов сети хостов, которые наблюдаются через прокси, имели префикс с именем прокси, то теперь имя прокси указывается в отдельной колонке.
Таблица items
ранее использовалась как веб-интерфейсом, так и сервером, в результате происходили нежелательные блокировки строк во время когда, например, сервер мог обновлять поля связанные с 'журнал (лог)' элементами данных. Чтобы решить такую ситуацию, поля реального времени (lastlogsize, state, mtime, error) вынесены в отдельную таблицу с названием item_rtdata
.