Zabbix Documentation 1.8

2.23.03.4In development:4.0Unsupported versions:1.82.02.43.2

User Tools

Site Tools

This translation is older than the original page and might be outdated. See what has changed.

Sidebar


Ask questions to Zabbix Dev Team in person at the Zabbix Summit 2018!
ru:manual:config:macros

2 Макросы

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

Список поддерживаемых макросов

В таблице содержится полный список поддерживаемых макросов Zabbix. X обозначает “поддерживается”.

Имена элементов данных Описание
Имена триггеров▼▼
Выражения триггеров▼▼
Подписи на картах1▼▼
Параметры ключей элементов данных▼▼
GUI скрипты▼▼
Оповещения авторегистрации▼▼
Оповещения обнаружения▼▼
Оповещения и команды▼▼
МАКРОС ▼▼
­ ▼▼ 1 2 3 4 5 6 7 8 9
{DATE} XXX Текущая дата в формате 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} XXX Возраст события. Полезно в сообщениях эскалации.
{EVENT.DATE} XXX Дата события.
{EVENT.ID} XXX Код (ID) события, вызвавшего это действие.
{EVENT.TIME} XXX Время события.
{HOSTNAME<1-9>} X X XX X Имя узла сети N-го элемента данных из триггера вызвавшего это оповещение. Поддерживается в оповещениях авторегистрации начиная с версии 1.8.4.
{HOST.CONN<1-9>} X XXX IP или DNS имя узла сети, зависимо от его настроек.
{HOST.DNS<1-9>} X XXX DNS имя узла сети.
1 2 3 4 5 6 7 8 9
{IPADDRESS<1-9>} X XXX 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>} XXX ID ноды
{NODE.NAME<1-9>} XXX Имя ноды
{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>}XXX Имя прокси N-го триггера вызвавшего оповещение. Поддерживается начиная с версии 1.8.4.
{STATUS} X Алиас для {TRIGGER.STATUS}.
{TIME} XXX Текущее время в формате чч:мм.сс.
{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 X2X Простой макрос используется в выражении триггера.
{$MACRO} X XXXПользовательские макросы. Поддерживается в именах триггеров и в описаниях элементов данных начиная с версии 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 замещает макросы в соответствии со следующей очередностью:

  1. макрос назначенный узлу сети (проверяется в первую очередь)
  2. макрос назначенный первому уровню шаблонов у узла сети(т.е. шаблоны присоединенные напрямую к узлу сети), которые отсортированы по ID шаблона
  3. макрос назначенный второму уровню шаблонов у узла сети, которые отсортированы по ID шаблона
  4. макрос назначенный третьему уровню шаблонов у узла сети, которые отсортированы по ID шаблона
  5. глобальные макросы (проверяется в последнюю очередь)

Иными словами, если макрос не существует для узла сети непосредственно, тогда Zabbix попытается найти его в шаблонах, присоединенных к узлу сети, с учетом уровня глубины шаблонов. Если макрос все еще не найден, тогда будет использоваться макрос глобального уровня, если он существует конечно.

В случае, если Zabbix не удалось найти макрос, макрос не будет заменен на значение.

Для определения пользовательского макроса, перейдите в соответствующие разделы в веб-интерфейсе:

  • для глобальных макросов, откройте Администрирование → Общие → Макросы
  • для макросов на уровне узлов сети и шаблонов, откройте свойства узла сети или шаблона и найдите блок Макросы с правой стороны страницы

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

Наиболее общие случаи использования глобальных макросов и макросов уровня узлов сети:

  1. используются шаблоны со специфичными для узла сети атрибутами: пароли, номера портов, имена файлов, регулярные выражения, и т.д.
  2. глобальные макросы для глобального изменения конфигурации через “одно нажатие” и более тонкой настройки
Пример 1

Использование макроса в ключе элемента данных “Status of SSH daemon”:

ssh,{$SSH_PORT}

Пример 2

Использование макроса уровня узла сети в триггере “CPU load is too high”:

{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}

Если вы хотите использовать количество значений в качестве параметра функции (например, max(#3)), включите символ решетки # непосредственно в значение макроса, например вот так: SOME_PERIOD ⇒ #3

Пример 3

Использование двух макросов в триггере “CPU load is too high”:

{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}

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

Пользовательские макросы поддерживаются в строке SNMP OID начиная с Zabbix 1.8.4.