Существует тип макроса, который используется в функционале низкоуровневого обнаружения (LLD):
Это такой макрос, который используется в правиле LLD и возвращает реальные значения имён файловых систем, сетевых интерфейсов, SNMP OID'ов и т.п.
Эти макросы можно использовать для создания прототипов элементов данных, триггеров и графиков. Затем, когда обнаруживаются реальные файловые системы, сетевые интерфейсы и т.п., такие макросы заменяются реальными значениями и становятся основой для создания реальных элементов данных, триггеров и графиков.
Такие макросы также используются при создания прототипов узлов сети и групп узлов сети в обнаружении виртуальных машин.
Некоторые макросы низкоуровневого обнаружения «заранее добавлены» в функционал низкоуровневого обнаружения в Zabbix — {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Однако, не обязательно придерживаться этих имён при создании пользовательского правила низкоуровневого обнаружения. В таких случаях вы можете использовать любое другое имя LLD макроса и ссылаться по этому имени.
LLD макросы можно использовать:
Во всех перечисленных местах, за исключением фильтров правил низкоуровневого обнаружения, LLD макросы можно использовать в статических контекстах пользовательских макросов.
Функции макросов поддерживаются с макросами низкоуровневого обнаружения (за исключением фильтра правила низкоуровневого обнаружения), позволяя извлекать нужную часть значения макроса с помощью регулярного выражения.
Например, вы можете захотеть извлечь имя клиента и номер интерфейса из следующего макроса LLD, чтобы назначить теги событий:
Чтобы это сделать, в поле значения тега события прототипа триггеров можно вместе с макросом использовать функцию макроса regsub
:
Обратите внимание, что запятые не разрешены в не заключённых в кавычки параметрах ключей элементов данных, поэтому параметр, содержащий функцию макроса, необходимо заключить в кавычки. Символ обратной косой черты (\
) следует использовать для экранирования двойных кавычек внутри параметра. Например:
Для получения более подробных сведений о синтаксисе функций макросов смотрите: Функции макросов
Функции макросов в макросах низкоуровневого обнаружения поддерживаются с Zabbix 4.0.
1 В полях, отмеченных 1, один макрос должен заполнять целое поле. Несколько макросов в одном поле или макросы, смешанные с текстом, не поддерживаются.