1 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ó
Sempre que tingueu configurat l'element mestre HTTP, heu de crear un element dependent que utilitza un pas de preprocessament de Prometheus:
- Introduïu els paràmetres d'element dependent general en el formulari de configuració
- Aneu 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ó | Exàmels |
|---|---|---|
| Pattern | Definir el patró de dades requerit podeu utilitzar un llenguatge de consulta que sigui similar al llenguatge de consultes Prometheus (vegeu taula de comparació), e.g. <nom mètric>><<bre_>< *"}==1* |
|
| Processament de resultats | Especificar si retornar el valor, l'etiqueta o aplicar la funció adequada (si el patró coincideix amb diverses línies i el resultat ha de ser agregat): valor - valor mètric de retorn (error si s'ajusten a múltiples línies) etiqueta - valor de retorn de l'etiqueta especificada al camp Etiqueta (error si s' coincideixen múltiples mètriques) **s |
Vegeu també exemples d'ús de paràmetres a continuació. |
| Output | Defineix el nom de l'etiqueta (opcional). En aquest cas es retorna el valor corresponent al nom de l'etiqueta. Aquest camp només està disponible per a l'opció Prometheus patró, si 'Etiqueta' està seleccionada en el camp Processament de resultats. |
Exemples d'ús de paràmetres
- El cas d'ús més comú és retornar el valor. Per tornar
el valor de
/var/dbde:
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 els paràmetres següents:
- Patró -
node_disk_usage_bytes{path="/var/db"} - Procés de resultat - select 'value'
- També et pot interessar el valor mig de tots els
paràmetres
node_disk_usage_bytes:
- Pattern -
node_disk_usage_bytes - Result processing - select 'avg'
- Tot i que Prometheus només admet dades numèriques, és popular utilitzar un solució que permet retornar també la descripció textual pertinent. Això es pot aconseguir amb un filtre i especificant l'etiqueta. Així doncs, per retorneu 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 els paràmetres següents:
- Pattern -
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1 - Result processing - select 'label'
- Label - specify 'color'
El filtre (basat en el valor numèric '1') coincidirà amb la fila adequada, mentre que l'etiqueta retorneu 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.
Comparació del llenguatge de consulta
La taula següent enumera les diferències i similituds entre PromQL i Zabbix Prometheus llenguatge de consulta de preprocessament.
| PromQL selector vectorial instantani | < | Zabbix Prometheus preprocessing | ||
|---|---|---|---|---|
| Diferències | < | < | ||
| Diana de consulta | Prometheus servidor | Text senzill en format d'exposició Prometeu | ||
| Retorns | Vector instantani | Valor mètric o d'etiqueta (patró Prometeu) Array de mètriques per a un sol valor en JSON (Prometeu a JSON) |
||
| Etiqueta d'operadors de concordança | =, ! =, =\~, ! \~**=, ! =, =\~, ! \~** | |||
| Expressió regular utilitzada en la concordança de noms d'etiquetes o mètriques | RE2 | PCRE | ||
| Comparison operators | Veure list | Només == (igual) és compatible per filtrar el valor | ||
| Similaritats | < | |||
| Seleccionant per nom mètric que és igual a string | <nom mètric> o {_nom_="<nom mètric>"}<nom mètric> o {_name\="<nom mètric>"} | |||
| Seleccionar per nom mètric que coincideixi amb l'expressió regular | {____\=\~"<regex>"} | {_name\=\~"<regex>} | ||
| Seleccionant per <marca el nom> valor que és igual a string | {<nom de l'etiqueta>="<valor de l'etiqueta>,...}{<nom de l'etiqueta>="<valor de l'etiqueta>,...} | |||
| Seleccionant per <nom de l'etiqueta> valor que coincideix amb l'expressió regular | {<nom de l'etiqueta>=\~"<regex>",...} | <nom de l'etiqueta>=\~"<regex>,...} | ||
| Seleccionant per valor que és igual a string | {_name_\~"\~"= <value> | {__name___=\~».*"} == <value> | ||