17 Revisiones Prometheus
Visión general
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:
- un elemento maestro HTTP apuntando
al punto final de datos adecuado, p.
https://<host de Prometheus>/metrics - elementos dependientes que utilizan una opción de preprocesamiento de Prometheus para consultar datos requeridos de las métricas recopiladas por el elemento maestro
Hay dos opciones de preprocesamiento de datos de Prometheus:
- Patrón de Prometheus - utilizado en elementos normales para consultar datos de Prometheus
- Prometheus a JSON - utilizado en artículos normales y para bajo nivel descubrimiento. En este caso, los datos de Prometheus consultados se devuelven en un formato JSON.
Procesamiento masivo
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.
Configuración
Siempre que tenga configurado el elemento maestro HTTP, debe crear un elemento dependiente que utiliza un paso de preprocesamiento de Prometheus:
- Ingrese los parámetros generales del elemento dependiente en el formulario de configuración
- Ir a la pestaña Preprocesamiento
- Seleccione una opción de preprocesamiento de Prometheus (patrón de Prometheus o Prometeo a JSON)

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
- El caso de uso más común es devolver el valor. Regresar
el valor de
/var/dbde:
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:
- Patrón -
node_disk_usage_bytes{ruta="/var/db"} - Procesamiento de resultados - seleccione 'valor'
- También te puede interesar el valor promedio de todos
Parámetros
node_disk_usage_bytes:
- Patrón -
node_disk_usage_bytes - Procesamiento de resultados - seleccione 'promedio'
- Si bien Prometheus solo admite datos numéricos, es popular usar un solución alternativa que permite devolver la descripción textual relevante también. Esto se puede lograr con un filtro y especificando la etiqueta. Entonces, a devolver el valor de la etiqueta 'color' de
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:
- Patrón -
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1 - Procesamiento de resultados - seleccione 'etiqueta'
- Etiqueta - especificar 'color'
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').
Prometheus a JSON
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.
Comparación de lenguaje de consulta
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> |