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, один макрос должен заполнять целое поле. Несколько макросов в одном поле или макросы вперемешку с текстом не поддерживаются.