1 Примеры триггеров

На этой странице собрана коллекция примеров триггеров.

Примеры отсортированы по вариантам использования:

Обнаружение недоступного узла сети
max(/host/zabbix[host,agent,available],5m)=0

Этот триггер срабатывает, если Zabbix агент на узле сети недоступен в течение 5 минут.
Функция: max
Элемент данных: zabbix[host,agent,available]

Альтернатива:

nodata(/host/agent.ping,5m)=1

Этот триггер срабатывает, если от Zabbix агента не поступали данные в течение 5 минут.
Функция: nodata
Элемент данных: agent.ping

Обнаружение недоступного прокси
fuzzytime(/host/zabbix[proxy,{$PROXY_NAME},lastaccess],1m)=0

Этот триггер срабатывает, если данные прокси Zabbix отстают от времени сервера Zabbix на 1 минуту.
Функция: fuzzytime
Элемент данных: zabbix[proxy,{$PROXY_NAME},lastaccess]

Обнаружение недоступного кластера SMTP
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0

Этот триггер срабатывает, если оба SMTP-сервера недоступны.
Функция: last
Элемент данных: net.tcp.service

Обнаружение недоступного узла сети
count(/host/icmpping,30m,,"0")>5

Этот триггер срабатывает, если узел сети недоступен по ping более 5 раз за последние 30 минут.
Функция: count
Элемент данных: icmpping

Обнаружение неожиданной перезагрузки
change(/host/system.uptime)<0

Этот триггер срабатывает, если обнаружено отрицательное изменение значения времени работы системы (что указывает на перезагрузку).
Функция: change
Элемент данных: system.uptime

Обнаружение изменений в важных файлах
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)

Этот триггер срабатывает, если файл /etc/passwd был изменен. Выражение истинно, когда предыдущая контрольная сумма /etc/passwd отличается от самой последней. Подобные выражения могут быть полезны для мониторинга изменений в важных файлах, таких как /etc/passwd, /etc/inetd.conf, /kernel и т. д.
Функция: last
Элемент данных: vfs.file.cksum

Обнаружение изменений в DNS-запросе
last(/Zabbix server/net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1])<>"{$WEBSITE_NAME}           {$DNS_RESOURCE_RECORD_TYPE}       0 mail.{$WEBSITE_NAME}"

Обратите внимание на кавычки вокруг второго операнда.

Этот триггер срабатывает, если результат запроса не равен тому, что он обычно возвращает:

example.com           MX       0 mail.example.com

Функция: last
Элемент данных: net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], с определёнными макросами:

{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
Обнаружение несовпадающего программного обеспечения на разных узлах сети
last(/host/vfs.file.contents[/etc/os-release])<>last(/host2/vfs.file.contents[/etc/os-release])

Этот триггер срабатывает, если версия Ubuntu отличается на разных узлах сети. Обратите внимание, что операндами здесь являются функции, которые возвращают строки.
Функция: last
Элемент данных: vfs.file.contents

Обнаружение несинхронизированных часов
fuzzytime(/host/system.localtime,10s)=0

Триггер срабатывает, если локальное время клиента и время сервера Zabbix отличаются более чем на 10 секунд.
Функция: fuzzytime
Элемент данных: system.localtime

Обратите внимание, что system.localtime должен быть настроен как пассивная проверка для агента Zabbix; в Zabbix agent 2 он может быть настроен как активная проверка.

Обнаружение устаревшего агента
find(/host/agent.version,,"like","beta")=1

Этот триггер срабатывает, если Zabbix агент имеет бета-версию. Zabbix агент необходимо обновить.
Функция: find
Элемент данных: agent.version

Обнаружение нестабильного интерфейса
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 

Этот триггер срабатывает, если рабочее состояние (up/down/unknown) eth0 изменилось более 5 раз в течение часа.
Функция: changecount
Элемент данных: vfs.file.contents

Обнаружение высокого входящего трафика
min(/host/net.if.in[eth0,bytes],5m)>100K

Этот триггер срабатывает, если количество полученных байтов на eth0 за последние пять минут всегда было больше 100 килобайт. Вероятно, кто-то загружает большой файл.
Функция: min
Элемент данных: net.if.in[eth0,bytes]

Обнаружение нехватки места на диске
max(/host/vfs.fs.size[/,free],5m)<10G

Триггер срабатывает, если свободное место на диске стабильно (в течение 5 минут) ниже 10 ГБ.

Вы также можете определить выражение восстановления:

min(/host/vfs.fs.size[/,free],10m)>40G

Проблема устраняется только тогда, когда свободное место на диске стабильно (в течение 10 минут) превышает 40 ГБ.
Функция: min
Элемент данных: vfs.fs.size

Обнаружение нехватки места на диске (динамический порог)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1

Триггер срабатывает, если свободное пространство хранилища (в единицах выделения) падает ниже 10 процентов. Обратите внимание на использование значения другого элемента данных для получения адаптивного порога триггера, применимого к обнаруженным хранилищам различного размера. Функция: last

Обнаружение высокой загрузки CPU
last(/host/system.cpu.load[all,avg1])>5

Триггер срабатывает, когда средняя загрузка процессора превышает 5 в течение одной минуты.

Варианты:

min(/host/system.cpu.load[all,avg1],5m)>2 and time()<060000
min(/host/system.cpu.load[all,avg1],5m)>2 and not (dayofweek()=7 and time()>230000) and not (dayofweek()=1 and time()<010000)

Такие триггеры анализируют данные за 5 минут и срабатывают, только если загрузка CPU ни разу не опускается ниже 2. Дополнительно эти триггеры срабатывают:

  • только в ночное время (00:00-06:00)
  • в любое время, кроме 2 часов при смене недели (воскресенье, 23:00 - понедельник, 01:00)
(last(/host/system.cpu.load[all,avg1])>5) + (last(/host2/system.cpu.load[all,avg1])>5) + (last(/host3/system.cpu.load[all,avg1])>5)>=2

Этот триггер срабатывает, если загрузка процессора слишком высока как минимум на двух из трех узлов сети.
Функции: last, min, dayofweek, time
Элемент данных: system.cpu.load

Сравнение загрузки CPU
avg(/Zabbix server/system.cpu.load,1h)/avg(/Zabbix server/system.cpu.load,1h:now-1d)>2

Триггер срабатывает, если средняя загрузка сегодня более чем в два раза превышает среднюю загрузку за тот же час вчера (с использованием сдвига времени now-1d).
Функция: avg
Элемент данных: system.cpu.load

Сравнение долгосрочной загрузки CPU
trendavg(/host/system.cpu.load,1M:now/M)>1.1*trendavg(/host/system.cpu.load,1M:now/M-1M)

Этот триггер срабатывает, если загрузка CPU на узле сети за последний месяц увеличилась более чем на 10%
Функция: trendavg
Элемент данных: system.cpu.load

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

"Загрузка сервера Exchange увеличилась на 24% в июле (0.69) по сравнению с июнем (0.56)"

имя события должно быть определено как:

Load of {HOST.HOST} server increased by {{?100*trendavg(//system.cpu.load,1M:now/M)/trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(0)}% in {{TIME}.fmttime(%B,-1M)} ({{?trendavg(//system.cpu.load,1M:now/M)}.fmtnum(2)}) comparing to {{TIME}.fmttime(%B,-2M)} ({{?trendavg(//system.cpu.load,1M:now/M-1M)}.fmtnum(2)})

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

Обнаружение строки, содержащей специальные символы
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}

Триггер срабатывает, если содержимое /tmp/hello равно строке, определенной в {$HELLO_MACRO}:

{$HELLO_MACRO} = \" //hello ?\"

В качестве альтернативы можно сравнить со строкой напрямую:

last(/Zabbix server/vfs.file.contents[/tmp/hello])="\\\" //hello ?\\\""

Обратите внимание, как специальные символы (\\ и ") экранируются, когда строка сравнивается напрямую.

Функция: last
Элемент данных: vfs.file.contents

Есть пример выражения триггера, который может быть полезен другим?
Отправьте свой пример (включая само выражение и контекст) с помощью нашей формы предложений, чтобы передать его разработчикам Zabbix.