Uz trigeriem balstīta notikumu korelācija

Pārskats

Uz trigeriem balstīta notikumu korelācija ļauj korelēt atsevišķas problēmas, par kurām ziņo viens trigeris.

Lai gan parasti OK notikums var aizvērt visus problēmu notikumus, ko izveidojis viens trigeris, ir gadījumi, kad nepieciešama detalizētāka pieeja. Piemēram, uzraugot žurnālfailus, jūs varat vēlēties atklāt noteiktas problēmas žurnālfailā un aizvērt tās atsevišķi, nevis visas kopā.

Tā ir situācija ar trigeriem, kuriem parametrs PROBLEM event generation mode ir iestatīts uz Multiple. Šādus trigerus parasti izmanto žurnālu uzraudzībai, trap apstrādei u. c.

Zabbix ir iespējams saistīt problēmu notikumus, pamatojoties uz tagošanu. Tagi tiek izmantoti vērtību iegūšanai un problēmu notikumu identifikācijas izveidei. Izmantojot to, problēmas var arī aizvērt atsevišķi, pamatojoties uz atbilstošu tagu.

Citiem vārdiem sakot, viens un tas pats trigeris var izveidot atsevišķus notikumus, kas identificēti pēc notikuma taga. Tādējādi problēmu notikumus var identificēt pa vienam un aizvērt atsevišķi, pamatojoties uz identifikāciju pēc notikuma taga.

Kā tas darbojas

Žurnālu uzraudzībā jūs varat sastapties ar rindām, kas līdzīgas šīm:

1. rinda: Pakalpojums 1 apturēts
2. rinda: Pakalpojums 2 apturēts
3. rinda: Pakalpojums 1 tika restartēts
4. rinda: Pakalpojums 2 tika restartēts

Notikumu korelācijas ideja ir spēt sasaistīt problēmas notikumu no 1. rindas ar atrisinājumu no 3. rindas un problēmas notikumu no 2. rindas ar atrisinājumu no 4. rindas, un aizvērt šīs problēmas pa vienai:

1. rinda: Pakalpojums 1 apturēts
3. rinda: Pakalpojums 1 tika restartēts #problēma no 1. rindas aizvērta

2. rinda: Pakalpojums 2 apturēts
4. rinda: Pakalpojums 2 tika restartēts #problēma no 2. rindas aizvērta

Lai to izdarītu, jums šie saistītie notikumi ir jāmarķē, piemēram, kā "Pakalpojums 1" un "Pakalpojums 2". To var izdarīt, loga rindai piemērojot regulāro izteiksmi, lai iegūtu taga vērtību. Pēc tam, kad notikumi tiek izveidoti, tiem attiecīgi tiek piešķirti tagi "Pakalpojums 1" un "Pakalpojums 2", un problēmu var sasaistīt ar atrisinājumu.

Konfigurācija

Vienums

Lai sāktu, iespējams, vēlēsities izveidot vienumu, kas uzrauga žurnālfailu, piemēram:

log[/var/log/syslog]

Kad vienums ir izveidots, uzgaidiet minūti, līdz konfigurācijas izmaiņas tiek pārņemtas, un pēc tam dodieties uz Latest data, lai pārliecinātos, ka vienums ir sācis vākt datus.

Trigeris

Kad vienums darbotos, jums ir jākonfigurē trigeris. Ir svarīgi izlemt, kuri ieraksti žurnālfailā ir pietiekami nozīmīgi, lai tiem pievērstu uzmanību. Piemēram, šāds trigeris izteiksmes veids meklēs virkni, piemēram, 'Stopping', lai signalizētu par iespējamām problēmām:

find(/My host/log[/var/log/syslog],,"regexp","Stopping")=1 

Lai pārliecinātos, ka katra rinda, kurā ir virkne "Stopping", tiek uzskatīta par problēmu, trigeris konfigurācijā Problem event generation mode iestatiet uz 'Multiple'.

Pēc tam definējiet atkopšanas izteiksmi. Šāda atkopšanas izteiksme atrisinās visas problēmas, ja tiks atrasta žurnāla rinda, kurā ir virkne "Starting":

find(/My host/log[/var/log/syslog],,"regexp","Starting")=1 

Tā kā mēs nevēlamies, lai tā notiktu, ir svarīgi kaut kā nodrošināt, ka attiecīgās pamatproblēmas tiek aizvērtas, nevis tikai visas problēmas. Šeit var palīdzēt tagošana.

Problēmas un atrisinājumus var saskaņot, norādot tagu trigeris konfigurācijā. Jāveic šādi iestatījumi:

  • Problem event generation mode: Multiple
  • OK event closes: All problems if tag values match
  • Ievadiet taga nosaukumu notikumu saskaņošanai

  • konfigurējiet tagus, lai no žurnāla rindām iegūtu taga vērtības

Ja konfigurācija ir veiksmīga, sadaļā Monitoring > Problems varēsiet redzēt problēmu notikumus, kas ir atzīmēti pēc lietojumprogrammas un saskaņoti ar to atrisinājumu.

Tā kā ir iespējama nepareiza konfigurācija, ja līdzīgi notikumu tagi var tikt izveidoti nesaistītām problēmām, lūdzu, pārskatiet tālāk aprakstītos gadījumus!

  • Indeksētie makro vienmēr attiecas uz trigeris konfigurācijas lauku Expression, nevis uz Recovery expression. Piemēram, atkopšanas notikumā {ITEM.VALUE1} tiks aizstāts ar pirmā vienuma jaunāko vērtību problēmas izteiksmē atkopšanas brīdī. Ja atkopšanas izteiksme ir balstīta uz citu vienumu un problēmas izteiksmes vienuma vērtība līdz atkopšanas brīdim mainās, notikumiem būs atšķirīgi tagi, un tie netiks korelēt i.

  • Ja divas lietojumprogrammas raksta kļūdu un atkopšanas ziņojumus vienā un tajā pašā žurnālfailā, lietotājs var nolemt izmantot divus service tagus vienā un tajā pašā trigeris ar atšķirīgām taga vērtībām, izmantojot atsevišķas regulārās izteiksmes taga vērtībās, lai no {ITEM.VALUE} makro iegūtu, piemēram, pakalpojuma A un pakalpojuma B nosaukumus (piemēram, ja ziņojumu formāti atšķiras). Tomēr tas var nedarboties, kā plānots, ja regulārajām izteiksmēm nav atbilstības. Regulārajām izteiksmēm bez atbilstības tiks piešķirtas tukšas taga vērtības, un pietiek ar vienu tukšu taga vērtību gan problēmas, gan OK notikumos, lai tos korelētu. Tādēļ atkopšanas ziņojums no pakalpojuma A var nejauši aizvērt kļūdas ziņojumu no pakalpojuma B.

  • Faktiskie tagi un taga vērtības kļūst redzami tikai tad, kad trigeris nostrādā. Ja izmantotā regulārā izteiksme ir nederīga, tā klusi tiek aizstāta ar virkni *UNKNOWN*. Ja sākotnējais problēmas notikums ar *UNKNOWN* taga vērtību tiek palaists garām, var parādīties turpmāki OK notikumi ar to pašu *UNKNOWN* taga vērtību, kas var aizvērt problēmu notikumus, kurus tiem nevajadzēja aizvērt.

  • Ja lietotājs kā taga vērtību izmanto {ITEM.VALUE} makro bez makro funkcijām, tiek piemērots 255 rakstzīmju ierobežojums. Ja žurnāla ziņojumi ir gari un pirmās 255 rakstzīmes nav specifiskas, tas var arī radīt līdzīgus notikumu tagus nesaistītām problēmām.