Zabbix поддерживает некоторое количество макросов, которые могут быть использованы в различных ситуациях. Эффективное использование макросов позволяет сократить время и сделать настройку Zabbix более прозрачной.
В таблице содержится полный список поддерживаемых макросов Zabbix. X обозначает "поддерживается".
| Имена элементов данных | Описание | |||||||||
| Имена триггеров | ▼▼ | |||||||||
| Выражения триггеров | ▼▼ | |||||||||
| Подписи на картах1 | ▼▼ | |||||||||
| Параметры ключей элементов данных | ▼▼ | |||||||||
| GUI скрипты | ▼▼ | |||||||||
| Оповещения авторегистрации | ▼▼ | |||||||||
| Оповещения обнаружения | ▼▼ | |||||||||
| Оповещения и команды | ▼▼ | |||||||||
| МАКРОС | ▼▼ | |||||||||
| ▼▼ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| {DATE} | X | X | X | Текущая дата в формате yyyy.mm.dd. | ||||||
| {DISCOVERY.DEVICE.IPADDRESS} | X | IP адрес обнаруженного устройства. Доступно всегда, не зависит от того добавлен узел сети или нет. | ||||||||
| {DISCOVERY.DEVICE.STATUS} | X | Состояние обнаруженного устройства: может быть ДОСТУПЕН или НЕДОСТУПЕН. | ||||||||
| {DISCOVERY.DEVICE.UPTIME} | X | Время с момента последнего изменения состояния обнаружения для конкретного устройства. Например: 1ч 29м. Для устройств с состоянием НЕДОСТУПЕН этот период указывает время недоступности. |
||||||||
| {DISCOVERY.RULE.NAME} | X | Название правила обнаружения, которое обнаружило наличие или отсутствие устройства или сервиса. | ||||||||
| {DISCOVERY.SERVICE.NAME} | X | Имя сервиса, которое было обнаружено. Например: HTTP. |
||||||||
| {DISCOVERY.SERVICE.PORT} | X | Порт на котором сервис был обнаружен. Например: 80. |
||||||||
| {DISCOVERY.SERVICE.STATUS} | X | Состояние сервиса правила обнаружения: может быть ДОСТУПЕН или НЕДОСТУПЕН. | ||||||||
| {DISCOVERY.SERVICE.UPTIME} | X | Время с момента последнего изменения состояния обнаружения для конкретного сервиса. Например: 1ч 29м. Для сервисов с состоянием НЕДОСТУПЕН этот период указывает время недоступности. |
||||||||
| {ESC.HISTORY} | X | История эскалаций. Журнал предыдущих отправленных сообщений. Отображает предыдущие отправленные оповещения, на котором шаге эскалации они были отправлены и их статус (отправлено, в процессе и ошибка). | ||||||||
| {EVENT.ACK.HISTORY} | X | |||||||||
| {EVENT.ACK.STATUS} | X | |||||||||
| {EVENT.AGE} | X | X | X | Возраст события. Полезно в сообщениях эскалации. | ||||||
| {EVENT.DATE} | X | X | X | Дата события. | ||||||
| {EVENT.ID} | X | X | X | Код (ID) события, вызвавшего это действие. | ||||||
| {EVENT.TIME} | X | X | X | Время события. | ||||||
| {HOSTNAME<1-9>} | X | X | X | X | X | Имя узла сети N-го элемента данных из триггера вызвавшего это оповещение. Поддерживается в оповещениях авторегистрации начиная с версии 1.8.4. | ||||
| {HOST.CONN<1-9>} | X | X | X | X | IP или DNS имя узла сети, зависимо от его настроек. | |||||
| {HOST.DNS<1-9>} | X | X | X | X | DNS имя узла сети. | |||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
| {IPADDRESS<1-9>} | X | X | X | X | IP адрес N-го элемента данных триггера вызвавшего это оповещение. | |||||
| {ITEM.ID<1-9>} | X | Числовой ID N-го элемента данных триггера вызвавшего это оповещение. Поддерживается начиная с 1.8.12. | ||||||||
| {ITEM.LASTVALUE<1-9>} | X | X | Последнее значение элемента данных N-го элемента данных в выражении триггера вызвавшего это оповещение. Поддерживается начиная с 1.4.3. Это алиас для {{HOSTNAME}:{TRIGGER.KEY}.last(0)} | |||||||
| {ITEM.LOG.AGE<1-9>} | X | |||||||||
| {ITEM.LOG.DATE<1-9>} | X | |||||||||
| {ITEM.LOG.EVENTID<1-9>} | X | |||||||||
| {ITEM.LOG.NSEVERITY<1-9>} | X | |||||||||
| {ITEM.LOG.SEVERITY<1-9>} | X | |||||||||
| {ITEM.LOG.SOURCE<1-9>} | X | |||||||||
| {ITEM.LOG.TIME<1-9>} | X | |||||||||
| {ITEM.NAME<1-9>} | X | Имя N-го элемента данных в выражении триггера, вызвавшего это оповещение. | ||||||||
| {ITEM.VALUE<1-9>} | X | X | Последнее значение N-го элемента данных в выражении триггера, если используется для отображения триггеров. Историческое значение (точно когда произошло событие) N-го элемента данных из выражения триггера, если используется для отображения событий и оповещений. Поддерживается начиная с Zabbix 1.4.3. |
|||||||
| {NODE.ID<1-9>} | X | X | X | ID ноды | ||||||
| {NODE.NAME<1-9>} | X | X | X | Имя ноды | ||||||
| {PROFILE.CONTACT<1-9>} | X | Контакт из профиля узла сети. | ||||||||
| {PROFILE.DEVICETYPE<1-9>} | X | Тип устройства из профиля узла сети. | ||||||||
| {PROFILE.HARDWARE<1-9>} | X | Аппаратное обеспечение из профиля узла сети. | ||||||||
| {PROFILE.LOCATION<1-9>} | X | Размещение устройства из профиля узла сети. | ||||||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
| {PROFILE.MACADDRESS<1-9>} | X | MAC адрес из профиля узла сети. | ||||||||
| {PROFILE.NAME<1-9>} | X | Имя из профиля узла сети. | ||||||||
| {PROFILE.NOTES<1-9>} | X | Заметки из профиля узла сети. | ||||||||
| {PROFILE.OS<1-9>} | X | ОС из профиля узла сети. | ||||||||
| {PROFILE.SERIALNO<1-9>} | X | Серийный номер из профиля узла сети. | ||||||||
| {PROFILE.SOFTWARE<1-9>} | X | Программное обеспечение из профиля узла сети. | ||||||||
| {PROFILE.TAG<1-9>} | X | Метка из профиля узла сети. | ||||||||
| {PROXY.NAME<1-9>} | X | X | X | Имя прокси N-го триггера вызвавшего оповещение. Поддерживается начиная с версии 1.8.4. | ||||||
| {STATUS} | X | Алиас для {TRIGGER.STATUS}. | ||||||||
| {TIME} | X | X | X | Текущее время в формате чч:мм.сс. | ||||||
| {TRIGGER.COMMENT} | X | Комментарий к триггеру. | ||||||||
| {TRIGGER.EVENTS.UNACK} | X | X | Количество неподтвержденных событий для элемента на картах сетей или для триггера, вызвавшего текущее событие в уведомлениях. Поддерживается в подписях к элементам карт начиная с версии 1.8.3. | |||||||
| {TRIGGER.EVENTS.PROBLEM.UNACK} | X | X | Количество неподтвержденных событий ПРОБЛЕМА для всех триггеров изменивших свое состояние, без учета их состояния. Поддерживается начиная с версии 1.8.3. | |||||||
| {TRIGGER.PROBLEM.EVENTS.PROBLEM.UNACK} | X | Количество неподтвержденных событий ПРОБЛЕМА для триггеров в состоянии ПРОБЛЕМА. Поддерживается начиная с 1.8.3. | ||||||||
| {TRIGGER.EVENTS.ACK} | X | X | Количество подтвержденных событий для элемента на картах сетей, или для триггера вызвавшего текущее событие в уведомлениях. Поддерживается начиная с 1.8.3. | |||||||
| {TRIGGER.EVENTS.PROBLEM.ACK} | X | X | Количество подтвержденных событий ПРОБЛЕМА для всех триггеров, без учета их состояния. Поддерживается начиная с 1.8.3. | |||||||
| {TRIGGER.PROBLEM.EVENTS.PROBLEM.ACK} | X | Количество подтвержденных событий ПРОБЛЕМА для триггеров в состоянии ПРОБЛЕМА. Поддерживается начиная с 1.8.3. | ||||||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
| {TRIGGER.EXPRESSION} | X | Выражение триггера. Поддерживается начиная с 1.8.12. | ||||||||
| {TRIGGER.ID} | X | Код (ID) триггера вызвавшего это действие. | ||||||||
| {TRIGGER.KEY<1-9>} | X | Ключ N-го элемента данных в выражении триггера, вызвавшего это действие. | ||||||||
| {TRIGGER.NAME} | X | Имя (описание) триггера. | ||||||||
| {TRIGGER.NSEVERITY} | X | Числовое представление важности триггера. Возможные значения: 0 - Не классифицировано, 1 - Информация, 2 - Предупреждение,3 - Средняя, 4 - Высокая, 5 - Чрезвычайная, Поддерживается начиная с Zabbix 1.6.2. | ||||||||
| {TRIGGER.SEVERITY} | X | Важность триггера. Возможные значения: Not classified, Information, Warning, Average, High, Disaster, Unknown | ||||||||
| {TRIGGER.STATUS} | X | Состояние триггера. Может быть ПРОБЛЕМА или ОК. {STATUS} устарел. | ||||||||
| {TRIGGER.URL} | X | URL триггера. | ||||||||
| {TRIGGER.VALUE} | X | X | Текущее значение триггера: 0 - если триггер в состоянии ОК, 1 – если триггер в состоянии ПРОБЛЕМА, 2 – если триггер в состоянии НЕИЗВЕСТНО. Этот макрос может быть использован в выражениях триггеров. | |||||||
| {TRIGGERS.UNACK} | X | Количество неподтвержденных триггеров для элемента на картах сетей, без учета состояния триггера. Триггер считается не подтвержденным, если хотя бы одно его событие ПРОБЛЕМА не подтверждено. Поддерживается начиная 1.8.3. | ||||||||
| {TRIGGERS.PROBLEM.UNACK} | X | Количество неподтвержденных триггеров в состоянии ПРОБЛЕМА для элемента на картах сетей. Поддерживается начиная с версии 1.8.3. | ||||||||
| {TRIGGERS.ACK} | X | Количество подтвержденных триггеров для элемента на картах сетей, без учета состояния триггера. Триггер считается не подтвержденным, если все его события ПРОБЛЕМА подтверждены. Поддерживается начиная 1.8.3. | ||||||||
| {TRIGGERS.PROBLEM.ACK} | X | Количество подтвержденных триггеров ПРОБЛЕМА для элемента на картах сетей. Триггер считается подтвержденным, если все его события ПРОБЛЕМА подтверждены. Поддерживается начиная с 1.8.3. | ||||||||
| {host:key.func(param)} | X | X2 | X | Простой макрос используется в выражении триггера. | ||||||
| {$MACRO} | X | X | X | X | Пользовательские макросы. Поддерживается в именах триггеров и в описаниях элементов данных начиная с версии 1.8.4. | |||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
[1]Макросы для подписей на карте сети поддерживаются начиная с 1.8.
[2]В подписях на карте сети поддерживаются только функции last, avg, max и min с секундами в качестве аргумента.
Макрос {TRIGGER.ID} поддерживается в URL триггера начиная с Zabbix 1.8.8.
Для большей гибкости, Zabbix поддерживает пользовательские макросы, которые могут быть определены на глобальном уровне, на уровне шаблонов и на уровне узлов сети. Эти макросы имеют специальный синтаксис: {$MACRO}. Макросы могут быть использованы в ключах элементов данных и в выражениях триггеров. Начиная с Zabbix версии 1.8.4 пользовательские макросы так же возможно использовать в описаниях элементов данных и в именах триггеров.
Следующие символы допустимы в именах макросов: A-Z , 0-9 , _ , .
Zabbix замещает макросы в соответствии со следующей очередностью:
Иными словами, если макрос не существует для узла сети непосредственно, тогда Zabbix попытается найти его в шаблонах, присоединенных к узлу сети, с учетом уровня глубины шаблонов. Если макрос все еще не найден, тогда будет использоваться макрос глобального уровня, если он существует конечно.
В случае, если Zabbix не удалось найти макрос, макрос не будет заменен на значение.
Для определения пользовательского макроса, перейдите в соответствующие разделы в веб-интерфейсе:
Если пользовательский макрос используется в элементах данных или триггерах шаблона, то предлагается добавить этот макрос к шаблону, даже если он определен на глобальном уровне. Таким образом при экспорте шаблона в XML и импорте его в другую систему элементы данных и триггеры продолжат работать как это и ожидалось.
Наиболее общие случаи использования глобальных макросов и макросов уровня узлов сети:
Использование макроса в ключе элемента данных "Status of SSH daemon":
ssh,{$SSH_PORT}
Использование макроса уровня узла сети в триггере "CPU load is too high":
{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}
Если вы хотите использовать количество значений в качестве параметра функции (например, max(#3)), включите символ решетки # непосредственно в значение макроса, например вот так: SOME_PERIOD => #3
Использование двух макросов в триггере "CPU load is too high":
{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}
Заметьте, что макрос может быть использован в качестве параметра для функции триггера, в этом примере для функции min().
Пользовательские макросы поддерживаются в строке SNMP OID начиная с Zabbix 1.8.4.