1 Збирни прорачуни

Преглед

Збирни прорачуни су тип израчуната ставка који омогућава прикупљање информација из неколико ставки од стране Zabbix сервера и затим израчунавање агрегата, у зависности од коришћене агрегатне функције.

Агрегатни прорачуни не захтевају никакве агент који ради на домаћину који се надгледа.

Синтакса

Да бисте преузели агрегате, користите једну од подржаних функција агрегата: avg, max, min, sum, итд. Затим додајте ** foreach** функционише као једини параметар и његов филтер ставки за одабир потребних ставки:

aggregate_function(function_foreach(/host/key?[group="host group"],timeperiod))

** foreach** функција (нпр. * avg_foreach, count_foreach*, итд.) враћа једну агрегатну вредност за сваки изабрани предмет. Ставке се бирају помоћу филтера ставки (/host/key?[group="host group"]), из историје ставки. За више детаља погледајте foreach функције.

Ако неке од ставки немају податке за тражени период, оне се занемарују у прорачуну. Ако ниједна ставка нема податке, функција ће вратити грешку.

Алтернативно, можете навести неколико ставки као параметре за агрегацију:

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

Имајте на уму да функција овде мора бити функција историје/тренда.

Ако агрегат резултира флоат вредношћу, биће скраћен на цео број ако агрегирани тип информација је Numeric(unsigned).

Кориснички макрои и макрои за откривање ниског нивоа су подржани у:

  • параметрима кључа ставке
  • параметрима функције
  • услови филтера (име групе домаћина и назив ознаке)
  • константе израза

Збирни прорачун може постати неподржан ако:

  • није пронађена ниједна од наведених ставки (што се може догодити ако је кључ ставке нетачан, ниједна од ставки не постоји или су све укључене групе нетачне)
  • нема података за израчунавање функције

Примери употребе

Примери кључева за агрегатне прорачуне.

Пример 1

Укупан простор на диску групе хостова 'MySQL Servers'.

sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
Пример 2

Збир последњих вредности свих ставки које одговарају net.if.in[*] на домаћину.

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

Пример 3

Просечно оптерећење процесора групе хостова 'MySQL Servers'.

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

Пример 4

5-минутни просек броја упита у секунди за групу домаћина 'MySQL Servers'.

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

Пример 5

Просечно оптерећење CPU-а на свим домаћинима у више група домаћина које имају специфичне ознаке.

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

Пример 6

Израчунавање се користи за збир вредности последње ставке целе групе домаћина.

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

Пример 7

Укупан број неподржаних ставки у групи домаћина 'Zabbix сервери'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))

Примери исправне/нетачне синтаксе

Изрази (укључујући позиве функција) не могу да се користе као параметри историје, тренда или фореацх функција. Међутим, саме те функције могу се користити у другим (неисторијским) параметрима функције.

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))

Имајте на уму да у изразу као што је:

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

не може се гарантовати да ће оба дела једначине увек имати исти скуп вредности. Док се процењује један део израза, може доћи до нове вредности за тражени период и тада ће други део израза имати другачији скуп вредности.