Zabbix pot consultar les mètriques exposades en format de línia Prometheus.
Calen dues passes per començar a recollir dades de Prometheus:
https://<prometheus host>/metrics
Hi ha dues opcions de preprocessament de les dades de Prometheus:
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.
Si l'element principal HTTP és configurat, heu de crear un element dependent que empri una passa de preprocessament de Prometheus:
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
/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:
node_disk_usage_bytes{path="/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="yellow"} 0
empreu la configuració següent:
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
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").
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.
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> |