14 item calculado
Visão geral
Um item calculado permite criar um cálculo com base nos valores de alguns itens existentes. Por exemplo, você pode querer calcular a média horária de um determinado valor de item ou calcular o valor total de um grupo de itens. Essa é a finalidade de um item calculado.
Os cálculos podem usar:
- valores individuais de itens
- um filtro complexo para selecionar vários itens para agregação (consulte cálculos agregados para obter detalhes)
Os itens calculados são uma forma de criar fontes de dados virtuais. Todos os cálculos são realizados somente pelo Zabbix server. Os valores são calculados periodicamente com base na expressão aritmética utilizada.
Os dados resultantes são armazenados no banco de dados do Zabbix, como ocorre com qualquer outro item; tanto os valores de histórico quanto os valores de tendência são armazenados, e gráficos podem ser gerados.
Se o resultado do cálculo for um valor de ponto flutuante, ele será convertido para um número 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, retrocederá até uma semana no passado para consultar o banco de dados em busca de valores históricos.
Os itens calculados compartilham sua sintaxe com as expressões de trigger. A comparação com strings é permitida em itens calculados. Os itens calculados podem ser referenciados por macros ou por outras entidades, assim como qualquer outro tipo de item.
Para usar itens calculados, selecione o tipo de item Calculado.
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