3 Triggers

Overzicht

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:

  • de 'avg'-functie 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/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.

Calculation time

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.

Evaluatieperiode

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:

  • 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 aan "nu"
    • Als er 0 beschikbare waarden zijn voor de gespecificeerde tijdsperiode of het gespecificeerde aantal num-waarden, wordt de trigger of het berekende item dat deze functie gebruikt, niet-ondersteund

Merk op dat:

  • Als er slechts één functie (die verwijst naar de geschiedenis van gegevens) wordt gebruikt in de trigger, is "nu" altijd de laatst ontvangen waarde. Bijvoorbeeld, als de laatste waarde een uur geleden is ontvangen, wordt de evaluatieperiode beschouwd als tot de laatste waarde een uur geleden.
  • Een nieuwe trigger wordt berekend zodra de eerste waarde wordt ontvangen (geschiedenisfuncties); deze wordt berekend binnen 30 seconden voor op tijd gebaseerde functies. Hierdoor wordt de trigger berekend, zelfs als wellicht de ingestelde evaluatieperiode (bijvoorbeeld één uur) nog niet is 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 triggeruitdrukking 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 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.