Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

17 Comprobaciones de Prometheus

Descripción general

Zabbix puede consultar métricas expuestas en el formato de línea de Prometheus.

Se requieren dos pasos para comenzar a recopilar datos de Prometheus:

  • una métrica principal HTTP que apunte al endpoint de datos apropiado, por ejemplo, https://<prometheus host>/metrics
  • métricas dependientes que utilicen una opción de preprocesamiento de Prometheus para consultar los datos requeridos de las métricas recopiladas por la métrica principal

Existen dos opciones de preprocesamiento de datos de Prometheus:

  • Patrón de Prometheus - se utiliza en métricas normales para consultar datos de Prometheus
  • Prometheus a JSON - se utiliza en métricas normales y para el descubrimiento de bajo nivel. En este caso, los datos consultados de Prometheus se devuelven en formato JSON.
Procesamiento por lotes

El procesamiento por lotes es compatible con las métricas dependientes. Para habilitar el almacenamiento en caché y la indexación, el preprocesamiento Patrón Prometheus debe ser el primer paso de preprocesamiento. Cuando Patrón Prometheus es el primer paso de preprocesamiento, los datos Prometheus analizados se almacenan en caché y se indexan por la primera condición <etiqueta>==<valor> en el paso de preprocesamiento Patrón Prometheus. Esta caché se reutiliza al procesar otras métricas dependientes en este lote. Para un rendimiento óptimo, la primera etiqueta debe ser la que tenga más valores diferentes.

Si hay otro preprocesamiento que deba realizarse antes del primer paso, debe trasladarse al elemento principal o a una nueva métrica dependiente que se utilizaría como métrica principal para las métricas dependientes.

Configuración

Siempre que tenga configurada la métrica principal HTTP, debe crear una métrica dependiente que utilice un paso de preprocesamiento Prometheus:

  • Introduzca los parámetros generales de la métrica dependiente en el formulario de configuración
  • Vaya a la pestaña Preprocesamiento
  • Seleccione una opción de preprocesamiento Prometheus (Patrón Prometheus o Prometheus 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 requerido puede utilizar un lenguaje de consulta similar al lenguaje de consulta de Prometheus (ver tabla comparativa), por ejemplo:
<nombre de la métrica> - seleccionar por nombre de métrica
{__name__="<nombre de la métrica>"} - seleccionar por nombre de métrica
{__name__=~"<expresión regular>"} - seleccionar por nombre de métrica que coincida con una expresión regular
{<nombre de la etiqueta>="<valor de la etiqueta>",...} - seleccionar por nombre de etiqueta
{<nombre de la etiqueta>=~"<expresión regular>",...} - seleccionar por nombre de etiqueta que coincida con una expresión regular
{__name__=~".*"}==<valor> - seleccionar por valor de métrica
O una combinación de lo anterior:
<nombre de la métrica>{<nombreEtiqueta1>="<valorEtiqueta1>",<nombreEtiqueta2>=~"<expresión regular>",...}==<valor>

El valor de la etiqueta puede ser cualquier secuencia de caracteres UTF-8, pero los caracteres barra invertida, comillas dobles y salto de línea deben escaparse como \\, \" y \n respectivamente; otros caracteres no deben escaparse.
wmi_os_physical_memory_free_bytes
cpu_usage_system{cpu="cpu-total"}
cpu_usage_system{cpu=~".*"}
cpu_usage_system{cpu="cpu-total",host=~".*"}
wmi_service_state{name="dhcp"}==1
wmi_os_timezone{timezone=~".*"}==1
Procesamiento del resultado Especifique si desea devolver el valor, la etiqueta o aplicar la función apropiada (si el patrón coincide con varias líneas y el resultado necesita ser agregado):
valor - devuelve el valor de la métrica (error si se encuentran varias líneas)
etiqueta - devuelve el valor de la etiqueta especificada en el campo Etiqueta (error si se encuentran varias métricas)
suma - devuelve la suma de los valores
mín - devuelve el valor mínimo
máx - devuelve el valor máximo
prom - devuelve el valor promedio
cuenta - devuelve el número de valores
Este campo solo está disponible para la opción Patrón Prometheus.
Consulte también los 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 del resultado.

Ejemplos de uso de parámetros

  1. El caso de uso más común es devolver el valor. Para devolver el valor de /var/db de:

node_disk_usage_bytes{path="/var/cache"} 2.1766144e+09
node_disk_usage_bytes{path="/var/db"} 20480
node_disk_usage_bytes{path="/var/dpkg"} 8192
node_disk_usage_bytes{path="/var/empty"} 4096

utilice los siguientes parámetros:

  • Patrón - node_disk_usage_bytes{path="/var/db"}
  • Procesamiento del resultado - seleccione 'valor'
  1. También puede estar interesado en el valor promedio de todos los parámetros node_disk_usage_bytes:
  • Patrón - node_disk_usage_bytes
  • Procesamiento del resultado - seleccione 'prom'
  1. Aunque Prometheus solo admite datos numéricos, es común utilizar una solución alternativa que permita devolver también la descripción textual relevante. Esto se puede lograr con un filtro y especificando la etiqueta. Así, para 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="yellow"} 0

utilice los siguientes parámetros:

  • Patrón - elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
  • Procesamiento del resultado - seleccione 'etiqueta'
  • Etiqueta - especifique 'color'

El filtro (basado en el valor numérico '1') coincidirá con la fila apropiada, mientras que la etiqueta devolverá la descripción del estado de salud (actualmente 'green'; pero potencialmente también 'red' o 'yellow').

Prometheus a JSON

Los datos de Prometheus pueden utilizarse para el descubrimiento de bajo nivel. En este caso, se necesitan datos en formato JSON y la opción de preprocesamiento Prometheus a JSON devolverá exactamente eso.

Para más detalles, consulte Descubrimiento utilizando datos de Prometheus.

Comparación de lenguajes de consulta

La siguiente tabla enumera las diferencias y similitudes entre PromQL y el lenguaje de consulta de preprocesamiento Prometheus de Zabbix.

Selector de vector instantáneo de PromQL Preprocesamiento Prometheus de Zabbix
Diferencias
Destino de la consulta Servidor Prometheus Texto plano en formato de exposición Prometheus
Devuelve Vector instantáneo Valor de métrica o etiqueta (patrón Prometheus)
Array de métricas para valor único en JSON (Prometheus a JSON)
Operadores de coincidencia de etiquetas =, !=, =~, !~ =, !=, =~, !~
Expresión regular utilizada en la coincidencia de nombre de etiqueta o métrica RE2 PCRE
Operadores de comparación Ver lista Solo se admite == (igual) para el filtrado de valores
Similitudes
Selección por nombre de métrica que es igual a una cadena <nombre de métrica> o {__name__="<nombre de métrica>"} <nombre de métrica> o {__name__="<nombre de métrica>"}
Selección por nombre de métrica que coincide con una expresión regular {__name__=~"<expresión regular>"} {__name__=~"<expresión regular>"}
Selección por valor de <nombre de etiqueta> que es igual a una cadena {<nombre de etiqueta>="<valor de etiqueta>",...} {<nombre de etiqueta>="<valor de etiqueta>",...}
Selección por valor de <nombre de etiqueta> que coincide con una expresión regular {<nombre de etiqueta>=~"<expresión regular>",...} {<nombre de etiqueta>=~"<expresión regular>",...}
Selección por valor que es igual a una cadena {__name__=~".*"} == <valor> {__name__=~".*"} == <valor>