Os cálculos agregados são um tipo de item calculado que permite coletar informações de vários items pelo servidor Zabbix e, em seguida, calcular um agregado, dependendo da função agregada utilizada.
Os cálculos agregados não exigem que nenhum agent esteja em execução no host monitorado.
Para recuperar agregados, use uma das funções de agregação suportadas: avg, max, min, sum, etc. Em seguida, adicione a função foreach como o único parâmetro e seu filtro de item para selecionar os itens necessários:
Uma função foreach (por exemplo, avg_foreach, count_foreach, etc.) retorna um valor agregado para cada item selecionado. Os itens são selecionados usando o filtro de item (/host/key?[group="host group"]), a partir do histórico do item. Para mais detalhes, consulte funções foreach.
Se alguns dos itens não tiverem dados para o período solicitado, eles serão ignorados no cálculo. Se nenhum item tiver dados, a função retornará um erro.
Alternativamente, você pode listar vários itens como parâmetros para agregação:
Observe que function aqui deve ser uma função de histórico/tendência.
Se o agregado resultar em um valor float, ele será convertido para inteiro se o tipo de informação do item agregado for Numérico (sem sinal).
Macros de usuário e macros de descoberta de baixo nível são suportadas em:
Um cálculo agregado pode se tornar não suportado se:
Exemplos de chaves para cálculos agregados.
Espaço total em disco do grupo de hosts 'MySQL Servers'.
Soma dos valores mais recentes de todos os items que correspondem a net.if.in[*] no host.
Carga média do processador do grupo de hosts 'MySQL Servers'.
Média de 5 minutos do número de consultas por segundo para o grupo de hosts 'MySQL Servers'.
Carga média da CPU em todos os hosts em vários grupos de hosts que possuem as tags específicas.
avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))Cálculo usado nas somas dos valores mais recentes dos items de todo um grupo de hosts.
sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"]))O número total de items não suportados no grupo de hosts 'Zabbix servers'.
Expressões (incluindo chamadas de função) não podem ser usadas como parâmetros de funções de histórico, tendência ou foreach function. No entanto, essas funções podem ser usadas em outros parâmetros de função (não históricos).
| Expressão | Exemplo |
|---|---|
| Válido | 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))) |
| Inválido | sum(/host/key,10+2)sum(/host/key, avg(10,2))sum(/host/key,last(/host/key2)) |
Observe que, em uma expressão como:
não é possível garantir que ambas as partes da equação sempre terão o mesmo conjunto de valores. Enquanto uma parte da expressão está sendo avaliada, um novo valor para o período solicitado pode chegar e, então, a outra parte da expressão terá um conjunto diferente de valores.