1 Trigeru piemēri

Šajā lapā ir apkopoti trigeru piemēri.

Piemēri ir sakārtoti pēc lietošanas gadījuma:

Noteikt nepieejamu hostu
max(/host/zabbix[host,agent,available],5m)=0

Šis trigeris nostrādā, ja Zabbix aģents hostā ir bijis nepieejams 5 minūtes.
Funkcija: max
Datu vienums: zabbix[host,agent,available]

Alternatīva:

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

Šis trigeris nostrādā, ja no Zabbix aģenta 5 minūšu laikā nav saņemti dati.
Funkcija: nodata
Datu vienums: agent.ping

Noteikt nepieejamu starpniekserveri
fuzzytime(/host/zabbix[proxy,{$PROXY_NAME},lastaccess],1m)=0

Šis trigeris nostrādā, ja Zabbix starpniekservera dati atpaliek no Zabbix servera laika par 1 minūti.
Funkcija: fuzzytime
Datu vienums: zabbix[proxy,{$PROXY_NAME},lastaccess]

Noteikt nepieejamu SMTP klasteri
last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0

Šis trigeris nostrādā, ja abi SMTP serveri nav pieejami.
Funkcija: last
Datu vienums: net.tcp.service

Noteikt nesasniedzamu hostu
count(/host/icmpping,30m,,"0")>5

Šis trigeris nostrādā, ja hosts pēdējo 30 minūšu laikā ar ping nav sasniedzams vairāk nekā 5 reizes.
Funkcija: count
Datu vienums: icmpping

Noteikt negaidītu pārstartēšanu
change(/host/system.uptime)<0

Šis trigeris nostrādā, ja tiek konstatēta negatīva sistēmas darbības laika vērtības izmaiņa (norādot uz pārstartēšanu).
Funkcija: change
Datu vienums: system.uptime

Noteikt izmaiņas svarīgos failos
last(/host/vfs.file.cksum[/etc/passwd],#1)<>last(/host/vfs.file.cksum[/etc/passwd],#2)

Šis trigeris nostrādā, ja /etc/passwd ir mainīts. Izteiksme ir patiesa, ja iepriekšējā /etc/passwd kontrolsumma atšķiras no jaunākās. Līdzīgas izteiksmes var būt noderīgas, lai uzraudzītu izmaiņas svarīgos failos, piemēram, /etc/passwd, /etc/inetd.conf, /kernel u.c.
Funkcija: last
Datu vienums: vfs.file.cksum

DNS vaicājuma izmaiņu noteikšana
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}"

Pievērsiet uzmanību pēdiņām ap otro operandu.

Šis trigeris nostrādā, ja vaicājuma rezultāts nav vienāds ar to, ko tas parasti atgriež:

example.com           MX       0 mail.example.com

Funkcija: last
Datu vienums: net.dns.record[192.0.2.0,{$WEBSITE_NAME},{$DNS_RESOURCE_RECORD_TYPE},2,1], ar definētajiem makrosiem:

{$WEBSITE_NAME} = example.com
{$DNS_RESOURCE_RECORD_TYPE} = MX
Noteikt neatbilstošu programmatūru dažādos hostos
last(/host/vfs.file.contents[/etc/os-release])<>last(/host2/vfs.file.contents[/etc/os-release])

Šis trigeris nostrādā, ja Ubuntu versija dažādos hostos atšķiras. Ņemiet vērā, ka šeit operandi ir funkcijas, kas atgriež virknes.
Funkcija: last
Datu vienums: vfs.file.contents

Noteikt nesinhronizētus pulksteņus
fuzzytime(/host/system.localtime,10s)=0

Trigeris nostrādā, ja klienta lokālais laiks un Zabbix servera laiks atšķiras par vairāk nekā 10 sekundēm.
Funkcija: fuzzytime
Datu vienums: system.localtime

Ņemiet vērā, ka system.localtime Zabbix aģentam jākonfigurē kā pasīvā pārbaude; Zabbix aģentā 2 to var konfigurēt kā aktīvo pārbaudi.

Noteikt novecojušu aģentu
find(/host/agent.version,,"like","beta")=1

Šis trigeris nostrādā, ja Zabbix aģentam ir beta versija. Zabbix aģents ir jājaunina.
Funkcija: find
Datu vienums: agent.version

Noteikt interfeisu ar nestabilu darbību
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 

Šis trigeris nostrādā, ja eth0 darbības stāvoklis (up/down/unknown) stundas laikā ir mainījies vairāk nekā 5 reizes.
Funkcija: changecount
Datu vienums: vfs.file.contents

Noteikt lielu ienākošo datplūsmu
min(/host/net.if.in[eth0,bytes],5m)>100K

Šis trigeris nostrādā, ja saņemto baitu skaits uz eth0 pēdējo piecu minūšu laikā vienmēr bija lielāks par 100 kilobaitiem. Iespējams, kāds lejupielādē lielu failu.
Funkcija: min
Datu vienums: net.if.in[eth0,bytes]

Noteikt mazu brīvās diska vietas apjomu
max(/host/vfs.fs.size[/,free],5m)<10G

Trigeris nostrādā, ja brīvās diska vietas apjoms pastāvīgi (5 minūtes) ir mazāks par 10 GB.

Varat arī definēt atkopšanas izteiksmi:

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

Problēma tiek atrisināta tikai tad, kad brīvās diska vietas apjoms pastāvīgi (10 minūtes) pārsniedz 40 GB.
Funkcija: min
Datu vienums: vfs.fs.size

Noteikt mazu diska vietas apjomu (dinamisks slieksnis)
last(/template/hrStorageFree[{#SNMPVALUE}])<last(/template/hrStorageSize[{#SNMPVALUE}])*0.1

Trigeris nostrādā, ja brīvā krātuves vieta (piešķires vienībās) samazinās zem 10 procentiem. Ievērojiet, ka tiek izmantota cita vienuma vērtība, lai iegūtu adaptīvu trigeris slieksni, kas ir piemērojams atklātai dažāda izmēra krātuvei. Funkcija: last

Noteikt augstu CPU noslodzi
last(/host/system.cpu.load[all,avg1])>5

Šis trigeris nostrādā, ja vidējā procesora noslodze vienu minūti ir bijusi virs 5.

Variācijas:

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)

Šādi trigeri analizē 5 minūšu datus un nostrādā tikai tad, ja CPU noslodze nekad nav zemāka par 2. Papildus šie trigeri nostrādā:

  • tikai naktī (00:00-06:00)
  • jebkurā laikā, izņemot 2 stundas nedēļas maiņas laikā (svētdiena, 23:00 - pirmdiena, 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

Šis trigeris nostrādā, ja procesora noslodze ir pārāk augsta vismaz divos no trim hostiem.
Funkcijas: last, min, dayofweek, time
Datu vienums: system.cpu.load

Salīdzināt CPU slodzi
avg(/Zabbix server/system.cpu.load,1h)/avg(/Zabbix server/system.cpu.load,1h:now-1d)>2

Trigeris nostrādā, ja vidējā slodze šodien pārsniedz vidējo slodzi tajā pašā stundā vakar (izmantojot laika nobīdi now-1d) vairāk nekā divas reizes.
Funkcija: avg
Datu vienums: system.cpu.load

Salīdzināt ilgtermiņa CPU slodzes
trendavg(/host/system.cpu.load,1M:now/M)>1.1*trendavg(/host/system.cpu.load,1M:now/M-1M)

Šis trigeris nostrādā, ja CPU slodze hostā pagājušajā mēnesī palielinājās par vairāk nekā 10%
Funkcija: trendavg
Datu vienums: system.cpu.load

Varat arī izmantot lauku Notikuma nosaukums trigera konfigurācijā, lai izveidotu jēgpilnu brīdinājuma ziņojumu, piemēram, lai saņemtu kaut ko līdzīgu

"Exchange servera slodze jūlijā palielinājās par 24% (0.69), salīdzinot ar jūniju (0.56)"

notikuma nosaukums jādefinē šādi:

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

Šāda veida problēmai ir lietderīgi arī atļaut manuālu aizvēršanu trigera konfigurācijā.

Noteikt virkni, kas satur speciālās rakstzīmes
last(/host/vfs.file.contents[/tmp/hello])={$HELLO_MACRO}

Trigeris nostrādā, ja /tmp/hello saturs ir vienāds ar virkni, kas definēta {$HELLO_MACRO}:

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

Alternatīvi, varat salīdzināt ar virkni tieši:

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

Ņemiet vērā, ka speciālās rakstzīmes (\\ un ") tiek atsoļotas, kad virkne tiek salīdzināta tieši.

Funkcija: last
Datu vienums: vfs.file.contents

Vai jums ir trigeris izteiksmes piemērs, kas citiem varētu būt noderīgs?
Iesniedziet savu piemēru (iekļaujot gan izteiksmi, gan kontekstu), izmantojot mūsu ieteikumu veidlapu, lai nosūtītu to Zabbix izstrādātājiem.