Статья написана на основе доклада Максима Чудинова, инженера-интегратора Zabbix.
В этой статье мы расскажем о некоторых новых шаблонах, добавленных в версию Zabbix 5.0.
IPMI
Шаблон IPMI работает только с пятой версией системы мониторинга Zabbix, потому что построен на новом ключе impi.get, который использован в качестве мастер-метрики. Ключ запрашивает у контроллера IMPI все датчики с их значениями и порогами и возвращает полученную информацию в формате JSON. В соответствии с правилами низкоуровневого обнаружения из этих данных создаются метрики для дискретных и пороговых датчиков. Метрики получают данные путем предварительной обработки значения из мастер-метрики с помощью JSONPath.
Результат в формате JSON
Если на контроллере заданы не все пороговые значения, система не может создать триггеры из-за неправильного триггерного выражения, потому что для пустых значений триггера в рамках низкоуровневого обнаружения макрос не раскрывается. В результате появляется сообщение о неработающем триггере.
Сообщение о неработающем триггере
В более ранних версиях рекомендовалось самостоятельно указать на контроллере все отсутствующие пороги. В Zabbix 5.0 появилась новая функция Overrides, которая позволяет переопределить правило низкоуровневого обнаружения и задать фильтры, чтобы результат не содержал лишних данных.
Правила низкоуровневого обнаружения
Новая функция Override
В новом шаблоне для каждого прототипа триггера предусмотрено условие: если макрос не раскрывается, он присутствует в триггере как обычный текст. Поэтому стало возможным предусмотреть правило не создавать триггер, если он содержит имя макроса, а не его значение. Таким образом создаются только триггеры с обнаруженными пороговыми значениями.
Создание триггеров
Поскольку используется несколько пороговых значений с разным уровнем предупреждения, в триггерах заложена зависимость друг от друга: триггер с меньшим пороговым значением не срабатывает, когда срабатывает триггер с большим пороговым значением. Поэтому может появиться сообщение о том, что создать зависимость невозможно.
Сообщение о невозможности создать зависимость
Это не влияет на работоспособность шаблона. Наша команда продолжает работать над изменением кода, чтобы обрабатывать такие ситуации. Но пока мы по-прежнему рекомендуем задавать все отсутствующие пороговые значения на контроллере.
MikroTik
В шаблоне для устройств MikroTik были добавлены правила обнаружения.
Новые правила обнаружения в шаблоне Net Mikrotik SNMP
В обновленный шаблон добавлены правила обнаружения метрик каналов WiFi. Фактически это дополнительные метрики для обнаружения сетевых интерфейсов с типом 71 для точек доступа и с типом 1 для контроллера. Отдельные правила для точек и контроллеров созданы потому, что в зависимости от режима работы устройства данные выдаются с разными идентификаторами object ID. Если устройство работает как контроллер, создаются метрики с именем канала, статусом и количеством аутентифицированных и пытающихся аутентифицироваться клиентов.
Создаваемые метрики правила обнаружения для контроллера
ПРИМЕЧАНИЕ. Контроллер не передает данные об SSID, поэтому соответствующая метрика отсутствует. Единственный триггер в этом правиле обнаружения — состояние канала. Состояние 'running-ap' означает, что точка доступа доступна и канал активен. В любом другом случае срабатывает триггер, что означает отключение канала на контроллере, отключение точки от локальной сети или от электропитания.
Результаты выполнения правила обнаружения
Если точка доступа работает в режиме standalone, создаются метрики SSID, полоса, уровень сигнала, уровень шума, аутентифицированные и пытающиеся аутентифицироваться клиенты.
Создаваемые метрики правила обнаружения для точки доступа
ПРИМЕЧАНИЕ. Если точка доступа находится под управлением контроллера и создана в Zabbix как отдельный хост, к которому привязан описываемый шаблон, правило обнаружение не сможет получить какие-либо данные, потому что в таком режиме информация о WiFi каналах отсутствует.
На некоторых устройствах MikroTik есть датчики температуры. Новое правило обнаружения позволяет обнаружить датчик температуры и создать метрику с тремя триггерами для пороговых значений температуры. Значения задаются через макросы и могут быть переопределены на уровне хоста.
Метрика правила обнаружения для датчика температуры устройства MikroTik
MSSQL
Теперь в базовой поставке Zabbix содержит новый шаблон, разработанный для безагентского мониторинга СУБД Microsoft SQL Server начиная с версии 2016 для Linux и Windows платформ. Новый шаблон, используя минимальное количество устанавливаемых соединений, обеспечивает сбор метрик:
— доступность, версия, время работы,
— количество операций в секунду,
— счетчики запросов, блокировок, ошибок
— размеры баз данных,
— состояние репликации.
Установка и настройка шаблона
Описание, readme-файл и ссылка на шаблон размещены в документации Zabbix.
ПРИМЕЧАНИЕ.
- При настройке ODBC с драйвером от Microsoft для SQL Server задаются только два параметра: Driver и Server.
- Для работы достаточно указать сервер — IP-адрес или доменное имя — и порт, разделённые запятой.
- Настройка в отдельных параметрах имени пользователя, пароля и номера порта не используется и не работает.
- odbc.ini
[\]
Driver = ODBC Driver 17 for SQL Server
Server = <IP или FQDN>, <TCP порт>
- Макросы
{\$MSSQL.DSN} = <…>
{\$MSSQL.USER} = <…>
{\$MSSQL.PASSWORD} = <…>
{\$MSSQL.PORT} = 1433
{$MSSQL.INSTANCE} = SQLServer или MSSQL$<имя экземпляра>
Задать порт необходимо в случае установки SQL Server с параметрами не по умолчанию.
Если на одном сервере устанавливается более одного экземпляра SQL Server, то в настройках экземпляра необходимо задать TCP порт. По умолчанию второй и последующие экземпляры SQL Server устанавливаются без использования TCP-порта.
Обязательные для работы шаблона макросы: DSN, USER (логин), PASSWORD, PORT и INSTANCE. Макро PORT используется для проверки доступности. Если при установке SQL Server было задано пользователькое название экземпляра, то необходимо изменить значение макро INSTANCE с SQLServer на MSSQL\$<имя экземпляра>.
Шаблон достаточно объемный — 67 метрик. Сбор данных осуществляется мастер-метриками с помощью ключа db.odbc.get, который возвращает JSON для последующего разбора зависимыми метриками с использованием функции препроцессинга JSONPath.
Результаты сбора данных с использованием шаблона
Данные счетчиков берутся из системной таблицы dm_os_performance_counter. Большинство метрик являются зависимыми, однако часть данных в таблице представлены в «сыром» виде, поэтому некоторые метрики — вычисляемые.
Доступность сервиса (объекта) проверяется с помощью ключа net.tcp.service, в котором используется имя или адрес, указанные в интерфейса хоста, а также порт, ранее указанный в макро {\$MSSQL.PORT}.
Правила обнаружения
В шаблоне используются правила LLD, которые позволяют обнаруживать базы данных, реплики и их разновидности: зеркалирование и группы доступности, а также локальный и удаленный экземпляры баз, появляющиеся после настройки репликации. По базам данных собирается информация о статусе, размере, транзакциях и журнале транзакций. По репликации и реплицируемым базам — статус и состояние синхронизации.
Правила обнаружения в шаблоне DB MSSQL by ODBC
Заключение
Пожелания и замечания по шаблонам можно оставлять на форуме Zabbix или на портале технической поддержки.
Разработчикам, желающим поделиться своими шаблонами и получить статус рекомендуемого шаблона на странице интеграций Zabbix, мы предлагаем воспользоваться нашей поваренной книгой о том, как готовить правильный шаблон, которая размещена на обновленном сайте документации.
Хочу поблагодарить всех энтузиастов, участвовавших в сборе данных для разработки и в тестировании описанных шаблонов. Спасибо Вам большое.
Вопросы и ответы
Вопрос. Мониторинг Microsoft SQL на данный момент доступен только в Zabbix 5.0?
Ответ. В связи с изменением формата шаблона существующий шаблон в предыдущие версии импортировать невозможно.
Вопрос. Доступны ли все метрики в шаблоне с использованием ODBC-запросов для обычного пользователя или нужно назначать какие-то права на уровне СУБД? И если нужно, то какие именно права?
Ответ. Да, при создании пользователя в экземпляре SQL Server необходимо задать права такого пользователя. Настройка прав описана в readme-файле к шаблону.
Вопрос. Планируется ли сделать шаблоны для WiFi-оборудования UBQUITI?
Ответ. В опубликованных планах таких задач нет. Можно порекомендовать создать соответствующий запрос на портале технической поддержки, и, в зависимости от популярности запроса, Zabbix может добавить такой шаблон.
Вопрос. Поддерживается ли мониторинг нескольких экземпляров Microsoft SQL?
Ответ. Да, если назначить TCP-порт на каждый экземпляр. По умолчанию порт назначается только при инсталляции первого экземпляра SQL Server. Второй и последующие экземпляры по умолчанию недоступны по TCP. Также для каждого экземпляра нужно настроить ODBC, создать отдельный хост в Zabbix и задать макро.
Вопрос. Можно ли мониторить резервные копии баз данных с использованием шаблона Microsoft SQL?
Ответ. Нет, резервные копии баз данных не мониторятся. Желающие поделиться своими идеями мониторинга резервного копирования могут создать запрос ZBXNEXT и мы добавим такую возможность.
Вопрос. Каким образом масштабировать количество 'опрашивателей' (pollers) Microsoft SQL?
Ответ. Мы пока не проводили нагрузочное тестирование, поэтому сказать, что количество одновременных запросов ограничено или не ограничено невозможно.
Вопрос. В шаблоне нет триггера, относящегося к отключению блока питания контролируемого устройства. Можно ли автоматизировать создание триггеры на основе метрик, чтобы не делать это вручную?
Ответ. Если такая информация поступает, сенсор должен быть и иметь значение. Если сенсор на контроллере отсутствует, то такую информацию мы получить не сможем. Желающие поделиться своими идеями могут подготовить ZBXNEXT и мы постараемся такую функцию реализовать.
Кроме того, если имеется дискретный сенсор, для него невозможно предусмотреть определенные триггеры, потому что варианты значений не определены. Для дискретных датчиков создаются триггеры изменения значения.
Вопрос. Шаблон для мониторинга Microsoft SQL будет ли как-то отличаться от других шаблонов с использованием perf_counter[]?
Ответ. На share.zabbix.com представлено много различных шаблонов для MS SQL. Да, они будут отличаться. В целом новый шаблон более универсален, чем шаблоны с ключом perf_counter[], потому что рассчитан на работу с экземплярами SQL Server как на Windows, так и на Unix платформах.
Oakum
Попробовал шаблон IPMI — приятно, но возник вопрос: как добавить прототип графика, для включения к нему всех обнаруженных сенсоров, с группировкой по единицам измерения? Чтобы создавался один график для всех обнаруженных температур, другой для всех обнаруженных напряжений.
MaxChudinov
Прототип графика добавить не получится. Но можно сделать dashboard widget, в котором указать маску в item pattern. Например, добавить один data set c маской *CPU*, C и другой data set с маской *DIMM*, C. Разные data set'ы позволят задать разный базовый цвет линий графика.