Avastage mõõdikute kogumine Prometheusega ja Grafanaga. Õppige, kuidas neid võimsaid avatud lähtekoodiga tööriistu tõhusalt kasutada.
Mõõdikute kogumine: põhjalik juhend Prometheusega ja Grafanaga
Tänapäeva keerulises IT-maastikus on tõhus monitooring ülimalt oluline rakenduste ja infrastruktuuri tervise ja jõudluse säilitamiseks. Mõõdikute kogumine pakub selle monitooringu aluse, võimaldades teil jälgida peamisi tulemusnäitajaid (KPI-sid), tuvastada potentsiaalseid probleeme ja optimeerida ressursside kasutamist. See põhjalik juhend uurib, kuidas kasutada Prometheust ja Grafanat, kahte võimsat avatud lähtekoodiga tööriista, et saada tugev mõõdikute kogumine ja visualiseerimine.
Mis on mõõdikute kogumine?
Mõõdikute kogumine hõlmab numbriliste andmete kogumist, mis esindavad erinevate süsteemide, rakenduste ja infrastruktuuri komponentide olekut ja käitumist aja jooksul. Need mõõdikud võivad sisaldada CPU kasutust, mälukulu, võrguliiklust, vastuseaegu, veamäärasid ja paljusid muid asjakohaseid näitajaid. Neid mõõdikuid analüüsides saate väärtuslikku teavet oma keskkonna jõudluse ja tervise kohta.
Miks on mõõdikute kogumine oluline?
- Proaktiivne probleemide tuvastamine: Tuvastage potentsiaalsed probleemid enne, kui need kasutajaid mõjutavad.
- Jõudluse optimeerimine: tehke kindlaks kitsaskohad ja parendamist vajavad valdkonnad.
- Võimsuse planeerimine: ennustage tulevasi ressursivajadusi ajalooliste suundumuste põhjal.
- Teenusetaseme lepingute (SLA) monitooring: tagage vastavus jõudluseesmärkidele.
- Probleemide lahendamine ja põhjusanalüüs: diagnoosige ja lahendage probleeme kiiresti.
Prometheuse ja Grafana tutvustus
Prometheus on avatud lähtekoodiga süsteemide monitooringu ja häiresignaali komplekt, mis algselt arendati SoundCloudis. See paistab silma ajareana andmete kogumisel ja salvestamisel, mis on ajatemplitega indekseeritud andmed. Prometheus kasutab tõmbepõhist mudelit, et kraapida mõõdikuid sihtmärkidest (nt serverid, rakendused) regulaarsete ajavahemike järel. See pakub võimsat päringukeelt (PromQL) kogutud andmete analüüsimiseks ja häirereeglite määratlemiseks.
Grafana on avatud lähtekoodiga andmete visualiseerimise ja monitooringu platvorm. See võimaldab luua interaktiivseid armatuurlaudu ja graafikuid, et visualiseerida andmeid erinevatest allikatest, sealhulgas Prometheusest. Grafana pakub rikkalikku visualiseerimisvõimaluste komplekti, sealhulgas graafikuid, tabeleid ja näidikuid. Samuti toetab see häiresignaale, võimaldades teil saada teateid teatud künniste ületamisel.
Koos moodustavad Prometheus ja Grafana võimsa ja paindliku monitooringulahenduse, mida saab kohandada paljude keskkondade ja kasutusjuhtumitega. Neid kasutatakse laialdaselt DevOpsi ja SRE (Saidikindluse Inseneeria) praktikates kogu maailmas.
Prometheuse arhitektuur ja mõisted
Prometheuse põhikomponentide mõistmine on tõhusa rakendamise ja kasutamise jaoks oluline:
- Prometheuse server: põhikomponent, mis vastutab mõõdikute kraapimise, salvestamise ja päringute eest.
- Teenuse avastamine: avastab automaatselt monitooritavad sihtmärgid konfiguratsiooni või integreerimise põhjal platvormidega nagu Kubernetes.
- Eksportijad: agendid, mis eksponeerivad mõõdikuid vormingus, mida Prometheus mõistab. Näited hõlmavad node_exporter (süsteemi mõõdikute jaoks) ja erinevaid rakendusepõhiseid eksportijaid.
- Pushgateway (valikuline): võimaldab lühiajalistel töödel lükata mõõdikuid Prometheusele. See on kasulik partiitööde jaoks, mis ei pruugi pidevalt töötada.
- Alertmanager: haldab Prometheuse poolt genereeritud häiresignaale konfigureeritud reeglite põhjal. See võib suunata häiresignaalid erinevatesse teavituskanitesse, nagu e-post, Slack või PagerDuty.
- PromQL: Prometheuse päringukeel, mida kasutatakse kogutud mõõdikute päringute ja analüüsimiseks.
Prometheuse töövoog
- Sihtmärgid (rakendused, serverid jne) eksponeerivad mõõdikuid. Need mõõdikud eksponeeritakse tavaliselt HTTP-lõpp-punkti kaudu.
- Prometheuse server kraapib mõõdikuid konfigureeritud sihtmärkidest. See tõmbab perioodiliselt mõõdikuid neist lõpp-punktidest.
- Prometheus salvestab kraabitud mõõdikud oma ajareana andmebaasi.
- Kasutajad päringutavad mõõdikuid PromQL-i abil. See võimaldab neil andmeid analüüsida ning luua graafikuid ja armatuurlaudu.
- Häire reegleid hinnatakse salvestatud mõõdikute põhjal. Kui reegli tingimus on täidetud, käivitatakse häire.
- Alertmanager haldab käivitatud häiresignaale. See de-dublitseerib, rühmitab ja suunab need sobivatesse teavituskanitesse.
Grafana arhitektuur ja mõisted
Grafana täiendab Prometheust, pakkudes kasutajasõbralikku liidest kogutud mõõdikute visualiseerimiseks ja analüüsimiseks:
- Andmeallikad: ühendused erinevate andmeallikatega, sealhulgas Prometheus, Graphite, InfluxDB ja teised.
- Armatuurlauad: paneelide kollektsioonid, mis kuvavad andmeid erinevates vormingutes (graafikud, diagrammid, tabelid jne).
- Paneelid: üksikud visualiseeringud, mis kuvavad andmeid konkreetsest andmeallikast, kasutades konkreetset päringut.
- Häired: Grafanal on ka sisseehitatud häiresignaali võimalused, mis võimaldavad teil määratleda häired, mis põhinevad teie armatuurlaudades kuvatavatel andmetel. Need häired saavad kasutada Prometheusit andmeallikana ja kasutada PromQL-i keeruka häireloogika jaoks.
- Organisatsioonid ja meeskonnad: Grafana toetab organisatsioone ja meeskondi, võimaldades teil hallata juurdepääsu armatuurlaudadele ja andmeallikatele ning nende õigusi.
Grafana töövoog
- Konfigureerige andmeallikad: ühendage Grafana oma Prometheuse serveriga.
- Looge armatuurlauad: kujundage armatuurlauad oma mõõdikute visualiseerimiseks.
- Lisage paneelid armatuurlaudadele: lisage paneele, et kuvada konkreetseid andmepunkte Prometheusest, kasutades PromQL-päringuid.
- Konfigureerige häiresignaalid (valikuline): seadistage Grafanas häirereeglid, et saada teatisi konkreetsete mõõdikute lävede alusel.
- Jagage armatuurlaudu: jagage armatuurlaudu oma meeskonnaga monitooringu ja analüüsi osas koostöö tegemiseks.
Prometheuse ja Grafana seadistamine
See jaotis annab samm-sammult juhiseid Prometheuse ja Grafana seadistamiseks.
Prometheuse installimine
1. Laadige alla Prometheus:
Laadige Prometheuse uusim versioon alla ametlikult veebisaidilt: https://prometheus.io/download/. Valige oma operatsioonisüsteemile sobiv pakett (nt Linux, Windows, macOS).
2. Väljastage arhiiv:
Väljastage allalaaditud arhiiv valitud kataloogi.
3. Konfigureerige Prometheus:
Looge konfiguratsioonifail `prometheus.yml`. See fail määrab sihtmärgid, mida Prometheus kraabib, ja muid konfiguratsioonivalikuid. Põhikonfiguratsioon võib välja näha selline:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
See konfiguratsioon määrab kaks kraapimistööd: üks Prometheuse enda jaoks (oma mõõdikute kraapimine) ja üks node_exporteri jaoks, mis töötab localhosti pordis 9100. `scrape_interval` määrab, kui sageli Prometheus sihtmärke kraabib.
4. Käivitage Prometheus:
Käivitage Prometheuse käivitatav fail kataloogist, kuhu arhiivi väljastasite:
./prometheus --config.file=prometheus.yml
Prometheus käivitub ja kuulab vaikimisi pordis 9090. Saate Prometheuse veebiliidesele oma brauseris juurdepääsu aadressil http://localhost:9090.
Grafana installimine
1. Laadige alla Grafana:
Laadige Grafana uusim versioon alla ametlikult veebisaidilt: https://grafana.com/grafana/download. Valige oma operatsioonisüsteemile sobiv pakett.
2. Installige Grafana:
Järgige oma operatsioonisüsteemi installijuhiseid. Näiteks Debian/Ubuntu puhul:
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
3. Käivitage Grafana:
Käivitage Grafana teenus:
sudo systemctl start grafana-server
4. Juurdepääs Grafanale:
Grafana käivitub ja kuulab vaikimisi pordis 3000. Saate Grafana veebiliidesele oma brauseris juurdepääsu aadressil http://localhost:3000.
Vaikimisi kasutajanimi ja parool on `admin` ja `admin`. Teile palutakse parool esimesel sisselogimisel muuta.
Grafana ühendamine Prometheusega
Et visualiseerida mõõdikuid Prometheusest Grafanas, peate konfigureerima Prometheuse andmeallikana Grafanas.
1. Lisage andmeallikas:
Liikuge Grafana veebiliideses jaotisse Configuration > Data Sources ja klõpsake nuppu Add data source.
2. Valige Prometheus:
Valige andmeallika tüübiks Prometheus.
3. Konfigureerige Prometheuse ühendus:
Sisestage Prometheuse serveri URL (nt `http://localhost:9090`). Konfigureerige muid võimalusi vastavalt vajadusele (nt autentimine).
4. Salvesta ja testi:
Klõpsake nuppu Save & Test, et kontrollida, kas Grafana saab edukalt Prometheusega ühenduse luua.
Armatuurlaudade loomine Grafanas
Kui olete Grafana Prometheusega ühendanud, saate luua armatuurlaudu oma mõõdikute visualiseerimiseks.
1. Looge uus armatuurlaud:
Klõpsake Grafana veebiliideses külgribal ikooni + ja valige Dashboard.
2. Lisage paneel:
Klõpsake nuppu Add an empty panel, et lisada armatuurlauale uus paneel.
3. Konfigureerige paneel:
- Valige andmeallikas: valige varem konfigureeritud Prometheuse andmeallikas.
- Sisestage PromQL-i päring: sisestage PromQL-i päring, et hankida visualiseerida soovitud mõõdik. Näiteks CPU kasutamise kuvamiseks võiksite kasutada järgmist päringut:
rate(process_cpu_seconds_total{job="node_exporter"}[5m])
See päring arvutab node_exporteri poolt kogutud protsesside poolt kasutatud CPU aja muutumiskiiruse 5-minutilisel intervallil.
- Konfigureerige visualiseerimisvalikud: valige visualiseerimise tüüp (nt graafik, näidik, tabel) ja konfigureerige muid võimalusi vastavalt vajadusele (nt telje sildid, värvid).
4. Salvestage armatuurlaud:
Klõpsake armatuurlaua salvestamiseks salvestusikooni.
PromQL: Prometheuse päringukeel
PromQL on võimas päringukeel, mida kasutatakse Prometheuses salvestatud mõõdikute hankimiseks ja manipuleerimiseks. See võimaldab teil teha mitmesuguseid toiminguid, sealhulgas:
- Filtreerimine: valige mõõdikud siltide põhjal.
- Agregeerimine: arvutage koondväärtused (nt summa, keskmine, maksimum) aja jooksul või mitme eksemplari puhul.
- Kiiruse arvutamine: arvutage loendurite mõõdikute muutumiskiirus.
- Aritmeetilised operatsioonid: tehke aritmeetilisi operatsioone mõõdikute kohta (nt liitmine, lahutamine, korrutamine).
- Ajavahemike funktsioonid: rakendage funktsioone ajareale andmetele (nt liigutatav keskmine, silumine).
PromQL-i näited
- CPU kasutamine:
rate(process_cpu_seconds_total{job="node_exporter"}[5m])
- Mälu kasutamine:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
- Kettaruumi kasutamine:
(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100
- HTTP päringute määr:
rate(http_requests_total[5m])
PromQL-i õppimine on Prometheuse ja Grafana tõhusaks kasutamiseks hädavajalik. Kogu keele kohta vaadake Prometheuse dokumentatsiooni.
Häiresignaalid Prometheusega ja Alertmanageriga
Prometheus pakub tugevat häiresignalisatsioonisüsteemi, mis võimaldab teil määratleda reegleid mõõdikute väärtuste põhjal. Kui reegli tingimus on täidetud, käivitatakse häire ja Alertmanager haldab teavitamisprotsessi.
Häire reeglite määratlemine
Häire reeglid määratletakse konfiguratsioonifailis `prometheus.yml`. Siin on näide häire reeglist, mis käivitub, kui CPU kasutamine ületab 80%:
rule_files:
- "rules.yml"
Seejärel pange faili nimega `rules.yml` sellised reeglid:
groups:
- name: example
rules:
- alert: HighCPUUsage
expr: rate(process_cpu_seconds_total{job="node_exporter"}[5m]) > 0.8
for: 1m
labels:
severity: critical
annotations:
summary: "High CPU usage detected"
description: "CPU usage is above 80% on {{ $labels.instance }}"
Selgitus:
- alert: häire nimi.
- expr: PromQL-i avaldis, mis määratleb häire tingimuse.
- for: kestus, mille jooksul peab tingimus olema tõene, enne kui häire käivitatakse.
- labels: sildid, mis on häire külge kinnitatud.
- annotations: märkused, mis annavad häire kohta lisateavet, näiteks kokkuvõte ja kirjeldus.
Alertmanageri konfigureerimine
Alertmanager haldab häirete marsruutimist ja teavitamist. Peate Alertmanageri konfigureerima, et määrata, kuhu häiresignaalid tuleks saata (nt e-post, Slack, PagerDuty). Üksikasjalike konfiguratsioonijuhiste saamiseks vaadake Alertmanageri dokumentatsiooni.
Minimaalne `alertmanager.yml` konfiguratsioon võib välja näha selline:
global:
resolve_timeout: 5m
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://localhost:8080/'
See konfiguratsioon saadab häiresignaalid veebihaagisele localhosti pordis 8080. Saate kohandada jaotist `receivers`, et kasutada selle asemel teenuseid nagu Slack või e-post.
Praktilised näited ja kasutusjuhtumid
Prometheust ja Grafanat saab kasutada paljude rakenduste ja infrastruktuurikomponentide monitooringuks. Siin on mõned praktilised näited:
- Veebiserveri monitooring: jälgige HTTP päringute määrasid, vastuseaegu ja veamäärasid, et tagada optimaalne veebiserveri jõudlus.
- Andmebaasi monitooring: jälgige andmebaasi ühendusbasseini kasutust, päringute täitmisaegu ja aeglaseid päringuid, et tuvastada andmebaasi kitsaskohti.
- Kubernetese monitooring: jälgige Kubernetes'i klastrite tervist ja jõudlust, sealhulgas podide ja sõlmede ressursside kasutamist.
- Rakenduste monitooring: koguge oma rakendustest kohandatud mõõdikuid, et jälgida konkreetseid äri-KPI-sid ja tuvastada rakendustasandi probleeme.
- Võrgu monitooring: jälgige võrguliiklust, latentsusaega ja paketikaotust, et tuvastada võrgukitsaskohad ja jõudlusprobleemid.
- Pilveinfrastruktuuri monitooring: jälgige pilveressursside, nagu virtuaalmasinate, salvestusruumi ja andmebaaside, jõudlust ja kättesaadavust. See on eriti oluline AWS-, Azure- ja Google Cloudi keskkondade puhul, millel kõigil on integratsioon Prometheusega ja Grafanaga.
Näide: Mikroteenuste arhitektuuri monitooring
Mikroteenuste arhitektuuris saab Prometheust ja Grafanat kasutada üksikute teenuste ja kogu süsteemi tervise ja jõudluse monitooringuks. Iga teenus saab eksponeerida oma mõõdikuid, nagu päringumäärad, vastuseajad ja veamäärad. Seejärel saab Prometheus neid mõõdikuid kraapida ja Grafanat saab kasutada nende visualiseerimiseks. See võimaldab teil kiiresti tuvastada jõudluse kitsaskohti või rikkeid konkreetsetes teenustes.
Täiustatud tehnikad ja parimad tavad
Prometheuse ja Grafana maksimaalseks ärakasutamiseks kaaluge järgmisi täiustatud tehnikaid ja parimaid tavasid:
- Kasutage sisukaid silte: kasutage silte, et lisada oma mõõdikutele konteksti. See muudab andmete filtreerimise ja koondamise lihtsamaks. Näiteks kasutage silte, et tuvastada teenus, keskkond ja eksemplar, millega mõõdik on seotud.
- Jälgige peamisi tulemusnäitajaid (KPI-sid): keskenduge nende mõõdikute jälgimisele, mis on teie ettevõtte jaoks kõige olulisemad. See võimaldab teil kiiresti tuvastada ja lahendada probleeme, millel on suurim mõju.
- Seadke sobivad häireläved: seadke oma keskkonnale sobivad häireläved. Vältige liiga tundlike lävede seadmist, kuna see võib põhjustada häirete väsimuse.
- Kasutage armatuurlaudu tõhusalt: kujundage armatuurlauad, mis on kergesti mõistetavad ja pakuvad praktilist teavet. Kasutage selgeid ja lühikesi silte ja visualiseeringuid.
- Automatiseerige juurutamine ja konfiguratsioon: automatiseerige Prometheuse ja Grafana juurutamine ja konfiguratsioon selliste tööriistade abil nagu Ansible, Terraform või Kubernetes.
- Kaitske oma Prometheuse ja Grafana eksemplare: kaitske oma Prometheuse ja Grafana eksemplare, et vältida volitamata juurdepääsu. Kasutage autentimist ja autoriseerimist, et kontrollida juurdepääsu tundlikele andmetele.
- Kaaluge horisontaalset skaleerimist: suurte keskkondade puhul kaaluge Prometheuse ja Grafana eksemplaride horisontaalset skaleerimist, et tulla toime suurenenud koormusega. Seda saab saavutada, kasutades mitut Prometheuse serverit ja Grafana eksemplari koormuse tasakaalustaja taga.
- Kasutage teenuse avastamist: kasutage Prometheuse teenuse avastamise võimalusi uute sihtmärkide automaatseks avastamiseks ja jälgimiseks. See on eriti kasulik dünaamilistes keskkondades nagu Kubernetes.
Üldiste probleemide tõrkeotsing
Isegi hoolika planeerimise ja rakendamise korral võite Prometheuse ja Grafana kasutamisel kokku puutuda probleemidega. Siin on mõned levinumad probleemid ja nende lahendused:
- Prometheus ei kraabi mõõdikuid: kontrollige, kas sihtmärk on Prometheuse serverist juurdepääsetav. Kontrollige Prometheuse logidest vigu. Veenduge, et sihtmärk eksponeerib mõõdikuid õiges vormingus.
- Grafana ei ühendu Prometheusega: kontrollige, kas Prometheuse URL on Grafana andmeallika konfiguratsioonis õige. Kontrollige Grafana logidest vigu. Veenduge, et Prometheuse server töötab ja on Grafana serverist juurdepääsetav.
- PromQL-i päringud ei tagasta andmeid: kontrollige, kas PromQL-i päring on õige. Kontrollige Prometheuse logidest vigu. Veenduge, et mõõdik, mida päringate, on olemas ja Prometheus kraabib seda.
- Häiresignaalid ei käivitu: kontrollige, kas häire reegel on õigesti määratletud. Kontrollige Prometheuse logidest vigu. Veenduge, et Alertmanager töötab ja on õigesti konfigureeritud.
- Jõudlusprobleemid: kui teil on jõudlusprobleeme, kaaluge Prometheuse ja Grafana eksemplaride horisontaalset skaleerimist. Optimeerige oma PromQL-i päringuid, et vähendada koormust Prometheuse serverile.
Alternatiivsed monitooringulahendused
Kuigi Prometheus ja Grafana on võimsad tööriistad, ei ole need mõõdikute kogumiseks ja visualiseerimiseks ainsad võimalused. Muud populaarsed monitooringulahendused hõlmavad:
- Datadog: kommertslik monitooringuplatvorm, mis pakub laia valikut funktsioone, sealhulgas mõõdikute kogumine, logide haldamine ja rakenduste jõudluse jälgimine (APM).
- New Relic: teine kommertslik monitooringuplatvorm, mis pakub rakenduste ja infrastruktuuri jaoks kõikehõlmavaid monitooringuvõimalusi.
- InfluxDB ja Chronograf: ajareana andmebaasi ja visualiseerimisplatvorm, mida sageli kasutatakse alternatiivina Prometheusele ja Grafanale.
- Elasticsearch, Logstash ja Kibana (ELK Stack): populaarne avatud lähtekoodiga komplekt logide haldamiseks ja analüüsimiseks. Kuigi seda kasutatakse peamiselt logide jaoks, saab seda kasutada ka mõõdikute kogumiseks ja visualiseerimiseks.
- Dynatrace: tehisintellektipõhine monitooringuplatvorm, mis pakub terviklikku nähtavust rakenduste ja infrastruktuuri jõudlusesse.
Teie organisatsiooni jaoks parim monitooringulahendus sõltub teie konkreetsetest nõuetest ja eelarvest.
Järeldus
Mõõdikute kogumine on rakenduste ja infrastruktuuri tervise ja jõudluse säilitamiseks hädavajalik. Prometheus ja Grafana pakuvad võimsat ja paindlikku avatud lähtekoodiga lahendust mõõdikute kogumiseks, salvestamiseks ja visualiseerimiseks. Mõistes põhimõisteid ja järgides selles juhendis esitatud parimaid tavasid, saate Prometheust ja Grafanat kasutada tugeva monitooringsüsteemi ülesehitamiseks, mis vastab teie organisatsiooni vajadustele.
Tõhus monitooring koos proaktiivsete häiresignaalide ja kiire intsidentide lahendamisega on kaasaegsete IT-operatsioonide nurgakivi. Selliste tööriistade nagu Prometheus ja Grafana omaksvõtmine annab organisatsioonidele võimaluse pakkuda oma kasutajatele usaldusväärseid ja toimivaid teenuseid, olenemata nende asukohast või tööstusharust.