1 Prometheus pārbaude
Pārskats
Zabbix var vaicāt metriku, kas tiek eksponētas Prometheus līniju formātā.
Lai sāktu vākt Prometheus datus, ir nepieciešami divi soļi:
- HTTP galvenais vienums, kas norāda
uz atbilstošo datu galapunktu, piemēram,
https://<prometheus host>/metrics - atkarīgie vienumi, izmantojot Prometheus priekšapstrādes opciju, lai vaicātu nepieciešamos datus no metriku, ko savācis galvenais vienums
Pastāv divas Prometheus datu priekšapstrādes opcijas:
- Prometheus pattern - tiek izmantota parastajos vienumos, lai vaicātu Prometheus datus
- Prometheus to JSON - tiek izmantota parastajos vienumos un zemā līmeņa atklāšanai. Šajā gadījumā vaicātie Prometheus dati tiek atgriezti JSON formātā.
Masveida apstrāde
Masveida apstrāde tiek atbalstīta atkarīgajiem vienumiem. Lai iespējotu kešošanu un indeksēšanu,
Prometheus pattern pirmapstrādei ir jābūt pirmajam pirmapstrādes solim.
Ja Prometheus pattern ir pirmais pirmapstrādes solis, tad parsētie Prometheus
dati tiek kešoti un indeksēti pēc pirmā <label>==<value> nosacījuma
Prometheus pattern pirmapstrādes solī. Šis kešs tiek izmantots atkārtoti, apstrādājot
citus atkarīgos vienumus šajā paketē. Optimālai veiktspējai pirmajai etiķetei
vajadzētu būt tai, kurai ir visvairāk atšķirīgu vērtību.
Ja pirms pirmā soļa ir jāveic cita pirmapstrāde, tā ir jāpārvieto vai nu uz galveno vienumu, vai uz jaunu atkarīgo vienumu, kas tiks izmantots kā galvenais vienums atkarīgajiem vienumiem.
Konfigurācija
Ja jums ir konfigurēts HTTP master vienums, jums ir jāizveido atkarīgais vienums, kas izmanto Prometheus priekšapstrādes soli:
- Konfigurācijas formā ievadiet vispārīgos atkarīgā vienuma parametrus
- Dodieties uz cilni Preprocessing
- Atlasiet Prometheus priekšapstrādes opciju (Prometheus pattern vai Prometheus to JSON)

Tālāk norādītie parametri ir specifiski Prometheus pattern priekšapstrādes opcijai:
| Parameter | Description | Examples |
|---|---|---|
| Pattern | Lai definētu nepieciešamo datu paraugu, varat izmantot vaicājumu valodu, kas ir līdzīga Prometheus vaicājumu valodai (skatiet salīdzinājuma tabulu), piemēram: <metric name> - atlasīt pēc metrikas nosaukuma {__name__="<metric name>"} - atlasīt pēc metrikas nosaukuma {__name__=\~"<regex>"} - atlasīt pēc metrikas nosaukuma, kas atbilst regulārajai izteiksmei {<label name>="<label value>",...} - atlasīt pēc etiķetes nosaukuma {<label name>=\~"<regex>",...} - atlasīt pēc etiķetes nosaukuma, kas atbilst regulārajai izteiksmei {__name__=\~".*"}==<value> - atlasīt pēc metrikas vērtības Vai arī kombinācija no iepriekš minētā: <metric name>{<label1 name>="<label1 value>",<label2 name>=\~"<regex>",...}==<value> Etiķetes vērtība var būt jebkura UTF-8 rakstzīmju secība, taču atpakaļsvītra, dubultpēdiņas un rindas pārneses rakstzīmes ir jāekranē attiecīgi kā \\, \" un \n; citas rakstzīmes nav jāekranē. |
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 |
| Result processing | Norādiet, vai atgriezt vērtību, etiķeti vai piemērot atbilstošu funkciju (ja paraugs atbilst vairākām rindām un rezultāts ir jāapkopo): value - atgriezt metrikas vērtību (kļūda, ja atbilst vairākas rindas) label - atgriezt vērtību no etiķetes, kas norādīta laukā Label (kļūda, ja atbilst vairākas metrikas) sum - atgriezt vērtību summu min - atgriezt minimālo vērtību max - atgriezt maksimālo vērtību avg - atgriezt vidējo vērtību count - atgriezt vērtību skaitu Šis lauks ir pieejams tikai opcijai Prometheus pattern. |
Skatiet arī tālāk sniegtos parametru izmantošanas piemērus. |
| Output | Definējiet etiķetes nosaukumu (neobligāti). Šādā gadījumā tiek atgriezta vērtība, kas atbilst etiķetes nosaukumam. Šis lauks ir pieejams tikai opcijai Prometheus pattern, ja laukā Result processing ir atlasīts 'Label'. |
Parametru izmantošanas piemēri
- Visbiežāk lietotais gadījums ir atgriezt value. Lai atgrieztu
/var/dbvērtību no:
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
izmantojiet šādus parametrus:
- Pattern -
node_disk_usage_bytes{path="/var/db"} - Result processing - atlasiet 'value'
- Jūs varētu būt ieinteresēts arī visu
node_disk_usage_bytesparametru vidējā vērtībā:
- Pattern -
node_disk_usage_bytes - Result processing - atlasiet 'avg'
- Lai gan Prometheus atbalsta tikai skaitliskus datus, ir populāri izmantot risinājumu, kas ļauj atgriezt arī atbilstošu teksta aprakstu. To var panākt, izmantojot filtru un norādot etiķeti. Tātad, lai atgrieztu 'color' etiķetes vērtību no
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
izmantojiet šādus parametrus:
- Pattern -
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1 - Result processing - atlasiet 'label'
- Label - norādiet 'color'
Filtrs (balstīts uz skaitlisko vērtību '1') atbildīs atbilstošajai rindai, savukārt etiķete atgriezīs veselības stāvokļa aprakstu (pašlaik 'green'; bet potenciāli arī 'red' vai 'yellow').
Prometheus uz JSON
Datus no Prometheus var izmantot zemā līmeņa atklāšanai. Šajā gadījumā ir nepieciešami dati JSON formātā, un priekšapstrādes opcija Prometheus to JSON atgriezīs tieši to.
Plašāku informāciju skatiet sadaļā Atklāšana, izmantojot Prometheus datus.
Vaicājumu valodas salīdzinājums
Tālāk esošajā tabulā ir uzskaitītas atšķirības un līdzības starp PromQL un Zabbix Prometheus priekšapstrādes vaicājumu valodu.
| PromQL instant vector selector | Zabbix Prometheus priekšapstrāde | |
|---|---|---|
| Atšķirības | ||
| Vaicājuma mērķis | Prometheus serveris | Vienkāršs teksts Prometheus ekspozīcijas formātā |
| Atgriež | Tūlītējo vektoru | Metrikas vai etiķetes vērtību (Prometheus shēma) Metriku masīvu vienai vērtībai JSON formātā (Prometheus uz JSON) |
| Etiķešu saskaņošanas operatori | =, !=, =\~, !\~ | =, !=, =\~, !\~ |
| Regulārā izteiksme, ko izmanto etiķešu vai metrikas nosaukuma saskaņošanai | RE2 | PCRE |
| Salīdzināšanas operatori | Skatiet sarakstu | Vērtību filtrēšanai tiek atbalstīts tikai == (vienāds) |
| Līdzības | ||
| Atlase pēc metrikas nosaukuma, kas ir vienāds ar virkni | <metric name> or {__name__="<metric name>"} | <metric name> or {__name__="<metric name>"} |
| Atlase pēc metrikas nosaukuma, kas atbilst regulārajai izteiksmei | {__name__=\~"<regex>"} | {__name__=\~"<regex>"} |
| Atlase pēc <label name> vērtības, kas ir vienāda ar virkni | {<label name>="<label value>",...} | {<label name>="<label value>",...} |
| Atlase pēc <label name> vērtības, kas atbilst regulārajai izteiksmei | {<label name>=\~"<regex>",...} | {<label name>=\~"<regex>",...} |
| Atlase pēc vērtības, kas ir vienāda ar virkni | {__name__=\~".*"} == <value> | {__name__=\~".*"} == <value> |