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:
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:
Merk op dat:
Het is mogelijk dat een onbekende operand verschijnt in een triggervoorwaarde als:
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.