3 Triggers

Overzicht

Triggers zijn logische expressies die de verzamelde gegevens van items "evalueren" en de huidige status van het systeem weergeven.

Terwijl items worden gebruikt om systeemgegevens te verzamelen, is het zeer onpraktisch om deze gegevens voortdurend te volgen en te wachten op een alarmerende of aandachtsvereiste voorwaarde. Het "evalueren" van gegevens kan worden overgelaten aan triggervoorwaarden.

Triggervoorwaarden maken het mogelijk om een drempelwaarde te definiëren voor de "acceptabele" staat van de gegevens. Daarom, als de binnenkomende gegevens de acceptabele staat overschrijden, wordt een trigger "afgevuurd" - of verandert zijn status naar PROBLEEM.

Een trigger kan de volgende status hebben:

Status Omschrijving
OK Dit is een normale triggertoestand.
Probleem Er is iets gebeurd. Bijvoorbeeld, de processorbelasting is te hoog.
Onbekend De triggerwaarde kan niet worden berekend. Zie Onbekende status.

In een eenvoudige trigger willen we mogelijk een drempelwaarde instellen voor het vijf-minuten gemiddelde van enkele gegevens, bijvoorbeeld de CPU-belasting. Dit wordt bereikt door een triggervoorwaarde te definiëren waarin:

  • de functie 'avg' wordt toegepast op de waarde die wordt ontvangen in de item-sleutel
  • een periode van vijf minuten voor evaluatie wordt gebruikt
  • een drempelwaarde van '2' wordt ingesteld
    avg(/host/sleutel,5m)>2

Deze trigger zal "afgevuurd" worden (PROBLEEM worden) als het vijf-minuten gemiddelde boven 2 is.

In een complexere trigger kan de expressie een combinatie van meerdere functies en meerdere drempelwaarden bevatten. Zie ook: Triggervoorwaarde.

Nadat een trigger is ingeschakeld (door de configuratiestatus te wijzigen van Uitgeschakeld naar Ingeschakeld), wordt de triggeruitdrukking direct geëvalueerd zodra een item erin een waarde ontvangt of wanneer de tijd is aangebroken om een op tijd gebaseerde functie te verwerken.

De meeste triggerfuncties worden geëvalueerd op basis van itemwaarde geschiedenis-gegevens, terwijl sommige triggerfuncties voor langetermijnanalyse, zoals trendavg(), trendcount(), enzovoort, trendgegevens gebruiken.

Berekeningstijd

Een trigger wordt elke keer opnieuw berekend wanneer de Zabbix-server een nieuwe waarde ontvangt die deel uitmaakt van de expressie. Wanneer een nieuwe waarde wordt ontvangen, wordt elke functie die in de expressie is opgenomen opnieuw berekend (niet alleen degene die de nieuwe waarde heeft ontvangen).

Bovendien wordt een trigger opnieuw berekend telkens wanneer een nieuwe waarde wordt ontvangen en elke 30 seconden als er tijdsafhankelijke functies in de expressie worden gebruikt.

Tijdsafhankelijke functies zijn nodata(), date(), dayofmonth(), dayofweek(), time(), now(); ze worden elke 30 seconden opnieuw berekend door het Zabbix-geschiedenissynchronisatieproces.

Triggers die alleen verwijzen naar trendfuncties worden eenmaal per de kleinste tijdsperiode in de expressie geëvalueerd. Zie ook trendfuncties.

Evaluatieperiode

Een evaluatieperiode wordt gebruikt in functies die verwijzen naar de itemgeschiedenis. Hiermee kun je het interval specificeren waarin we geïnteresseerd zijn. Het kan worden opgegeven als een tijdsperiode (30s, 10m, 1u) of als een waardebereik (#5 - voor de laatste vijf waarden).

De evaluatieperiode wordt gemeten tot "nu" - waarbij "nu" de laatste herberekeningstijd van de trigger is (zie Berekeningstijd hierboven); "nu" is niet de "nu" tijd van de server.

De evaluatieperiode specificeert het volgende:

  • Om alle waarden te overwegen tussen "nu-tijdsperiode" en "nu" (of, met tijdsverschuiving, tussen "nu-tijdsverschuiving-tijdsperiode" en "nu-tijdsverschuiving")
  • Om niet meer dan het aantal num-waarden uit het verleden te overwegen, tot "nu"
    • Als er 0 beschikbare waarden zijn voor de opgegeven tijdsperiode of num-aantal, wordt de trigger of berekend item dat deze functie gebruikt niet ondersteund

Merk op dat:

  • Als er slechts één functie (die verwijst naar de gegevensgeschiedenis) wordt gebruikt in de trigger, is "nu" altijd de meest recent ontvangen waarde. Als bijvoorbeeld de laatste waarde een uur geleden werd ontvangen, wordt de evaluatieperiode beschouwd als tot aan de meest recente waarde een uur geleden.
  • Een nieuwe trigger wordt berekend zodra de eerste waarde wordt ontvangen (geschiedenisfuncties); binnen 30 seconden zal dit worden berekend voor tijdsafhankelijke functies. Daardoor wordt de trigger berekend, ook al is misschien de ingestelde evaluatieperiode (bijvoorbeeld één uur) nog niet verstreken sinds de trigger is gemaakt. De trigger wordt ook berekend na de eerste waarde, zelfs als het evaluatiebereik is ingesteld op bijvoorbeeld de laatste tien waarden.

Onbekende status

Het is mogelijk dat een onbekende operand verschijnt in een triggervoorwaarde als:

  • een niet-ondersteund item wordt gebruikt
  • de functie-evaluatie voor een ondersteund item resulteert in een fout

In dit geval evalueert een trigger over het algemeen naar "onbekend" (hoewel er enkele uitzonderingen zijn). Voor meer details, zie Expressies met onbekende operanden.

Het is mogelijk om meldingen te ontvangen voor onbekende triggers.