17 Prometheus pārbaudes
Pārskats
Zabbix var vaicāt metriku, kas ir pieejama Prometheus rindu 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, kas izmanto Prometheus priekšapstrādes opciju, lai vaicātu nepieciešamos datus no metrikām, ko savācis galvenais vienums
Ir pieejamas divas Prometheus datu priekšapstrādes opcijas:
- Prometheus pattern - tiek izmantots parastos vienumos, lai vaicātu Prometheus datus
- Prometheus to JSON - tiek izmantots parastos vienumos un zema līmeņa atklāšanai. Šajā gadījumā vaicātie Prometheus dati tiek atgriezti JSON formātā.
Lielapjoma apstrāde
Lielapjoma apstrāde tiek atbalstīta atkarīgajiem vienumiem. Lai iespējotu kešošanu un indeksēšanu,
priekšapstrādei Prometheus pattern jābūt pirmajam priekšapstrādes solim.
Ja Prometheus pattern ir pirmais priekšapstrādes solis, tad parsētie Prometheus
dati tiek kešoti un indeksēti pēc pirmā <label>==<value> nosacījuma
priekšapstrādes solī Prometheus pattern. Šis kešs tiek atkārtoti izmantots, 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 priekšapstrāde, tā būtu jāpārvieto vai nu uz galveno vienumu, vai uz jaunu atkarīgo vienumu, kas tiktu izmantots kā galvenais vienums atkarīgajiem vienumiem.
Konfigurācija
Ja HTTP master vienums jau ir konfigurēts, jums jāizveido atkarīgais vienums, kas izmanto Prometheus priekšapstrādes soli:
- Konfigurācijas formā ievadiet atkarīgā vienuma vispārīgos parametrus
- Atveriet cilni Priekšapstrāde
- Atlasiet Prometheus priekšapstrādes opciju (Prometheus pattern vai Prometheus to JSON)

Tālāk norādītie parametri ir specifiski priekšapstrādes opcijai Prometheus pattern:
| Parametrs | Apraksts | Piemēri |
|---|---|---|
| Pattern | Lai definētu nepieciešamo datu šablonu, 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 iepriekš minētā kombināciju: <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 slīpsvītras, 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 lietot atbilstošo funkciju (ja šablons atbilst vairākām rindām un rezultāts ir jāagregē): value - atgriezt metrikas vērtību (kļūda, ja atbilst vairākas rindas) label - atgriezt etiķetes vērtību, 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 lietošanas piemērus. |
| Output | Definējiet etiķetes nosaukumu (neobligāti). Šajā gadījumā tiks 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 lietošanas piemēri
- Visizplatītākais lietošanas gadījums ir atgriezt vērtību. 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 interesēt arī visu
node_disk_usage_bytesparametru vidējā vērtība:
- Pattern -
node_disk_usage_bytes - Result processing - atlasiet 'avg'
- Lai gan Prometheus atbalsta tikai skaitliskus datus, ir izplatīti izmantot apiešanas risinājumu, kas ļauj atgriezt arī atbilstošo teksta aprakstu. To var panākt ar filtru un norādot etiķeti. Tātad, lai atgrieztu etiķetes 'color' 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 attiecīgajai 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 zema līmeņa atklāšanai. Šajā gadījumā ir nepieciešami dati JSON formātā, un priekšapstrādes opcija Prometheus uz JSON atgriezīs tieši to.
Plašāku informāciju skatiet sadaļā Atklāšana, izmantojot Prometheus datus.
Vaicājumu valodu 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 tūlītējā vektora selektors | Zabbix Prometheus priekšapstrādes vaicājumu valoda | |
|---|---|---|
| Atšķirības | ||
| Vaicājuma mērķis | Prometheus serveris | Vienkāršs teksts Prometheus eksponēšanas formātā |
| Atgriež | Tūlītējs vektors | Metrikas vai etiķetes vērtība (Prometheus raksts) Metriku masīvs vienai vērtībai JSON formātā (Prometheus uz JSON) |
| Etiķešu atbilstības operatori | =, !=, =\~, !\~ | =, !=, =\~, !\~ |
| Regulārā izteiksme, ko izmanto etiķešu vai metriku nosaukumu atbilstības noteikš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> vai {__name__="<metric name>"} | <metric name> vai {__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> |