#17 Revisiones Prometheus
Zabbix puede consultar las métricas expuestas en el formato de línea Prometheus.
Se requieren dos pasos para comenzar a recopilar datos de Prometheus:
https://<host de Prometheus>/metrics
Hay dos opciones de preprocesamiento de datos de Prometheus:
Se admite el procesamiento masivo de elementos dependientes. Para habilitar el almacenamiento en caché y la indexación, el preprocesamiento del patrón Prometheus debe ser el primer paso de preprocesamiento. Cuando Patrón Prometheus es el primer paso de preprocesamiento, entonces el Prometheus analizado los datos son almacenados en caché e indexados por la primera condición <etiqueta>==<valor>
en el Patrón Prometheus paso de preprocesamiento. Este caché se reutiliza al procesar otros artículos dependientes en este lote. Para un rendimiento óptimo, la primera etiqueta debe ser el que tenga más valores diferentes.
Si hay que hacer otro preprocesamiento antes del primer paso, debe ser movido al artículo maestro o a un nuevo artículo dependiente que se usaría como el artículo maestro para los artículos dependientes.
Siempre que tenga configurado el elemento maestro HTTP, debe crear un elemento dependiente que utiliza un paso de preprocesamiento de Prometheus:
Los siguientes parámetros son específicos de la opción de preprocesamiento Patrón Prometheus:
Parámetro | Descripción | Ejemplos |
---|---|---|
Patrón | Para definir el patrón de datos necesario, puede utilizar un lenguaje de consulta similar al lenguaje de consulta de Prometheus (consulte la tabla de comparación), por ejemplo: <nombre de la métrica> - seleccione por nombre de métrica {__name__="<nombre de métrica>"} - seleccione por nombre de métrica {__name__=~"<regex>"} - seleccionar por nombre de métrica que coincida con una expresión regular {<nombre de etiqueta>="<valor de etiqueta>",...} - seleccionar por nombre de etiqueta {<nombre de etiqueta>=~"<regex>" ,...} - seleccionar por nombre de etiqueta que coincida con una expresión regular {__name__=~".*"}==<valor> - seleccionar por valor métrico O un combinación de los anteriores: <nombre de métrica>{<nombre de etiqueta1>="<valor de etiqueta1>",<nombre de etiqueta2>=~"<regex>",...}==<valor> El valor de la etiqueta puede ser cualquier secuencia de caracteres UTF-8, pero los caracteres de barra invertida, comillas dobles y avance de línea deben escaparse como \\ , \" y \n respectivamente; los demás caracteres deben no se puede escapar. |
wmi_os_physical_memory_free_bytes cpu_usage_system{cpu="cpu-total"} cpu_usa ge_system{cpu=~".*"} cpu_usage_system{cpu="cpu-total",host=~".*"} *wmi _service_state{name="dhcp"}==1 wmi_os_timezone{timezone=~".*"}==1* |
Procesamiento de resultados | Especifique si desea devolver el valor, la etiqueta o aplicar la función adecuada (si el patrón coincide con varias líneas y es necesario agregar el resultado): valor: devolver el valor de la métrica (error si coinciden varias líneas) etiqueta: devuelve el valor de la etiqueta especificada en el campo Etiqueta (error si coinciden varias métricas) sum: devuelve la suma de los valores<br >min - devuelve el valor mínimo max - devuelve el valor máximo avg - devuelve el valor medio count - devuelve el recuento de valores Este campo solo está disponible para la opción Patrón Prometheus. |
Vea también ejemplos de uso de parámetros a continuación. |
Salida | Defina el nombre de la etiqueta (opcional). En este caso, se devuelve el valor correspondiente al nombre de la etiqueta. Este campo solo está disponible para la opción Patrón Prometheus, si se selecciona 'Etiqueta' en el campo Procesamiento de resultados. |
Ejemplos de uso de parámetros
/var/db
de:
node_disk_usage_bytes{ruta="/var/cache"} 2.1766144e+09
node_disk_usage_bytes{ruta="/var/db"} 20480
node_disk_usage_bytes{ruta="/var/dpkg"} 8192
node_disk_usage_bytes{ruta="/var/vacío"} 4096
utilice los siguientes parámetros:
node_disk_usage_bytes{ruta="/var/db"}
node_disk_usage_bytes
:node_disk_usage_bytes
elasticsearch_cluster_health_status{cluster="elasticsearch",color="green"} 1
elasticsearch_cluster_health_status{cluster="elasticsearch",color="red"} 0
elasticsearch_cluster_health_status{cluster="elasticsearch",color="amarillo"} 0
utilizar los siguientes parámetros:
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
El filtro (basado en el valor numérico '1') coincidirá con la fila adecuada, mientras que la etiqueta devolver la descripción del estado de salud (actualmente 'verde', pero potencialmente también 'rojo' o 'amarillo').
Los datos de Prometheus se pueden utilizar para el descubrimiento de bajo nivel. En este caso se necesitan datos en formato JSON y Prometheus to JSON La opción de preprocesamiento devolverá exactamente eso.
Para obtener más detalles, consulte Descubrimiento con Prometheus data.
La siguiente tabla enumera las diferencias y similitudes entre PromQL y lenguaje de consulta de preprocesamiento Zabbix Prometheus.
Selector de vector instantáneo PromQL | Preprocesamiento de Zabbix Prometheus | |
---|---|---|
Diferencias | ||
Objetivo de consulta | Servidor Prometheus | Texto sin formato en formato de exposición Prometheus |
Devoluciones | Vector instantáneo | Métrica o valor de etiqueta (patrón Prometheus) Matriz de métricas para valor único en JSON (Prometheus a JSON) |
Operadores de coincidencia de etiquetas | =, !=, =~, !~ | =, !=, = ~, !~ |
Expresión regular utilizada en la coincidencia de nombres de etiquetas o métricas | RE2 | PCRE |
Operadores de comparación | Consulte lista | Solo se admite == (igual) para el filtrado de valores |
Similitudes | ||
Seleccionar por nombre de métrica que sea igual a cadena | <nombre de métrica> o {__name__="<nombre de métrica>"} | <nombre de métrica> o {__nombre__="<métrica nombre>"} |
Seleccionar por nombre de métrica que coincida con la expresión regular | {__name__=~"<regex>"} | {__name__=~"<regex>"} |
Seleccionando por <nombre de etiqueta> valor que es igual a cadena | {<nombre de etiqueta>="<valor de etiqueta>",...} | {<nombre de etiqueta>="<valor de etiqueta>",...} |
Seleccionando por <nombre de etiqueta> valor que coincida con la expresión regular | {<nombre de etiqueta>=~"<regex>",...} | {<nombre de etiqueta>=~"<regex>",...} |
Seleccionando por valor que es igual a cadena | {__nombre__=~".*"} == <valor> | {__nombre__=~".*"} == <valor> |