Triggers zijn logische uitdrukkingen die gegevens verzameld door items "evalueren" en de huidige systeemstatus weergeven.
Terwijl items worden gebruikt om systeemgegevens te verzamelen, is het zeer onpraktisch om deze gegevens constant te volgen en te wachten op een alarmerende of aandachtsvereiste toestand. Het evalueren van gegevens kan worden overgelaten aan triggeruitdrukkingen.
Triggeruitdrukkingen stellen je in staat om een drempelwaarde te definiëren voor wat als "acceptabele" gegevenstoestand wordt beschouwd. Daarom, als de binnenkomende gegevens de acceptabele toestand overschrijden, wordt een trigger "geactiveerd" - of verandert zijn status in PROBLEEM.
Een trigger kan de volgende status hebben:
Status | Beschrijving |
---|---|
OK | Dit is een normale triggerstatus. |
Probleem | Er is iets gebeurd. Bijvoorbeeld, de belasting van de processor is te hoog. |
Onbekend | De triggerwaarde kan niet worden berekend. Zie Onbekende status. |
In een eenvoudige trigger willen we mogelijk een drempelwaarde instellen voor een vijf-minuten gemiddelde van bepaalde gegevens, bijvoorbeeld de CPU-belasting. Dit wordt bereikt door een triggeruitdrukking te definiëren waarin:
avg(/host/Key,5m)>2
Deze trigger wordt "geactiveerd" (wordt PROBLEEM) als het vijf-minuten gemiddelde boven 2 ligt.
In een meer complexe trigger kan de uitdrukking een combinatie van meerdere functies en meerdere drempelwaarden bevatten. Zie ook: Triggeruitdrukking.
After enabling a trigger (changing its configuration status from Disabled to Enabled), the trigger expression is evaluated as soon as an item in it receives a value or the time to handle a time-based function comes.
Most trigger functions are evaluated based on item value history data, while some trigger functions for long-term analytics, e.g. trendavg(), trendcount(), etc, use trend data.
A trigger is recalculated every time Zabbix server receives a new value that is part of the expression. When a new value is received, each function that is included in the expression is recalculated (not just the one that received the new value).
Additionally, a trigger is recalculated each time when a new value is received and every 30 seconds if time-based functions are used in the expression.
Time-based functions are nodata(), date(), dayofmonth(), dayofweek(), time(), now(); they are recalculated every 30 seconds by the Zabbix history syncer process.
Triggers that reference trend functions only are evaluated once per the smallest time period in the expression. See also trend functions.
Een evaluatieperiode wordt gebruikt in functies die verwijzen naar de geschiedenis van het item. Het maakt het mogelijk om het interval te specificeren waarin we geïnteresseerd zijn. Het kan worden gespecificeerd als 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 specificieert het volgende:
Merk op dat:
Het is mogelijk dat een onbekende operand verschijnt in een triggeruitdrukking als:
In dit geval evalueert een trigger over het algemeen als "onbekend" (hoewel er enkele uitzonderingen zijn). Voor meer details, zie Uitdrukkingen met onbekende operanden.
Het is mogelijk om meldingen te ontvangen over onbekende triggers.