- 1 Esempi di trigger
- Rilevare host non disponibile
- Rilevare proxy non disponibile
- Rilevare un cluster SMTP non disponibile
- Rilevare host non raggiungibile
- Rilevare un riavvio imprevisto
- Rilevare modifiche in file importanti
- Rilevare modifiche nella query DNS
- Rilevare software non corrispondente su host diversi
- Rilevare orologi non sincronizzati
- Rilevare agent obsoleto
- Rilevare un'interfaccia instabile
- Rileva traffico in ingresso elevato
- Rilevare spazio su disco insufficiente
- Rilevare spazio su disco insufficiente (soglia dinamica)
- Rilevare un carico elevato della CPU
- Confronta i carichi della CPU
- Confrontare i carichi CPU a lungo termine
- Rilevare una stringa contenente caratteri speciali
1 Esempi di trigger
Questa pagina è una raccolta di esempi di trigger.
Gli esempi sono ordinati per caso d'uso:
- Host non disponibile
- Proxy non disponibile
- Cluster SMTP non disponibile
- Host non raggiungibile
- Riavvio imprevisto
- Modifiche nei file importanti
- Modifiche nella query DNS
- Software non corrispondente su host diversi
- Orologi non sincronizzati
- Agent obsoleto
- Interfaccia instabile
- Traffico in ingresso elevato
- Spazio su disco insufficiente
- Spazio su disco insufficiente (soglia dinamica)
- Carico CPU elevato
- Confronto del carico CPU
- Confronto del carico CPU a lungo termine
- Stringa contenente caratteri speciali
Rilevare host non disponibile
max(/host/zabbix[host,agent,available],5m)=0
Questo trigger si attiva se lo Zabbix agent sul host non è stato disponibile per 5 minuti.
Funzione: max
Item di dati: zabbix[host,agent,available]
Alternativa:
nodata(/host/agent.ping,5m)=1
Questo trigger si attiva se non sono stati ricevuti dati dallo Zabbix agent per 5 minuti.
Funzione: nodata
Item di dati: agent.ping
Rilevare proxy non disponibile
fuzzytime(/host/zabbix[proxy,{$PROXY_NAME},lastaccess],1m)=0
Questo trigger si attiva se i dati del proxy Zabbix sono in ritardo rispetto all'ora del server Zabbix di 1 minuto.
Funzione: fuzzytime
Item di dati: zabbix[proxy,{$PROXY_NAME},lastaccess]
Rilevare un cluster SMTP non disponibile
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0
Questo trigger si attiva se entrambi i server SMTP non sono disponibili.
Funzione: last
Item di dati: net.tcp.service
Rilevare host non raggiungibile
count(/host/icmpping,30m,,"0")>5
Questo trigger si attiva se l'host non è raggiungibile tramite ping per più di 5 volte negli ultimi 30 minuti.
Funzione: count
Item di dati: icmpping
Rilevare un riavvio imprevisto
change(/host/system.uptime)<0
Questo trigger si attiva se viene rilevata una variazione negativa nel valore del tempo di attività del sistema (indicando un riavvio).
Funzione: change
Item di dati: system.uptime
Rilevare modifiche in file importanti
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)
Questo trigger si attiva se /etc/passwd è stato modificato. L'espressione è vera quando il checksum precedente di /etc/passwd differisce da quello più recente. Espressioni simili possono essere utili per monitorare le modifiche in file importanti, come /etc/passwd, /etc/inetd.conf, /kernel, ecc.
Funzione: last
item di dati: vfs.file.cksum
Rilevare modifiche nella query 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}"
Notare le virgolette attorno al secondo operando.
Questo trigger si attiva se il risultato della query non è uguale a quello che normalmente restituisce:
example.com MX 0 mail.example.com
Funzione: last
Item di dati: net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], con le macro definite come segue:
{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
Rilevare software non corrispondente su host diversi
last(/host/vfs.file.contents[/etc/os-release])<>last(/host2/vfs.file.contents[/etc/os-release])
Questo trigger si attiva se la versione di Ubuntu è diversa su host differenti. Si noti che qui gli operandi sono funzioni che restituiscono stringhe.
Funzione: last
Item di dati: vfs.file.contents
Rilevare orologi non sincronizzati
fuzzytime(/host/system.localtime,10s)=0
Il trigger si attiva se l'ora locale del client e l'ora del server Zabbix differiscono di più di 10 secondi.
Funzione: fuzzytime
Item di dati: system.localtime
Si noti che system.localtime deve essere configurato come controllo passivo per Zabbix agent; in Zabbix agent 2 può essere configurato come controllo attivo.
Rilevare agent obsoleto
find(/host/agent.version,,"like","beta")=1
Questo trigger si attiva se Zabbix agent ha una versione beta. Zabbix agent deve essere aggiornato.
Funzione: find
Item di dati: agent.version
Rilevare un'interfaccia instabile
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5
Questo trigger si attiva se lo stato operativo (up/down/unknown) di eth0 è cambiato più di 5 volte in un'ora.
Funzione: changecount
Item di dati: vfs.file.contents
Rileva traffico in ingresso elevato
min(/host/net.if.in[eth0,bytes],5m)>100K
Questo trigger si attiva se il numero di byte ricevuti su eth0 negli ultimi cinque minuti è stato sempre superiore a 100 kilobyte. Probabilmente qualcuno sta scaricando un file di grandi dimensioni.
Funzione: min
Item di dati: net.if.in[eth0,bytes]
Rilevare spazio su disco insufficiente
max(/host/vfs.fs.size[/,free],5m)<10G
Il trigger si attiva se lo spazio libero su disco è costantemente (per 5 minuti) inferiore a 10 GB.
È anche possibile definire un'espressione di ripristino:
min(/host/vfs.fs.size[/,free],10m)>40G
Il problema viene risolto solo quando lo spazio libero su disco è costantemente (per 10 minuti) superiore a 40 GB.
Funzione: min
Item di dati: vfs.fs.size
Rilevare spazio su disco insufficiente (soglia dinamica)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1
Il trigger si attiva se lo spazio di archiviazione libero (in unità di allocazione) scende al di sotto del 10 percento. Si noti il valore di un altro item utilizzato per ottenere una soglia del trigger adattiva, applicabile allo spazio di archiviazione individuato di varie dimensioni.
Funzione: last
Rilevare un carico elevato della CPU
last(/host/system.cpu.load[all,avg1])>5
Il trigger si attiva quando il carico medio del processore è stato superiore a 5 per un minuto.
Varianti:
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)
Tali trigger analizzano 5 minuti di dati e si attivano solo se il carico della CPU non scende mai sotto 2. Inoltre, questi trigger si attivano:
- solo durante le ore notturne (00:00-06:00)
- in qualsiasi momento tranne che per 2 ore nel cambio di settimana (domenica, 23:00 - lunedì, 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
Questo trigger si attiva se il carico del processore è troppo elevato su almeno due dei tre host.
Funzioni: last, min, dayofweek, time
Item di dati: system.cpu.load
Confronta i carichi della CPU
avg(/Zabbix server/system.cpu.load,1h)/avg(/Zabbix server/system.cpu.load,1h:now-1d)>2
Il trigger si attiva se il carico medio di oggi supera di oltre due volte il carico medio della stessa ora di ieri (utilizzando lo spostamento temporale now-1d).
Funzione: avg
Item di dati: system.cpu.load
Confrontare i carichi CPU a lungo termine
trendavg(/host/system.cpu.load,1M:now/M)>1.1*trendavg(/host/system.cpu.load,1M:now/M-1M)
Questo trigger si attiva se il carico della CPU sul host è aumentato di oltre il 10% nell'ultimo mese
Funzione: trendavg
Item di dati: system.cpu.load
È inoltre possibile utilizzare il campo Nome evento nella configurazione del trigger per creare un messaggio di avviso significativo, ad esempio per ricevere qualcosa come
"Il carico del server Exchange è aumentato del 24% in luglio (0.69) rispetto a giugno (0.56)"
il nome dell'evento deve essere definito come:
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)})
È inoltre utile consentire la chiusura manuale nella configurazione del trigger per questo tipo di problema.
Rilevare una stringa contenente caratteri speciali
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}
Il trigger si attiva se il contenuto di /tmp/hello è uguale alla stringa definita in {$HELLO_MACRO}:
{$HELLO_MACRO} = \" //hello ?\"
In alternativa, è possibile confrontarlo direttamente con la stringa:
last(/Zabbix server/vfs.file.contents[/tmp/hello])="\\\" //hello ?\\\""
Si noti come i caratteri speciali (\\ e ") vengano sottoposti a escape quando la stringa viene confrontata direttamente.
Funzione: last
Item di dati: vfs.file.contents
Hai un esempio di espressione trigger che altri potrebbero trovare utile?
Invia il tuo esempio (includendo sia l'espressione che il contesto) utilizzando il nostro modulo di suggerimento per inviarlo agli sviluppatori di Zabbix.