El preprocesamiento le permite aplicar transformaciones a los valores de las métricas recibidas antes de guardarlos en la base de datos. Estas transformaciones/pasos de preprocesamiento son realizados por el servidor Zabbix o el proxy (si las métricas son monitorizadas por un proxy).
Esta función admite una variedad de casos de uso, tales como:
Se pueden configurar uno o más pasos de preprocesamiento para una métrica. Estos pasos se ejecutan en el orden en que se configuran.
Si un paso de preprocesamiento falla, una métrica se vuelve no soportada. Esto se puede evitar mediante el manejo de errores Personalizado en caso de fallo (disponible para la mayoría de las transformaciones), lo que le permite descartar valores o establecer valores personalizados.
Para las métricas de registro, los metadatos del registro (sin valor) siempre restablecerán el estado de métrica no soportada, haciéndola soportada nuevamente. Esto ocurre incluso si el error inicial se produjo después de recibir un valor de registro del agente.
Todos los valores pasados al preprocesamiento se tratan inicialmente como cadenas de texto. La conversión al tipo de valor deseado (según lo definido en la configuración de la métrica) se realiza al final de la cadena de preprocesamiento. Sin embargo, pasos de preprocesamiento específicos pueden activar conversiones anteriores, si es necesario. Para información técnica detallada, consulte Detalles del preprocesamiento.
Para asegurarse de que su configuración de preprocesamiento funciona como espera, puede probarla.
Consulte también: Ejemplos de preprocesamiento
Los pasos de preprocesamiento se definen en la pestaña Preprocesamiento del formulario de configuración de la métrica.
Haga clic en Añadir para seleccionar una transformación soportada.
El campo Tipo de información se muestra en la parte inferior de la pestaña cuando se define al menos un paso de preprocesamiento. Si es necesario, es posible cambiar el tipo de información sin salir de la pestaña Preprocesamiento. Consulte Creando una métrica para una descripción detallada de los parámetros.
Todas las transformaciones compatibles se enumeran a continuación. Haga clic en el nombre de la transformación para ver todos los detalles sobre ella.
Nombre | Descripción | Tipo |
---|---|---|
Expresión regular | Coincide el valor con la expresión regular y reemplaza con la salida requerida. | Texto |
Reemplazar | Busca la cadena de búsqueda y la reemplaza por otra (o nada). | |
Recortar | Elimina los caracteres especificados del principio y final del valor. | |
Recorte derecho | Elimina los caracteres especificados del final del valor. | |
Recorte izquierdo | Elimina los caracteres especificados del principio del valor. | |
XML XPath | Extrae el valor o fragmento de los datos XML utilizando la funcionalidad XPath. | Datos estructurados |
JSON Path | Extrae el valor o fragmento de los datos JSON utilizando la funcionalidad JSONPath. | |
CSV a JSON | Convierte los datos de un archivo CSV a formato JSON. | |
XML a JSON | Convierte los datos en formato XML a JSON. | |
Valor SNMP walk | Extrae el valor por el OID/nombre MIB especificado y aplica opciones de formato. | SNMP |
SNMP walk a JSON | Convierte los valores SNMP a JSON. | |
Valor SNMP get | Aplica opciones de formato al valor SNMP get. | |
Multiplicador personalizado | Multiplica el valor por el valor entero o de punto flotante especificado. | Aritmética |
Cambio simple | Calcula la diferencia entre el valor actual y el anterior. | Cambio |
Cambio por segundo | Calcula la velocidad de cambio del valor (diferencia entre el valor actual y el anterior) por segundo. | |
Booleano a decimal | Convierte el valor de formato booleano a decimal. | Sistemas numéricos |
Octal a decimal | Convierte el valor de formato octal a decimal. | |
Hexadecimal a decimal | Convierte el valor de formato hexadecimal a decimal. | |
JavaScript | Introduce código JavaScript. | Scripts personalizados |
En rango | Define un rango en el que un valor debe estar. | Validación |
Coincide con expresión regular | Especifica una expresión regular con la que un valor debe coincidir. | |
No coincide con expresión regular | Especifica una expresión regular con la que un valor no debe coincidir. | |
Comprobar error en JSON | Comprueba un mensaje de error a nivel de aplicación ubicado en JSONPath. | |
Comprobar error en XML | Comprueba un mensaje de error a nivel de aplicación ubicado en XPath. | |
Comprobar error usando una expresión regular | Comprueba un mensaje de error a nivel de aplicación usando una expresión regular. | |
Comprobar valor no soportado | Comprueba si no se pudo recuperar ningún valor de la métrica. | |
Descartar sin cambios | Descarta un valor si no ha cambiado. | Limitación |
Descartar sin cambios con latido | Descarta un valor si no ha cambiado dentro del período de tiempo definido. | |
Patrón Prometheus | Utiliza la siguiente consulta para extraer los datos requeridos de las métricas de Prometheus. | Prometheus |
Prometheus a JSON | Convierte las métricas de Prometheus requeridas a JSON. |
Tenga en cuenta que para los pasos de preprocesamiento Cambio y Limitación, Zabbix debe recordar el último valor para calcular/comparar el nuevo valor según sea necesario. Estos valores anteriores son gestionados por el gestor de preprocesamiento. Si el servidor o proxy de Zabbix se reinicia o se realiza algún cambio en los pasos de preprocesamiento, el último valor de la métrica correspondiente se restablece, lo que resulta en:
Coincide el valor con la expresión regular y reemplaza con la salida requerida.
Parámetros:
Comentarios:
Busca la cadena de búsqueda y la reemplaza por otra (o por nada).
Parámetros:
Comentarios:
Elimina los caracteres especificados del principio y final del valor.
Elimina los caracteres especificados del final del valor.
Elimina los caracteres especificados del principio del valor.
Extraer valor o fragmento de datos XML utilizando la funcionalidad XPath.
Comentarios:
Ejemplos:
number(/document/item/value) #extraerá '10' de <document><item><value>10</value></item></document>
number(/document/item/@attribute) #extraerá '10' de <document><item attribute="10"></item></document>
/document/item #extraerá '<item><value>10</value></item>' de <document><item><value>10</value></item></document>
Extrae un valor o fragmento de datos JSON utilizando la funcionalidad JSONPath.
Si marca la casilla Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle el paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Convierte los datos de un archivo CSV en formato JSON.
Para más información, consulte: Preprocesamiento CSV a JSON.
Convierte datos en formato XML a JSON.
Para más información, consulte: Reglas de serialización.
Si marca la casilla Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle el paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Extrae el valor por el OID/nombre de MIB especificado y aplica opciones de formato:
' '
se reemplazan por ':'
);Si marca la casilla Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle un paso de preprocesamiento, la métrica no se volverá no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Convierte valores SNMP a JSON.
Especifique un nombre de campo en el JSON y la ruta OID SNMP correspondiente. Los valores de los campos se rellenarán con los valores en la ruta OID SNMP especificada.
Comentarios:
Aplicar opciones de formato al valor SNMP get:
' '
se reemplazan por ':'
);Si marca la casilla Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle un paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Multiplica el valor por el valor entero o de coma flotante especificado.
Comentarios:
1e+70
; macros de usuario y macros LLD; cadenas que incluyan macros, por ejemplo, {#MACRO}e+10
, {$MACRO1}e+{$MACRO2}
. Las macros deben resolverse en un número entero o de coma flotante.Calcula la diferencia entre el valor actual y el anterior.
Comentarios:
Calcula la velocidad de cambio del valor (diferencia entre el valor actual y el anterior) por segundo.
Comentarios:
Convierte el valor de formato booleano a decimal.
Comentarios:
Convierte el valor de formato octal a decimal.
Si marca la casilla Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle el paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Convierte el valor de formato hexadecimal a decimal.
Si marca la casilla Personalizado en caso de fallo, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor específico o establecer un mensaje de error específico. En caso de que falle el paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor específico.
Introduzca el código JavaScript en el editor modal que se abre al hacer clic en el campo del parámetro o en el icono de lápiz junto a él.
Comentarios:
Defina un rango en el que un valor debe estar especificando los valores mínimo/máximo (inclusive).
Comentarios:
Especifique una expresión regular con la que un valor debe coincidir.
Si marca la casilla Personalizado en caso de fallo, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle el paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Especifique una expresión regular que un valor no debe coincidir.
Si marca la casilla Personalizado en caso de error, es posible especificar opciones personalizadas de manejo de errores: descartar el valor, establecer un valor especificado o establecer un mensaje de error especificado. En caso de que falle un paso de preprocesamiento, la métrica no quedará como no soportada si se selecciona la opción de descartar el valor o establecer un valor especificado.
Comprueba si existe un mensaje de error a nivel de aplicación ubicado en JSONPath. Detiene el procesamiento si tiene éxito y el mensaje no está vacío; de lo contrario, continúa procesando con el valor que tenía antes de este paso de preprocesamiento.
Comentarios:
Comprueba si hay un mensaje de error a nivel de aplicación localizado en XPath. Detiene el procesamiento si tiene éxito y el mensaje no está vacío; de lo contrario, continúa procesando con el valor que tenía antes de este paso de preprocesamiento.
Comentarios:
Comprueba un mensaje de error a nivel de aplicación utilizando una expresión regular. Detiene el procesamiento si tiene éxito y el mensaje no está vacío; de lo contrario, continúa procesando con el valor que tenía antes de este paso de preprocesamiento.
Parámetros:
Comentarios:
Comprueba si no se pudo recuperar el valor de la métrica. Especifique cómo debe procesarse el fallo, basándose en la inspección del mensaje de error devuelto.
Parámetros:
Comentarios:
Descartar un valor si no ha cambiado.
Comentarios:
Descarta un valor si no ha cambiado dentro del período de tiempo definido (en segundos).
Comentarios:
Utilice la siguiente consulta para extraer los datos requeridos de las métricas de Prometheus.
Consulte Comprobaciones de Prometheus para más detalles.
Convierte las métricas de Prometheus requeridas a JSON.
Consulta Comprobaciones de Prometheus para más detalles.
Se admiten macros de usuario y macros de usuario con contexto en:
El contexto de la macro se ignora cuando una macro se reemplaza por su valor. El valor de la macro se inserta en el código tal cual, no es posible añadir un escape adicional antes de colocar el valor en el código JavaScript. Tenga en cuenta que esto puede causar errores de JavaScript en algunos casos.
Consulte pruebas de preprocesamiento.