1 Exemples de déclencheurs

Cette page est une collection d'exemples de déclencheurs.

Les exemples sont classés par cas d'utilisation :

Détecter un hôte indisponible
max(/host/zabbix[host,agent,available],5m)=0

Ce déclencheur se déclenche si l'agent Zabbix sur l'hôte est indisponible depuis 5 minutes.
Fonction : max
Élément de données : zabbix[host,agent,available]

Alternative :

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

Ce déclencheur se déclenche si aucune donnée n'a été reçue de l'agent Zabbix pendant 5 minutes.
Fonction : nodata
Élément de données : agent.ping

Détecter un proxy indisponible
fuzzytime(/host/zabbix[proxy,{$PROXY_NAME},lastaccess],1m)=0

Ce déclencheur se déclenche si les données du proxy Zabbix ont 1 minute de retard par rapport à l’heure du serveur Zabbix.
Fonction : fuzzytime
Élément de données : zabbix[proxy,{$PROXY_NAME},lastaccess]

Détecter un cluster SMTP indisponible
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0

Ce déclencheur se déclenche si les deux serveurs SMTP sont indisponibles.
Fonction : last
Élément de données : net.tcp.service

Détecter un hôte injoignable
count(/host/icmpping,30m,,"0")>5

Ce déclencheur se déclenche si l'hôte est injoignable par ping plus de 5 fois au cours des 30 dernières minutes.
Fonction : count
Élément de données : icmpping

Détecter un redémarrage inattendu
change(/host/system.uptime)<0

Ce déclencheur se déclenche si une variation négative de la valeur du temps de fonctionnement du système est détectée (indiquant un redémarrage).
Fonction : change
Élément de données : system.uptime

Détecter les modifications dans des fichiers importants
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)

Ce déclencheur se déclenche si /etc/passwd a été modifié. L'expression est vraie lorsque la somme de contrôle précédente de /etc/passwd diffère de la plus récente. Des expressions similaires peuvent être utiles pour surveiller les modifications dans des fichiers importants, tels que /etc/passwd, /etc/inetd.conf, /kernel, etc.
Fonction : last
Élément de données : vfs.file.cksum

Détecter les changements dans la requête 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}"

Notez les guillemets autour du second opérande.

Ce déclencheur se déclenche si le résultat de la requête n'est pas égal à ce qu'il renvoie normalement :

example.com           MX       0 mail.example.com

Fonction : last
Élément de données : net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], avec les macros définies comme suit :

{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
Détecter les logiciels non correspondants sur différents hôtes
last(/host/vfs.file.contents[/etc/os-release])<>last(/host2/vfs.file.contents[/etc/os-release])

Ce déclencheur se déclenche si la version d’Ubuntu est différente sur différents hôtes. Notez que les opérandes ici sont des fonctions qui renvoient des chaînes.
Fonction : last
Élément de données : vfs.file.contents

Détecter des horloges non synchronisées
fuzzytime(/host/system.localtime,10s)=0

Le déclencheur se déclenche si l’heure locale du client et l’heure du serveur Zabbix diffèrent de plus de 10 secondes.
Fonction : fuzzytime
Élément de données : system.localtime

Notez que system.localtime doit être configuré comme une vérification passive pour l’agent Zabbix ; sur l’agent Zabbix 2, il peut être configuré comme une vérification active.

Détecter un agent obsolète
find(/host/agent.version,,"like","beta")=1

Ce déclencheur se déclenche si l'agent Zabbix a une version bêta. L'agent Zabbix doit être mis à niveau.
Fonction : find
Élément de données : agent.version

Détecter une interface instable
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 

Ce déclencheur se déclenche si l’état opérationnel (up/down/unknown) de eth0 a changé plus de 5 fois en une heure.
Fonction : changecount
Élément de données : vfs.file.contents

Détecter un trafic entrant élevé
min(/host/net.if.in[eth0,bytes],5m)>100K

Ce déclencheur se déclenche si le nombre d’octets reçus sur eth0 au cours des cinq dernières minutes a toujours été supérieur à 100 kilo-octets. Quelqu’un est probablement en train de télécharger un fichier volumineux.
Fonction : min
Élément de données : net.if.in[eth0,bytes]

Détecter un espace disque faible
max(/host/vfs.fs.size[/,free],5m)<10G

Le déclencheur se déclenche si l’espace disque libre reste constamment (pendant 5 minutes) inférieur à 10 Go.

Vous pouvez également définir une expression de récupération :

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

Le problème est résolu uniquement lorsque l’espace disque libre reste constamment (pendant 10 minutes) supérieur à 40 Go.
Fonction : min
Élément de données : vfs.fs.size

Détecter un espace disque faible (seuil dynamique)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1

Le déclencheur se déclenche si l’espace de stockage libre (en unités d’allocation) descend en dessous de 10 pour cent. Notez que la valeur d’un autre élément est utilisée pour obtenir un seuil de déclenchement adaptatif, applicable au stockage découvert de différentes tailles. Fonction : last

Détecter une charge CPU élevée
last(/host/system.cpu.load[all,avg1])>5

Le déclencheur se déclenche lorsque la charge moyenne du processeur est supérieure à 5 pendant une minute.

Variantes :

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)

Ces déclencheurs analysent 5 minutes de données et se déclenchent uniquement si la charge CPU ne descend jamais en dessous de 2. De plus, ces déclencheurs se déclenchent :

  • uniquement pendant la nuit (00:00-06:00)
  • à tout moment sauf pendant les 2 heures du changement de semaine (dimanche, 23:00 - lundi, 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

Ce déclencheur se déclenche si la charge du processeur est trop élevée sur au moins deux des trois hôtes.
Fonctions : last, min, dayofweek, time
Élément de données : system.cpu.load

Comparer les charges CPU
avg(/Zabbix server/system.cpu.load,1h)/avg(/Zabbix server/system.cpu.load,1h:now-1d)>2

Le déclencheur se déclenche si la charge moyenne d’aujourd’hui dépasse de plus de deux fois la charge moyenne de la même heure hier (en utilisant le décalage temporel now-1d).
Fonction : avg
Élément de données : system.cpu.load

Comparer les charges CPU à long terme
trendavg(/host/system.cpu.load,1M:now/M)>1.1*trendavg(/host/system.cpu.load,1M:now/M-1M)

Ce déclencheur se déclenche si la charge CPU sur l'hôte a augmenté de plus de 10 % le mois dernier
Fonction : trendavg
Élément de données : system.cpu.load

Vous pouvez également utiliser le champ Event name dans la configuration du déclencheur pour créer un message d'alerte explicite, par exemple pour recevoir quelque chose comme

"La charge du serveur Exchange a augmenté de 24 % en juillet (0.69) par rapport à juin (0.56)"

le nom de l'événement doit être défini comme suit :

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)})

Il est également utile d'autoriser la fermeture manuelle dans la configuration du déclencheur pour ce type de problème.

Détecter une chaîne contenant des caractères spéciaux
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}

Le déclencheur se déclenche si le contenu de /tmp/hello est égal à la chaîne définie dans {$HELLO_MACRO} :

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

Vous pouvez également comparer directement à la chaîne :

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

Notez que les caractères spéciaux (\\ et ") sont échappés lorsque la chaîne est comparée directement.

Fonction : last
Élément de données : vfs.file.contents

Vous avez un exemple d’expression de déclencheur qui pourrait être utile à d’autres ? Utilisez le formulaire de suggestion d’exemple pour l’envoyer aux développeurs de Zabbix.