1 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, iespējams, vēlēsieties noteikt konkrētas problēmas žurnālfailā un aizvērt tās atsevišķi, nevis visas kopā.
Tas attiecas uz trigeriem, kuriem parametram PROBLEM event generation mode ir iestatīta vērtība Multiple. Šādi trigeri parasti tiek izmantoti žurnālu uzraudzībai, slazdu apstrādei utt.
Zabbix ir iespējams saistīt problēmu notikumus, pamatojoties uz tagiem. Tagi tiek izmantoti, lai iegūtu vērtības un izveidotu problēmu notikumu identifikāciju. 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, kurus identificē notikuma tags. Tādēļ 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 sastapt rindas, kas ir līdzīgas šīm:
Line1: Pakalpojums 1 apstājās
Line2: Pakalpojums 2 apstājās
Line3: Pakalpojums 1 tika restartēts
Line4: Pakalpojums 2 tika restartēts
Notikumu korelācijas ideja ir spēt sasaistīt problēmas notikumu no Line1 ar atrisinājumu no Line3 un problēmas notikumu no Line2 ar atrisinājumu no Line4, un aizvērt šīs problēmas pa vienai:
Line1: Pakalpojums 1 apstājās
Line3: Pakalpojums 1 tika restartēts #problēma no Line 1 aizvērta
Line2: Pakalpojums 2 apstājās
Line4: Pakalpojums 2 tika restartēts #problēma no Line 2 aizvērta
Lai to izdarītu, jums šie saistītie notikumi ir jāmarķē, piemēram, kā "Service 1" un "Service 2". To var izdarīt, piemērojot regulāro izteiksmi žurnāla rindai, lai iegūtu birkas vērtību. Pēc tam, kad notikumi tiek izveidoti, tiem attiecīgi tiek piešķirtas birkas "Service 1" un "Service 2", un problēmu var sasaistīt ar atrisinājumu.
Konfigurācija
Vienums
Lai sāktu, iespējams, vēlēsieties iestatīt vienumu, kas uzrauga žurnālfailu, piemēram:
log[/var/log/syslog]

Kad vienums ir iestatīts, uzgaidiet minūti, līdz tiek uztvertas konfigurācijas izmaiņas, un pēc tam dodieties uz Jaunākie dati, lai pārliecinātos, ka vienums ir sācis vākt datus.
Trigeris
Kad vienums darbojas, ir jākonfigurē trigeris. Ir svarīgi izlemt, kuri ieraksti žurnālfailā ir pelnījuši uzmanību. Piemēram, šāda trigera izteiksme 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 nodrošinātu, ka katra rinda, kas satur virkni "Stopping", tiek uzskatīta par problēmu, trigera konfigurācijā iestatiet arī Problem event generation mode uz 'Multiple'.
Pēc tam definējiet atkopšanas izteiksmi. Šī atkopšanas izteiksme atrisinās visas problēmas, ja tiks atrasta žurnāla rinda, kas satur virkni "Starting":
find(/My host/log[/var/log/syslog],,"regexp","Starting")=1
Tā kā mēs to nevēlamies, ir svarīgi kaut kā nodrošināt, lai tiktu aizvērtas atbilstošās pamatproblēmas, nevis vienkārši visas problēmas. Šeit var palīdzēt marķēšana.
Problēmas un to atrisinājumus var sasaistīt, norādot birku trigera konfigurācijā. Jāveic šādi iestatījumi:
- Problem event generation mode: Multiple
- OK event closes: All problems if tag values match
- Ievadiet birkas nosaukumu notikumu saskaņošanai

- konfigurējiet birkas, lai izvilktu birku vērtības no žurnāla rindām

Ja konfigurācija ir veiksmīga, jūs varēsiet redzēt problēmu notikumus, kas marķēti pēc lietotnes un sasaistīti ar to atrisinājumu sadaļā Monitoring → Problems.

Tā kā ir iespējama nepareiza konfigurācija, kad līdzīgas notikumu birkas var tikt izveidotas nesaistītām problēmām, lūdzu, iepazīstieties ar tālāk aprakstītajiem gadījumiem!
-
Indeksētie makrosi vienmēr attiecas uz trigera konfigurācijas lauku Expression, nevis uz Recovery expression. Piemēram, atkopšanas notikumā {ITEM.VALUE1} tiks atrisināts kā pirmā vienuma jaunākā vērtība 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īgas birkas un tie netiks korelēti.
-
Ja divas lietotnes raksta kļūdu un atkopšanas ziņojumus vienā un tajā pašā žurnālfailā, lietotājs var izlemt izmantot divas service birkas vienā un tajā pašā trigerī ar atšķirīgām birku vērtībām, izmantojot atsevišķas regulārās izteiksmes birku vērtībās, lai izvilktu, piemēram, servisa A un servisa B nosaukumus no makrosa {ITEM.VALUE} (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. Neatbilstošas regulārās izteiksmes radīs tukšas birku vērtības, un ar vienu tukšu birkas vērtību gan problēmas, gan OK notikumos pietiek, lai tās korelētu. Tāpēc servisa A atkopšanas ziņojums var nejauši aizvērt servisa B kļūdas ziņojumu.
-
Faktiskās birkas un birku vērtības kļūst redzamas tikai tad, kad nostrādā trigeris. Ja izmantotā regulārā izteiksme nav derīga, tā klusi tiek aizstāta ar virkni *UNKNOWN*. Ja sākotnējais problēmas notikums ar birkas vērtību *UNKNOWN* tiek palaists garām, vēlāk var parādīties OK notikumi ar to pašu birkas vērtību *UNKNOWN*, kas var aizvērt problēmu notikumus, kurus tiem nevajadzētu aizvērt.
-
Ja lietotājs izmanto makrosu {ITEM.VALUE} bez makrosu funkcijām kā birkas vērtību, tiek piemērots 255 rakstzīmju ierobežojums. Ja žurnāla ziņojumi ir gari un pirmās 255 rakstzīmes nav specifiskas, tas arī var radīt līdzīgas notikumu birkas nesaistītām problēmām.