14 item calculado

Descripción general

Un item calculado permite crear un cálculo basado en los valores de algunos items existentes. Por ejemplo, puede querer calcular el promedio por hora del valor de un item o calcular el valor total de un grupo de items. Para eso sirve un item calculado.

Los cálculos pueden utilizar:

  • valores individuales de items individuales
  • un filtro complejo para seleccionar varios items para la agregación (consulte cálculos agregados para obtener más información)

Los items calculados permiten crear fuentes de datos virtuales. Todos los cálculos son realizados únicamente por el Zabbix server y gestionados por los procesos history poller. Los valores se calculan periódicamente según la expresión utilizada.

Tenga en cuenta que los items calculados pueden acceder al historial de otros items, incluidos aquellos a los que el usuario que crea el item calculado no tiene acceso. Si no desea este comportamiento, puede deshabilitar los items calculados estableciendo el parámetro de configuración StartHistoryPollers en 0.

Los datos resultantes se almacenan en la base de datos de Zabbix como los de cualquier otro item; se almacenan tanto los valores del historial como los de las tendencias, y se pueden generar gráficos.

Si el resultado del cálculo es un valor de tipo flotante, se truncará a un entero si el tipo de información del item calculado es Numeric (unsigned).

Además, si no hay datos recientes en la caché y no se ha definido un período de consulta en la función, Zabbix consultará de forma predeterminada la base de datos en busca de valores históricos hasta una semana atrás.

Los items calculados comparten su sintaxis con las expresiones de los triggers. En los items calculados se permite la comparación con cadenas. Los items calculados pueden ser referenciados por macros u otras entidades, al igual que cualquier otro tipo de item.

Para utilizar items calculados, seleccione el tipo de item Calculated.

Campos configurables

La key es un identificador único del item (por host). Puede crear cualquier nombre de key usando los símbolos admitidos.

La definición del cálculo debe introducirse en el campo Formula. No existe ninguna conexión entre la fórmula y la key. Los parámetros de la key no se usan en la fórmula de ninguna manera.

La sintaxis de una fórmula simple es:

function(/host/key,<parameter1>,<parameter2>,...)

donde:

function Una de las funciones admitidas: last, min, max, avg, count, etc
host Host del item que se usa para el cálculo.
Se puede omitir el host actual (es decir, como en function(//key,parameter,...)).
key Key del item que se usa para el cálculo.
No se admiten items que devuelvan valores con el tipo de datos binario.
parameter(s) Parámetros de la función, si son necesarios.
Se admiten sufijos de tiempo y sufijos de tamaño de memoria.

Los macros de usuario en la fórmula se expandirán si se usan para referenciar un parámetro de función, un parámetro de filtro de item o una constante. Los macros de usuario NO se expandirán si hacen referencia a una función, nombre de host, key de item, parámetro de key de item u operador.

Una fórmula más compleja puede usar una combinación de funciones, operadores y paréntesis. Puede usar todas las funciones y operadores admitidos en las expresiones de trigger. La lógica y la precedencia de los operadores son exactamente las mismas.

A diferencia de las expresiones de trigger, Zabbix procesa los items calculados de acuerdo con el intervalo de actualización del item, no al recibir un nuevo valor.

Todos los items a los que hacen referencia las funciones de historial en la fórmula del item calculado deben existir y estar recopilando datos. Además, si cambia la key de un item referenciado, debe actualizar manualmente todas las fórmulas que usen esa key.

Un item calculado puede quedar no compatible en varios casos:

  • item(s) referenciado(s)
    • no se encuentra(n)
    • está(n) deshabilitado(s)
    • pertenece(n) a un host deshabilitado
    • no es(son) compatible(s) (excepto con la función nodata() y operadores con valores desconocidos)
  • no hay datos para calcular una función
  • división por cero
  • se usa una sintaxis incorrecta

Ejemplos de uso

Ejemplo 1

Cálculo del porcentaje de espacio libre en disco en '/'.

Uso de la función last:

100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])

Zabbix tomará los valores más recientes de los espacios en disco libre y total y calculará el porcentaje según la fórmula dada.

Ejemplo 2

Cálculo del promedio de 10 minutos del número de valores procesados por Zabbix.

Uso de la función avg:

avg(/Zabbix Server/zabbix[wcache,values],10m)

Tenga en cuenta que el uso intensivo de items calculados con períodos de tiempo largos puede afectar al rendimiento del server de Zabbix.

Ejemplo 3

Cálculo del ancho de banda total en eth0.

Suma de dos funciones:

last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Ejemplo 4

Cálculo del porcentaje de tráfico entrante.

Expresión más compleja:

100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))

Véase también: Ejemplos de cálculos agregados