7 Berekende items

Overzicht

Een berekend item maakt het mogelijk om een berekening te maken op basis van de waarden van enkele bestaande items. Bijvoorbeeld, je wilt mogelijk het uurlijkse gemiddelde van een bepaalde itemwaarde berekenen of de totale waarde berekenen voor een groep items. Dat is waar een berekend item voor bedoeld is.

Berekeningen kunnen zowel gebruik maken van:

  • enkele waarden van individuele items
  • een complexe filter om meerdere items te selecteren voor aggregatie (zie geaggregeerde berekeningen voor details)

Berekende items zijn een manier om virtuele gegevensbronnen te creëren. Alle berekeningen worden alleen door de Zabbix-server uitgevoerd. De waarden worden periodiek berekend op basis van de gebruikte rekenkundige expressie.

De resulterende gegevens worden opgeslagen in de Zabbix-database, net als bij elk ander item; zowel geschiedenis- als trendwaarden worden opgeslagen en grafieken kunnen worden gegenereerd.

Als het berekeningsresultaat een zwevende-komma-waarde oplevert, wordt deze afgekapt tot een geheel getal als het berekende itemtype van informatie Numeriek (ongesigneerd) is.

Berekende items delen hun syntaxis met trigger- expressies. Vergelijkingen met tekenreeksen zijn toegestaan in berekende items. Berekende items kunnen worden gerefereerd door macro's of andere entiteiten, net als elk ander itemtype.

Om berekende items te gebruiken, kies het itemtype Berekend.

Configureerbare velden

De sleutel is een unieke itemidentificatie (per host). Je kunt elke sleutelnaam maken met ondersteunde symbolen.

De berekeningsdefinitie moet worden ingevoerd in het Formule veld. Er is geen verbinding tussen de formule en de sleutel. De sleutelparameters worden op geen enkele manier gebruikt in de formule.

De syntaxis van een eenvoudige formule is:

functie(/host/sleutel,<parameter1>,<parameter2>,...)

waarbij:

functie Een van de ondersteunde functies: laatste, min, max, gem, tel, enzovoort
host Host van het item dat voor de berekening wordt gebruikt.
De huidige host kan worden weggelaten (d.w.z. zoals in functie(//sleutel,parameter,...)).
sleutel Sleutel van het item dat voor de berekening wordt gebruikt.
parameter(s) Parameters van de functie, indien vereist.

Gebruikersmacro's in de formule worden uitgebreid als ze worden gebruikt om naar een functieparameter, itemfilterparameter of een constante te verwijzen. Gebruikersmacro's worden NIET uitgebreid als ze verwijzen naar een functie, hostnaam, itemsleutel, itemsleutelparameter of operator.

Een complexere formule kan een combinatie van functies, operatoren en haakjes gebruiken. Je kunt alle functies en operatoren gebruiken die worden ondersteund in triggerexpressies. De logica en operatorprecedentie zijn precies hetzelfde.

In tegenstelling tot triggerexpressies verwerkt Zabbix berekende items op basis van het bijwerkinterval van het item, niet bij het ontvangen van een nieuwe waarde.

Alle items die worden genoemd in history functies in de formule van het berekende item moeten bestaan en gegevens verzamelen. Ook als je de itemsleutel van een genoemd item wijzigt, moet je eventuele formules die die sleutel gebruiken, handmatig bijwerken.

Een berekend item kan niet meer worden ondersteund in verschillende gevallen:

  • verwezen item(s)
    • niet gevonden wordt
    • uitgeschakeld is
    • behoort tot een uitgeschakelde host
    • niet wordt ondersteund (behalve met de functie nodata() en operatoren met onbekende waarden)
  • geen gegevens om een functie te berekenen
  • deling door nul
  • onjuiste syntaxis gebruikt

Gebruiks voorbeelden

Voorbeeld 1

Het berekenen van het percentage vrije schijfruimte op '/'.

Gebruik van de functie last:

100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])

Zabbix zal de meest recente waarden voor vrije en totale schijfruimte nemen en het percentage berekenen volgens de opgegeven formule.

Voorbeeld 2

Het berekenen van een 10-minuten gemiddelde van het aantal waarden verwerkt door Zabbix.

Gebruik van de functie avg:

avg(/Zabbix Server/zabbix[wcache,values],10m)

Let op dat het uitgebreide gebruik van berekende items met lange tijdsperiodes invloed kan hebben op de prestaties van de Zabbix-server.

Voorbeeld 3

Het berekenen van de totale bandbreedte op eth0.

Som van twee functies:

last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Voorbeeld 4

Het berekenen van het percentage binnenkomend verkeer.

Meer complexe uitdrukking:

100*last(//net.if.in[eth0,bytes])/(laatste(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))

Zie ook: Voorbeelden van aggregaatberekeningen