17 Verificacions Prometheus

Vista general

Zabbix pot consultar les mètriques exposades en format de línia Prometheus.

Calen dues passes per començar a recollir dades de Prometheus:

  • un element principal HTTP apuntant al punt de dades adequat, per exemple https://<prometheus host>/metrics
  • elements dependents emprant una opció de preprocessat Prometheus per consultar les dades requerides a partir de les mètriques recollides per l'element principal

Hi ha dues opcions de preprocessament de les dades de Prometheus:

  • Motiu Prometheus - emprat per elements normals per consultar dades Prometheus
  • Prometheus envers JSON - emprat per elements normals i per la descoberta de baix nivell. En aquest cas, les dades Prometeus consultades tornen en format JSON.
Tractament massiu

El processament massiu és compatible amb els elements dependents. Per habilitar la memòria cau i la indexació, el preprocessament Patró Prometheus ha d'ésser la primera passa de preprocessament. Quan el Patró Prometheus és la primera passa de preprocessament, les dades de Prometheus analitzades s'emmagatzemen a la memòria cau i s'indexen mitjançant la primera condició <etiqueta>==<valor> a la passa de preprocessament del Patró Prometheus. Aquesta memòria cau es reutilitza quan es processen altres elements dependents d'aquest lot. Per a un rendiment òptim, la primera etiqueta hauria d'ésser la que tingui més valors diferents.

Si s'ha de fer un altre preprocessament abans de la primera passa, s'hauria de moure a l'element principal o a un nou element dependent que s'empraria com a element principal per als elements dependents.

Configuració

Si l'element principal HTTP és configurat, heu de crear un element dependent que empri una passa de preprocessament de Prometheus:

  • Introduïu els paràmetres generals de l'element dependent al formulari de configuració
  • Accediu a la pestanya Preprocessament
  • Trieu una opció de preprocessament de Prometheus (Patró Prometheus o Prometheus a JSON)

Els paràmetres següents són específics de l'opció de preprocessament Patró Prometheus:

Paràmetre Descripció Exemples
Patró Per definir el model de dades requerit, podeu emprar un llenguatge de consulta similar al llenguatge de consulta de Prometheus (veieu la taula de comparació), per exemple:
<metric nom>: seleccioneu pel nom de la mètrica
{__name__="<nom de la mètrica>"}: seleccioneu pel nom de la mètrica
{__name_ _=~ "<regex>"}: seleccioneu pel nom de la mètrica que coincideixi amb una expressió regular
{<tag name>="<value>",...}: seleccioneu pel nom de l'etiqueta
{ <nom de l'etiqueta>=~"<regex>",...}: seleccioneu el nom de l'etiqueta que coincideixi amb una expressió regular
{__name __=~".*" }==<valor>: seleccioneu per valor de mètrica
O una combinació de les anteriors:
<nom de la mètrica>{< tag de nom1>="<etiqueta de valor1>", <name tag2>=~"<regex>",...}==<valor>

L'etiqueta de valor pot ésser qualsevol seqüència de caràcters UTF-8, però barra invertida, cometes dobles i els caràcters de nova línia s'han de fer escapar com a \\, \" i \n respectivament; els altres caràcters no s'han de fer escapar .
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*
Processat de resultats Indiqueu si voleu retornar el valor, l'etiqueta o aplicar la funció adequada (si el patró coincideix amb diverses fileres i el resultat s'ha d'afegir):
valor - retorna el valor de la mètrica (error si coincideixen diverses files)
etiqueta - retorna el valor de l'etiqueta especificat al camp Etiqueta (error si coincideixen diverses mètriques)
suma - retorna la suma de valors
min - retorna el valor mínim
max - retorna el valor màxim
mitjana - retorna el valor mitjà
count - retorna el nombre de valors
Aquest camp és només disponible per a l'opció Patró Prometheus.
Veieu també exemples d'ús de paràmetres a continuació.
Sortida Estableix el nom de l'etiqueta (opcional). En aquest cas, es retorna el valor corresponent al nom de l'etiqueta.
Aquest camp només és disponible per a l'opció Patró Prometheus, si es selecciona "Etiqueta" al camp Processat de resultats.

Exemples d'ús de paràmetres

  1. El cas d'ús més comú és retornar el valor. Per retornar 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

empreu la configuració següent:

  • Patró - node_disk_usage_bytes{path="/var/db"}
  • Processat de resultats - trieu "valor"
  1. També us pot interessar el valor mitjana de tots els paràmetres node_disk_usage_bytes:
  • Patró - node_disk_usage_bytes
  • Processat dels resultats - trieu "mitjana"
  1. Tot i que Prometheus només admet dades numèriques, és habitual emprar una solució alternativa que també retorni la descripció textual rellevant. Això es pot aconseguir amb un filtre i especificant l'etiqueta. Per tant, per retornar el valor de l'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

empreu la configuració següent:

  • Patró - elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
  • Processat dels resultats - seleccioneu "etiqueta"
  • Etiqueta: especifiqueu "color"

El filtre (basat en el valor numèric "1") coincidirà amb la filera adequada, mentre que l'etiqueta retornarà la descripció de l'estat de salut (actualment "verd"; però potencialment també "vermell" o "groc").

Prometheus a JSON

Les dades de Prometheus es poden emprar per la descoberta de baix nivell. En aquest cas, calen dades en format JSON i l'opció de preprocessat Prometheus to JSON retornarà exactament això.

Per obtindre més informació, consulteu descoberta emprant informació Prometheus.

Comparativa dels llenguatges de consultes

La taula següent llista les diferències i semblances entre el llenguatge de consulta de preprocessat PromQL i el Zabbix Prometheus.

Selector de vectors instantani PromQL Preprocessat de Zabbix Prometheus
Diferències
Destí de la petició Servidor Prometheus Text sense format en format d'exposició de Prometheus
Retorns Vector d'instantània Valor de mètrica o etiqueta (plantilla Prometheus)
Matriu de mètriques per a un valor únic en JSON (Prometheus a JSON)
Etiqueta operadors de concordança =, !=, =~, !~ =, !=, = ~, !~
Expressió regular emprada a la concordança de noms d'etiquetes o mètriques RE2 PCRE
Operadors de comparació Veieu llista Només == (igual) és compatible amb la càrrega de valor filtrada
Semblances
Trieu per nom mètric equival a cadena <nom mètric> o {__nom__="<nom mètric>"} <nom mètric> o {__nom__ ="<nom mètric> >>"}
Trieu pel nom de mètrica que coincideixi amb l'expressió regular {__name__=~"<regex>"} {__name__=~"< regex>" }
Trieu per <nom de l'etiqueta> el valor és igual a la cadena {<nom de l'etiqueta>="<valor de l'etiqueta>",...} {<nom de l'etiqueta>= "<valor de l'etiqueta>", ...}
Trieu el valor <nom de l'etiqueta> que coincideixi amb l'expressió regular {<nom de l'etiqueta>=~"<regex>",...} {<etiqueta de nom>=~"<regex >",...}
Trieu per valor és igual a cadena {__nom__=~".*"} == <valor> {__nom__=~".* " } == <valor>