В этой статье приведен описание некоторых новых возможностей Zabbix, которые появились в текущей мажорной версии 4.0. Приведены те изменения, которые показались мне наиболее интересными с точки зрения администратора. Полный список изменений можно посмотреть на сайте компании: https://www.zabbix.com/documentation/current/ru/manual/introduction/whatsnew400.
В версии 4.0 значительное внимание было уделено переработки веб консоли продукта, в плане удобства ее использования и гибкости настройки.

Немедленное получение метрик

О необходимости этой возможности говорилось уже давно. Вы создаете новую метрику и хотите посмотреть/проверить, что же получается в итоге. Например, нет ли ошибки в определении метрики и т.д. Однако процесс внедрения новой метрики в Zabbix не так быстр. Сначала вы сохраняете метрику и она попадает в базу Zabbix, далее сервер периодически обращается к базе и считывает данные из базы в свой кэш, с которым затем и работает. Затем агент периодически обращается к серверу, запрашивая, не обновилась ли конфигурация, предназначенная для него. Если обновилась, то скачивает конфигурацию и ставит новые метрики в очередь, согласно их периоду. Поэтому время ожидания первого результата, может быть значительным: «период опроса» + «обновление кэша» + «период проверки агентом». Если у вас метрика запрашивается раз в сутки, то ждать первого результате придется очень долго. Раньше эта проблема решалась так: после привязки шаблона к хосту, уменьшали период опроса метрики непосредственно на хосте, например до 1 минуты, а после получения первого результата возвращали его на прежнее значение. Теперь появилась кнопка «Check now» в форме метрики.

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

Новый HTTP тип элемента данных

Полагаю, что данная функция будет очень востребована пользователями. Появилась возможность получать значения метрик по запросу HTTP/HTTPS без использования дополнительных пользовательских скриптов и т.д. Проверка выполняется со стороны Zabbix сервера или прокси с использованием библиотеки cURL. Все необходимые параметры настройки такой проверки включены в форму создания метрики, такие как: тип запроса, тип получаемых данных (Raw, JSON, XML), переход по редиректам, параметры аутенфикации, SSL параметры, передача дополнительных заголовков и опций запроса. Особенно полезна данная возможность в сочетании с недавно добавленным функционалом «predprocessing». Напомню, ранее подход Zabbix был такой: один запрос – одна метрика. А теперь, благодаря предпроцессингу, данные из одного запроса могут переданы целому набору метрик. Типовой пример: у вашего веб приложения есть некая отладочная страница, на которой выводятся таблица текущих значений ключевых параметров приложения, например, количество текущих сессий, глубина очередей и т.п. Вы создаете мастер-метрику типа HTTP, в ней указываете необходимые настройки для доступа к странице отладки. А затем создаете набор зависимых метрик от этой мастер-метрики и создаете правила в предпроцессинге, по которым из таблицы вывода выбираются значения для каждого нужного параметра. Теперь для этого вам не понадобятся навыки программирования, все делается через веб интерфейс самого zabbix при редактировании формы метрики. В документации Zabbix есть много примеров как правильно использовать данную функцию на примере типовых существующих приложений.

Изменение важности проблемы оператором

Раньше проблемы и триггеры в Zabbix мало отличались по смыслу. Проблемой фактически считалось зафиксированное по времени изменение состояние тригера с ОК на PROBLEM. Обратное изменение состояние – время решения проблемы. Все остальные атрибуты проблемы принадлежали самому триггеру, а не проблеме. Теперь подход меняется, он становится больше похож на традиционные fault management системы. Сама проблема может обладать своими атрибутами, в частности важностью. При первом возникновении проблемы она наследуют важность триггера, но затем оператор с соответствующими правами может поменять ее, если посчитает нужным.

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

 

Так как подход изменился – оператор реагирует именно на проблемы, а сам триггер становится внутренней кухней самого zabbix, то из консоли была убрана вкладка Monitoring->Triggers. Данное решение логичное, так как вкладки во многом дублировались с Monitoring->Problems, оставили ее одну и доработали ее отображение. Текущий же статус триггера переехал в таблицу настройки триггеров, т.е. ту часть интерфейса, которая доступна администраторам.

Графики

В этой части есть два важных изменения.
Появились новые векторные графики в качестве виджета для дэшборда:

 

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

 

Впрочем, управление временным интервалом изменено не только для графиков, а везде, где есть такая необходимость, например, в истории проблем.
Также теперь в режиме киоска, показывается только сам график, ну и сама кнопка переключения режима киоска. Это может быть полезно для вывода графиков на информационные панели, т.е. теперь нет ничего лишнего и информацию можно отображать компактнее на одной панели.
Аналогично для проблем добавлен режим «компактный вид».

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

Небольшие, но интересные изменения.

— Также теперь возможно связывать метрики из правил низкоуровнего обнаружения с обычными. Например, есть общая метрика на хосте типа HTTP, которая запрашивает веб страницу. А конкретные параметры разбираются уже при помощи правила автообнаружения, и в зависимости от того, какие параметры присутствуют на странице, создаются нужные дочерние метрики.
— Макросы низкоуровнего обнаружения можно предварительно обрабатывать при помощи регулярных выражений. Т.е. если правило присваивает в макрос полное значение, а нам не требуется оно целиком или его надо привести к более читабельному виду, то можно использовать функцию regsub для этой цели.
— Теперь можно задать несколько е-мейл адресов для одного пользователя.
— Появилась возможность включить компрессию для трафика между сервером и прокси, что уменьшает требуемую пропускную полосу между сервером и прокси. Функция безусловно полезная, производитель обещает, что нагрузка на CPU из-за компрессии увеличится незначительно. Хотя основным узким местом в коммуникации сервер-прокси все-таки является количество значений метрик, которые присылает прокси. Если сервер загружен, то запросы накапливаются в очереди. В результате может появится задержка в отображении актуальных данных с агентов. В плохой ситуации и при наличии нескольких прокси, может получится, что очередь не рассасывается, так как данные не успевают записаться в базу данных.
— Появился оператор «does not match» для фильтров в правилах автообнаружения. Раньше в мониторинг попадало то, что соответствовало регулярному выражению. Таким образом, надо было предусматривать все возможные варианты, которые должны пройти через выражения и сейчас, и в будущем. А часто надо сделать наоборот – задать фильтр, который исключит ненужные, мусорные объекты из мониторинга. С оператором «нет» это можно сделать.

Заключение

Кроме описанных в статье изменений, также было сделано много небольших изменений. В общей совокупности они направлены на то, чтобы интерфейс стал более читабельным, понятным для пользователя. Разработчики постарались, чтобы основная информация была доступна с первого взгляда на экран без необходимости лезть в дочерние меню, а инструменты управления (событиями, графиками) были под рукой. Что особенно приятно, что разработчики учитывали приоритетность внедрения изменений основываясь на мнении комьюнити продукта. Т.е. в первую очередь внедрялись те функции, за которые проголосовало большинство пользователей.
Есть заметный прогресс в удобстве работы с графиками. Конечно, в плане универсальности и по представленным возможностям Grafana остается впереди, но на практике не всем могут понадобится ее возможности.
Тем, кто рассматривает возможность использования продуктов с открытым кодом в качестве основы для системы мониторинга для ИТ-инфраструктуры своей организации, можно смело посоветовать попробовать продукт Zabbix 4.0. Несмотря на свой возраст продукт продолжает динамично развиваться и совершенствоваться.

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

Интересные нововведения, реализованные в Zabbix 4.0