4. Макросы низкоуровневого обнаружения

Обзор

Существует тип макроса, который используется в функционале низкоуровневого обнаружения (LLD):

{#МАКРОС} 

Это такой макрос, который используется в правиле LLD и возвращает реальные значения имён файловых систем, сетевых интерфейсов, SNMP OID'ов и т.п.

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

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

Некоторые макросы низкоуровневого обнаружения «заранее добавлены» в функционал низкоуровневого обнаружения в Zabbix — {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Однако, не обязательно придерживаться этих имён при создании пользовательского правила низкоуровневого обнаружения. В таких случаях вы можете использовать любое другое имя LLD макроса и ссылаться по этому имени.

Поддерживаемые места

LLD макросы можно использовать:

  • в фильтре правила низкоуровневого обнаружения
  • в прототипах элементов данных в
    • именах
    • параметрах ключей
    • единицах измерения
    • интервалах обновления1
    • периодах хранения истории1
    • периодах хранения динамики изменений1
    • шагах предварительной обработки значений элементов данных
    • SNMP OID'ах
    • полях IPMI датчиков
    • выражениях вычисляемых/агрегируемых элементов данных, в:
      • константах выражений и параметрах функций
      • параметрах ключей элементов данных
    • условиях фильтра агрегируемых элементов данных (имя группы узлов сети и имя тега)
    • скриптах SSH и скриптах Telnet
    • SQL запросах монитора баз данных
    • полях endpoint JMX элементов данных
    • описаниях
    • полях URL HTTP агента
    • полях HTTP поля запроса HTTP агента
    • полях тела запроса HTTP агента
    • полях требуемых кодов состояний HTTP агента
    • полях ключей и значений заголовков HTTP агента
    • полях имени пользователя аутентификации HTTP агента
    • полях пароля аутентификации HTTP агента
    • полях HTTP прокси HTTP агента
    • полях файла SSL сертификата HTTP агента
    • полях файла SSL ключа HTTP агента
    • полях пароля к SSL ключу HTTP агента
    • полях HTTP времени ожидания1 HTTP агента
    • тегах
  • в прототипах триггеров в
    • именах
    • оперативных данных
    • выражениях (только в константах и параметрах функций)
    • URL'ах
    • описаниях
    • тегах
  • в прототипах графиков в
    • именах
  • в прототипах узлов сети в
    • именах
    • видимых именах
    • полях пользовательских интерфейсов: IP, DNS, порт, SNMP v1/v2 community, SNMP v3 имя контекста, SNMP v3 имя безопасности, SNMP v3 пароль аутентификации, SNMP v3 ключевая фраза безопасности
    • именах прототипов групп узлов сети
    • значении тега узла сети
    • значении макроса узла сети
    • (смотрите полный список)

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

Использование функций макросов

Функции макросов поддерживаются с макросами низкоуровневого обнаружения (за исключением фильтра правила низкоуровневого обнаружения), позволяя извлекать нужную часть значения макроса с помощью регулярного выражения.

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

{#IFALIAS}=имяклиента_1

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

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

net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

Для получения более подробных сведений о синтаксисе функций макросов смотрите: Функции макросов

Функции макросов в макросах низкоуровневого обнаружения поддерживаются с Zabbix 4.0.

Примечания

1 В полях, отмеченных 1, один макрос должен заполнять целое поле. Несколько макросов в одном поле или макросы, смешанные с текстом, не поддерживаются.