Agregatieberekeningen zijn een berekend item type waarmee informatie van verschillende items door de Zabbix-server kan worden verzameld en vervolgens een aggregaat kan worden berekend, afhankelijk van de gebruikte aggregaatfunctie.
Alleen niet-ondertekende gehele getallen en drijvende komma-waarden (type informatie) worden ondersteund voor aggregerende berekeningitems.
Voor aggregatieberekeningen is geen agent nodig die op de te monitoren host draait.
Om totalen op te halen, kun je:
aggregate_function(functie(/host/sleutel,parameter),functie(/host2/sleutel2,parameter),...)
Merk op dat functie
hier een geschiedenis/trend functie moet zijn.
aggregate_function(foreach_functie(/host/sleutel?[groep="hostgroep"],tijdsperiode))
De aggregate functie is een van de ondersteunde aggregaatfuncties: gem, max, min, som, enz.
Een foreach functie (bijv. gem_foreach, tel_foreach, enz.) geeft één geaggregeerde waarde voor elk geselecteerd item. Items worden geselecteerd door de itemfilter te gebruiken (/host/sleutel?[groep="hostgroep"]
), uit itemgeschiedenis.
Als sommige van de items geen gegevens hebben voor de gevraagde periode, worden ze niet meegenomen in de berekening. Als er geen items gegevens hebben, zal de functie een fout retourneren.
Voor meer details, zie foreach functies.
Als het geaggregeerde resultaat een zwevende-komma-waarde oplevert, wordt deze afgekapt tot een geheel getal als het geaggregeerde itemtype van informatie Numeriek (ongesigneerd) is.
Een aggregatieberekening kan niet meer worden ondersteund als:
Voorbeelden van sleutels voor aggregatieberekeningen.
Totale schijfruimte van hostgroep 'MySQL Servers'.
Som van de laatste waarden van alle items die overeenkomen met net.if.in[*] op de host.
Gemiddelde processerbelasting van hostgroep 'MySQL Servers'.
Gemiddelde van 5 minuten van het aantal queries per seconde voor de hostgroep 'MySQL Servers'.
Gemiddelde CPU-belasting op alle hosts in meerdere hostgroepen die specifieke tags hebben.
avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Berekening die wordt gebruikt op de som van de meest recente itemwaarden van een hele hostgroep.
sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"]))
Het totale aantal niet-ondersteunde items in de hostgroep 'Zabbix servers'.
Expressions (including function calls) cannot be used as history, trend, or foreach function parameters. However, those functions themselves can be used in other (non-historical) function parameters.
Expression | Example |
---|---|
Valid | avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100) max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m))) |
Invalid | sum(/host/key,10+2) sum(/host/key, avg(10,2)) sum(/host/key,last(/host/key2)) |
Note that in an expression like:
it cannot be guaranteed that both parts of the equation will always have the same set of values. While one part of the expression is evaluated, a new value for the requested period may arrive and then the other part of the expression will have a different set of values.