#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

  1. El caso de uso más común es devolver el valor. Regresar el valor de /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:

  • Patrón - node_disk_usage_bytes{ruta="/var/db"}
  • Procesamiento de resultados - seleccione 'valor'
  1. 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'
  1. 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>