El preprocesamiento le permite aplicar transformaciones a los valores de los ítems recibidos antes de guardarlos en la base de datos. Estas transformaciones/pasos de preprocesamiento son realizados por el servidor Zabbix o el proxy (si los ítems son monitoreados 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 un ítem. Estos pasos se ejecutan en el orden en que se configuran.
Si un paso de preprocesamiento falla, un ítem se vuelve no soportado. 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 ítems de registro, los metadatos del registro (sin valor) siempre restablecerán el estado de ítem no soportado, haciéndolo soportado 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. La conversión al tipo de valor deseado (según se define en la configuración del ítem) 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 Agregar para seleccionar una transformación compatible.
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 Crear una métrica para obtener 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 los detalles completos sobre la misma.
Nombre | Descripción | Tipo |
---|---|---|
Expresión regular | Coincide el valor con la expresión regular y lo 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 |
Ruta JSON | Extrae el valor o fragmento de los datos JSON utilizando la funcionalidad JSONPath. | |
CSV a JSON | Convierte los datos del archivo CSV a formato JSON. | |
XML a JSON | Convierte los datos en formato XML a JSON. | |
Valor de 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 de SNMP get | Aplica opciones de formato al valor de 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 | Introduzca el código JavaScript. | Scripts personalizados |
En rango | Define un rango en el que debe estar un valor. | Validación |
Coincide con expresión regular | Especifica una expresión regular con la que debe coincidir un valor. | |
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 el valor del ítem. | |
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 del ítem correspondiente se restablece, lo que resulta en:
Haga coincidir el valor con la expresión regular y reemplácelo con la salida requerida.
Parámetros:
Comentarios:
Busque la cadena de búsqueda y reemplácela por otra (o nada).
Parámetros:
Comentarios:
Elimina los caracteres especificados del principio y del final del valor.
Elimine los caracteres especificados del final del valor.
Elimina los caracteres especificados del principio del valor.
Extraiga valor o fragmento de datos XML utilizando la funcionalidad XPath.
Comentarios:
Ejemplos:
number(/document/item/value) #will extract '10' from <document><item><value>10</value></item></document>
number(/document/item/@attribute) #will extract '10' from <document><item attribute="10"></item></document>
/document/item #will extract '<item><value>10</value></item>' from <document><item><value>10</value></item></document>
Extraiga un valor o fragmento de datos JSON usando la funcionalidad JSONPath.
Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Convierta los datos del archivo CSV al formato JSON.
Para obtener más información, consulte: Preprocesamiento de CSV a JSON.
Convierte datos en formato XML a JSON.
Para obtener más información, consulte: Reglas de serialización.
Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Extrae el valor por el OID/nombre 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, el elemento no quedará como no soportado si se selecciona la opción de descartar el valor o establecer un valor especificado.
Convierta valores SNMP a JSON.
Especifique un nombre de campo en el JSON y la ruta SNMP OID correspondiente. Los valores de los campos se completarán con los valores de la ruta OID SNMP especificada.
Comentarios:
Aplique opciones de formato al valor de obtención SNMP:
' '
se reemplaza por ':'
);Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Multiplique el valor por el valor entero o de punto flotante especificado.
Comentarios:
1e+70
; macros de usuario y macros LLD; cadenas que incluyen macros, por ejemplo, {#MACRO}e+10
, {$MACRO1}e+{$MACRO2}
. Las macros deben resolverse en un número entero o de punto flotante.Calcule la diferencia entre el valor actual y el anterior.
Comentarios:
Calcule la velocidad de cambio de valor (diferencia entre el valor actual y el anterior) por segundo.
Comentarios:
Convierta el valor del formato booleano a decimal.
Comentarios:
Convierta el valor del formato octal a decimal.
Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Convierta el valor del formato hexadecimal a decimal.
Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Ingrese el código JavaScript en el editor modal que aparece al hacer clic en el campo de parámetro o en el ícono del lápiz que está a su lado.
Comentarios:
Defina un rango en el que debe estar un valor especificando valores mínimos/máximos (inclusive).
Comentarios:
Especifique una expresión regular con la que debe coincidir un valor.
Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento falle, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Especifique una expresión regular con la que un valor no debe coincidir.
Si marca la casilla de verificación Personalizado en caso de error, 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 un paso de preprocesamiento, la métrica no dejará de ser compatible si se selecciona la opción de descartar el valor o establecer un valor específico.
Busque un mensaje de error a nivel de aplicación ubicado en JSONPath. Detenga el procesamiento si tuvo éxito y el mensaje no está vacío; de lo contrario, continúe procesando con el valor que había antes de este paso de preprocesamiento.
Comentarios:
Busque un mensaje de error a nivel de aplicación ubicado en XPath. Detenga el procesamiento si tuvo éxito y el mensaje no está vacío; de lo contrario, continúe procesando con el valor que había antes de este paso de preprocesamiento.
Comentarios:
Busque un mensaje de error a nivel de aplicación utilizando una expresión regular. Detenga el procesamiento si tuvo éxito y el mensaje no está vacío; de lo contrario, continúe procesando con el valor que había antes de este paso de preprocesamiento.
Parámetros:
Comentarios:
Comprueba si no se pudo recuperar el valor del elemento. Especifique cómo debe procesarse el fallo, basándose en la inspección del mensaje de error devuelto.
Parámetros:
Comentarios:
Descarta 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 necesarios de las métricas de Prometheus.
Consulte Comprobaciones de Prometheus para obtener más detalles.
Convierta las métricas de Prometheus requeridas a JSON.
Consulte Comprobaciones de Prometheus para obtener más detalles.
Las macros de usuario y macros de usuario con contexto están soportadas en:
El contexto de la macro se ignora cuando una macro se reemplaza con su valor. El valor de la macro se inserta en el código tal cual, no es posible agregar escape adicional antes de colocar el valor en el código JavaScript. Tenga en cuenta que esto puede provocar errores de JavaScript en algunos casos.
Consulte pruebas de preprocesamiento.