1 Càlculs agregats

Vista general

Els càlculs agregats són de tipus element calculat i permeten la recollida informació de diversos elements per el servidor Zabbix i calcular un agregat, segons la funció d'agregat emprada.

Els càlculs agregats no necessiten cap agent executant-se a l'equip monitorat.

Sintaxi

Per recuperar agregats, empreu una de les funcions afegides: avg, max, min, sum, etc. Tot seguit, afegiu la funció foreach com a únic paràmetre i el seu filtre d'elements per triar els elements necessaris:

aggregate_function(function_foreach(/host/key?[group="grup d'equips"],timeperiod))

Una funció foreach (per exemple, avg_foreach, count_foreach, etc.) retorna un valor agregat per a cada element seleccionat. Els elements es trien mitjançant el filtre d'elements (/host/key?[group="grup d'equips"]), de l'historial d'elements. Per a més detalls, veieu les funcions foreach.

Si alguns dels elements no tenen dades per al període triat, s'ignoren en el càlcul. Si no hi ha dades dels elements, la funció retornarà un error.

Alternativament, podeu enumerar diversos elements com a paràmetres per a l'agregació:

aggregate_function(function(/host/key,parameter),function(/host2/key2,parameter),...)

Tingueu en compte que la "funció" aquí ha d'ésser una funció d'historial/tendència.

Si l'agregat dóna com a resultat un valor flotant, s'escurçarà a un nombre enter si el tipus d'informació d'element agregat és Numèric (sense signe).

Un càlcul agregat pot no ser compatible si:

  • no es troba cap dels elements referenciats (cosa que pot passar si la clau de l'element és incorrecta, no existeix cap dels elements o tots els grups inclosos són incorrectes)
  • No hi ha dades per calcular una funció

Exemples d'ús

Exemples de claus per als càlculs agregats.

Exemple 1

Espai total de disc del grup d'equips 'MySQL Servers'.

sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
Exemple 2

Suma dels darrers valors de tots els elements que corresponen a net.if.in[*] sota l'equip.

sum(last_foreach(/host/net.if.in[*]))
Exemple 3

Càrrega mitjana de processador del grup d'equips 'MySQL Servers'.

avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"]))
Exemple 4

Mitjana de 5 minuts del nombre de peticions per segon del grup d'equips 'MySQL Servers'.

avg(avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m))
Exemple 5

Càrrega mitjana de CPU de tots els equips a diversos grups d'equips que tenen unes etiquetes concretes.

avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Exemple 6

Càlcul emprat sota les darreres sumes de valor d'element d'un grup d'equips sencer.

sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"])) 
Exemple 7

Nombre total d'elements no admesos al grup d'equips 'Zabbix servers'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))
Exemples de sintaxi correcta/incorrecta

Les expressions (incloses les crides a funcions) no es poden pas emprar com a paràmetres d'històric, de tendència o de la funció foreach. Tanmateix, les pròpies funcions poden emprar-se dins d'altres paràmetres de funció (no històriques).

Expressió Exemple
Vàlid 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)))
No vàlid sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Veieu que en una expressió com ara:

sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))

no es pot garantir que les dues parts de l'equació tinguin sempre el mateix conjunt de valors. Mentre una part de l'expressió és avaluada, pota arribar un valor nou per al període demanat, i llavors l'altra part de l'expressió tindrà un conjunt de valors diferent.