14 item calculado
Visão geral
Um item calculado permite criar um cálculo com base nos valores de alguns items existentes. Por exemplo, você pode querer calcular a média horária de algum valor de item ou calcular o valor total de um grupo de items. É para isso que serve um item calculado.
Os cálculos podem usar ambos:
- valores únicos de items individuais
- um filtro complexo para selecionar vários items para agregação (veja cálculos agregados para detalhes)
Itens calculados são uma forma de criar fontes de dados virtuais. Todos os cálculos são feitos apenas pelo server do Zabbix. Os valores são calculados periodicamente com base na expressão aritmética usada.
Os dados resultantes são armazenados no banco de dados do Zabbix como em qualquer outro item; tanto os valores de histórico quanto os de tendência são armazenados e gráficos podem ser gerados.
Se o resultado do cálculo for um valor float, ele será truncado para um inteiro se o tipo de informação do item calculado for Numérico (sem sinal).
Além disso, se não houver dados recentes no cache e não houver um período de consulta definido na função, o Zabbix, por padrão, irá retroceder até uma semana no passado para consultar o banco de dados por valores históricos.
Itens calculados compartilham sua sintaxe com expressões de trigger expressions. A comparação com strings é permitida em itens calculados. Itens calculados podem ser referenciados por macros ou outras entidades da mesma forma que qualquer outro tipo de item.
Para usar itens calculados, escolha o tipo de item Calculated.
Campos configuráveis
A key é um identificador exclusivo do item (por host). Você pode criar qualquer nome de key usando os símbolos suportados.
A definição do cálculo deve ser inserida no campo Formula. Não há conexão entre a fórmula e a key. Os parâmetros da key não são usados na fórmula de forma alguma.
A sintaxe de uma fórmula simples é:
function(/host/key,<parameter1>,<parameter2>,...)
onde:
| function | Uma das funções suportadas: last, min, max, avg, count, etc |
| host | Host do item usado para o cálculo. O host atual pode ser omitido (ou seja, como em function(//key,parameter,...)). |
| key | Key do item usado para o cálculo. Items que retornam valores com o tipo de dados binário não são suportados. |
| parameter(s) | Parâmetros da função, se necessário. Sufixos de tempo e sufixos de tamanho de memória são suportados. |
Macros de usuário na fórmula serão expandidas se forem usadas para referenciar um parâmetro de função, parâmetro de filtro de item ou uma constante. Macros de usuário NÃO serão expandidas se estiverem referenciando uma função, nome de host, key de item, parâmetro da key do item ou operador.
Uma fórmula mais complexa pode usar uma combinação de funções, operadores e parênteses. Você pode usar todas as funções e operadores suportados em expressões de trigger. A lógica e a precedência dos operadores são exatamente as mesmas.
Ao contrário das expressões de trigger, o Zabbix processa items calculados de acordo com o intervalo de atualização do item, e não ao receber um novo valor.
Todos os items referenciados por funções de histórico na fórmula do item calculado devem existir e estar coletando dados. Além disso, se você alterar a key de um item referenciado, será necessário atualizar manualmente todas as fórmulas que usam essa key.
Um item calculado pode se tornar não suportado em vários casos:
- item(ns) referenciado(s)
- não é(são) encontrado(s)
- está(ão) desativado(s)
- pertence(m) a um host desativado
- não é(são) suportado(s) (exceto com a função nodata() e operadores com valores desconhecidos)
- não há dados para calcular uma função
- divisão por zero
- sintaxe incorreta usada
Exemplos de uso
Exemplo 1
Calculando a porcentagem de espaço livre em disco em '/'.
Uso da função last:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
O Zabbix usará os valores mais recentes de espaço livre e total em disco e calculará a porcentagem de acordo com a fórmula fornecida.
Exemplo 2
Calculando uma média de 10 minutos do número de valores processados pelo Zabbix.
Uso da função avg:
avg(/Zabbix Server/zabbix[wcache,values],10m)
Observe que o uso extensivo de itens calculados com períodos longos pode afetar o desempenho do Zabbix server.
Exemplo 3
Calculando a largura de banda total em eth0.
Soma de duas funções:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Exemplo 4
Calculando a porcentagem do tráfego de entrada.
Expressão mais complexa:
100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))
Veja também: Exemplos de cálculos agregados