Latviešu

Izpētiet metrikas apkopošanu ar Prometheus un Grafana. Uzziniet, kā efektīvi uzraudzīt savas lietojumprogrammas un infrastruktūru, izmantojot šos jaudīgos atvērtā pirmkoda rīkus.

Metrikas apkopošana: Visaptverošs ceļvedis ar Prometheus un Grafana

Mūsdienu sarežģītajā IT vidē efektīva uzraudzība ir ļoti svarīga lietojumprogrammu un infrastruktūras veselības un veiktspējas uzturēšanai. Metriku apkopošana nodrošina pamatu šai uzraudzībai, ļaujot izsekot galvenos veiktspējas rādītājus (KPI), identificēt potenciālās problēmas un optimizēt resursu izmantošanu. Šajā visaptverošajā ceļvedī tiks aplūkots, kā izmantot Prometheus un Grafana — divus jaudīgus atvērtā pirmkoda rīkus — efektīvai metrikas apkopošanai un vizualizēšanai.

Kas ir metrikas apkopošana?

Metriku apkopošana ietver skaitlisku datu vākšanu, kas laika gaitā atspoguļo dažādu sistēmu, lietojumprogrammu un infrastruktūras komponentu stāvokli un uzvedību. Šīs metrikas var ietvert CPU lietojumu, atmiņas patēriņu, tīkla datplūsmu, reakcijas laikus, kļūdu biežumu un daudzus citus svarīgus rādītājus. Analizējot šīs metrikas, jūs varat gūt vērtīgu ieskatu par savas vides veiktspēju un veselību.

Kāpēc metrikas apkopošana ir svarīga?

Iepazīšanās ar Prometheus un Grafana

Prometheus ir atvērtā pirmkoda sistēmu uzraudzības un brīdinājumu rīkkopa, kas sākotnēji tika izstrādāta SoundCloud. Tā izceļas ar laika rindu datu (datu, kas indeksēti pēc laika zīmogiem) apkopošanu un glabāšanu. Prometheus izmanto pievilkšanas modeli, lai periodiski izgūtu metrikas no mērķiem (piemēram, serveriem, lietojumprogrammām). Tā piedāvā jaudīgu vaicājumu valodu (PromQL) savākto datu analīzei un brīdinājumu noteikumu definēšanai.

Grafana ir atvērtā pirmkoda datu vizualizācijas un uzraudzības platforma. Tā ļauj izveidot interaktīvus informācijas paneļus un grafikus, lai vizualizētu datus no dažādiem avotiem, tostarp Prometheus. Grafana nodrošina bagātīgu vizualizācijas opciju kopumu, tostarp grafikus, diagrammas, tabulas un mērinstrumentus. Tā atbalsta arī brīdinājumus, ļaujot saņemt paziņojumus, kad tiek pārsniegti noteikti sliekšņi.

Kopā Prometheus un Grafana veido jaudīgu un elastīgu uzraudzības risinājumu, ko var pielāgot plašam vides un lietošanas gadījumu klāstam. Tās plaši izmanto DevOps un SRE (Site Reliability Engineering) praksē visā pasaulē.

Prometheus arhitektūra un koncepcijas

Lai efektīvi ieviestu un izmantotu Prometheus, ir svarīgi saprast tā galvenās sastāvdaļas:

Prometheus darbplūsma

  1. Mērķi (Lietojumprogrammas, serveri u.c.) nodrošina metrikas. Šīs metrikas parasti tiek nodrošinātas, izmantojot HTTP galapunktu.
  2. Prometheus Server izgūst metrikas no konfigurētajiem mērķiem. Tas periodiski izvelk metrikas no šiem galapunktiem.
  3. Prometheus glabā izgūtās metrikas savā laika rindu datubāzē.
  4. Lietotāji veic vaicājumus par metrikām, izmantojot PromQL. Tas ļauj viņiem analizēt datus un izveidot grafikus un informācijas paneļus.
  5. Brīdinājumu noteikumi tiek novērtēti, pamatojoties uz saglabātajām metrikām. Ja tiek izpildīts noteikuma nosacījums, tiek izsaukts brīdinājums.
  6. Alertmanager apstrādā izsauktos brīdinājumus. Tas dublē, grupē un novirza tos uz attiecīgajiem paziņojumu kanāliem.

Grafana arhitektūra un koncepcijas

Grafana papildina Prometheus, nodrošinot lietotājam draudzīgu saskarni savākto metrikas vizualizēšanai un analīzei:

Grafana darbplūsma

  1. Konfigurējiet datu avotus: savienojiet Grafana ar savu Prometheus serveri.
  2. Izveidojiet informācijas paneļus: izveidojiet informācijas paneļus savu metrikas vizualizēšanai.
  3. Pievienojiet paneļus informācijas paneļiem: pievienojiet paneļus, lai parādītu konkrētus datus no Prometheus, izmantojot PromQL vaicājumus.
  4. Konfigurējiet brīdinājumus (nav obligāti): iestatiet brīdinājumu noteikumus Grafana, lai saņemtu paziņojumus, pamatojoties uz konkrētiem metrikas sliekšņiem.
  5. Kopīgojiet informācijas paneļus: kopīgojiet informācijas paneļus ar savu komandu, lai sadarbotos uzraudzībā un analīzē.

Prometheus un Grafana iestatīšana

Šajā sadaļā ir sniegts soli pa solim ceļvedis Prometheus un Grafana iestatīšanai.

Prometheus instalēšana

1. Lejupielādējiet Prometheus:

Lejupielādējiet jaunāko Prometheus versiju no oficiālās vietnes: https://prometheus.io/download/. Atlasiet piemērotu pakotni savai operētājsistēmai (piemēram, Linux, Windows, macOS).

2. Izpakojiet arhīvu:

Izpakojiet lejupielādēto arhīvu izvēlētajā direktorijā.

3. Konfigurējiet Prometheus:

Izveidojiet konfigurācijas failu `prometheus.yml`. Šis fails definē mērķus, kurus Prometheus izgūs, un citas konfigurācijas opcijas. Pamata konfigurācija var izskatīties šādi:


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']

Šī konfigurācija definē divus izgūšanas uzdevumus: vienu pašam Prometheus (izgūst tā metrikas) un vienu node_exporter, kas darbojas uz localhost 9100. portā. `scrape_interval` norāda, cik bieži Prometheus izgūs mērķus.

4. Palaidiet Prometheus:

Palaidiet Prometheus izpildāmo failu no direktorijas, kurā izpakojāt arhīvu:

./prometheus --config.file=prometheus.yml

Prometheus sāks darboties un pēc noklusējuma klausīsies 9090. portā. Prometheus tīmekļa saskarni varat atvērt savā pārlūkprogrammā vietnē http://localhost:9090.

Grafana instalēšana

1. Lejupielādējiet Grafana:

Lejupielādējiet jaunāko Grafana versiju no oficiālās vietnes: https://grafana.com/grafana/download. Atlasiet piemērotu pakotni savai operētājsistēmai.

2. Instalējiet Grafana:

Izpildiet instalācijas norādījumus savai operētājsistēmai. Piemēram, Debian/Ubuntu:


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. Palaidiet Grafana:

Palaidiet Grafana pakalpojumu:

sudo systemctl start grafana-server

4. Piekļūstiet Grafana:

Grafana sāks darboties un pēc noklusējuma klausīsies 3000. portā. Grafana tīmekļa saskarni varat atvērt savā pārlūkprogrammā vietnē http://localhost:3000.

Noklusētais lietotājvārds un parole ir `admin` un `admin`. Pirmajā pieteikšanās reizē jums tiks piedāvāts mainīt paroli.

Grafanas savienošana ar Prometheus

Lai vizualizētu metrikas no Prometheus Grafana, jums ir jākonfigurē Prometheus kā datu avots Grafana.

1. Pievienojiet datu avotu:

Grafana tīmekļa saskarnē dodieties uz Konfigurācija > Datu avoti un noklikšķiniet uz Pievienot datu avotu.

2. Atlasiet Prometheus:

Atlasiet Prometheus kā datu avota veidu.

3. Konfigurējiet Prometheus savienojumu:

Ievadiet savu Prometheus servera URL (piemēram, `http://localhost:9090`). Konfigurējiet citas opcijas pēc vajadzības (piemēram, autentifikācija).

4. Saglabājiet un pārbaudiet:

Noklikšķiniet uz Saglabāt un pārbaudīt, lai pārbaudītu, vai Grafana var veiksmīgi savienoties ar Prometheus.

Informācijas paneļu izveide Grafana

Kad esat savienojis Grafana ar Prometheus, varat izveidot informācijas paneļus savu metrikas vizualizēšanai.

1. Izveidojiet jaunu informācijas paneli:

Grafana tīmekļa saskarnē sānu joslā noklikšķiniet uz ikonas + un atlasiet Informācijas panelis.

2. Pievienojiet paneli:

Noklikšķiniet uz Pievienot tukšu paneli, lai pievienotu jaunu paneli informācijas panelim.

3. Konfigurējiet paneli:


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

Šis vaicājums aprēķina CPU laika izmaiņu ātrumu, ko izmanto procesi, ko node_exporter savācis 5 minūšu intervālā.

4. Saglabājiet informācijas paneli:

Noklikšķiniet uz saglabāšanas ikonas, lai saglabātu informācijas paneli.

PromQL: Prometheus vaicājumu valoda

PromQL ir jaudīga vaicājumu valoda, ko izmanto Prometheus glabāto metrikas iegūšanai un manipulēšanai. Tā ļauj veikt plašu operāciju klāstu, tostarp:

PromQL piemēri


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

rate(http_requests_total[5m])

PromQL apgūšana ir būtiska, lai efektīvi izmantotu Prometheus un Grafana. Lai iegūtu visaptverošu valodas ceļvedi, skatiet Prometheus dokumentāciju.

Brīdinājumi ar Prometheus un Alertmanager

Prometheus nodrošina izturīgu brīdinājumu sistēmu, kas ļauj definēt noteikumus, pamatojoties uz metrikas vērtībām. Kad tiek izpildīts noteikuma nosacījums, tiek izsaukts brīdinājums, un Alertmanager apstrādā paziņojumu procesu.

Brīdinājumu noteikumu definēšana

Brīdinājumu noteikumi ir definēti konfigurācijas failā `prometheus.yml`. Šeit ir piemērs brīdinājuma noteikumam, kas tiek izsaukts, ja CPU lietojums pārsniedz 80%:


rule_files:
  - "rules.yml"

Pēc tam failā ar nosaukumu `rules.yml` ievietojiet šādus noteikumus:


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 }}"

Paskaidrojums:

Alertmanager konfigurēšana

Alertmanager apstrādā brīdinājumu maršrutēšanu un paziņošanu. Jums ir jākonfigurē Alertmanager, lai norādītu, kur brīdinājumi ir jānosūta (piemēram, e-pasts, Slack, PagerDuty). Detalizētus konfigurācijas norādījumus skatiet Alertmanager dokumentācijā.

Minimāla `alertmanager.yml` konfigurācija var izskatīties šādi:


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/'

Šī konfigurācija nosūta brīdinājumus uz webhook uz localhost 8080. portu. Jūs varat pielāgot `receivers` sadaļu, lai izmantotu tādus pakalpojumus kā Slack vai e-pasts.

Praktiski piemēri un lietošanas gadījumi

Prometheus un Grafana var izmantot plaša lietojumprogrammu un infrastruktūras komponentu uzraudzībai. Šeit ir daži praktiski piemēri:

Piemērs: Mikropakalpojumu arhitektūras uzraudzība

Mikropakalpojumu arhitektūrā Prometheus un Grafana var izmantot, lai uzraudzītu atsevišķu pakalpojumu, kā arī kopējās sistēmas veselību un veiktspēju. Katrs pakalpojums var nodrošināt savas metrikas, piemēram, pieprasījumu ātrumu, reakcijas laikus un kļūdu biežumu. Prometheus pēc tam var izgūt šīs metrikas, un Grafana var izmantot tās vizualizēšanai. Tas ļauj ātri identificēt veiktspējas šaurās vietas vai kļūmes konkrētos pakalpojumos.

Papildu metodes un paraugprakses

Lai maksimāli izmantotu Prometheus un Grafana, apsveriet šādas papildu metodes un paraugprakses:

Bieži sastopamo problēmu novēršana

Pat ar rūpīgu plānošanu un ieviešanu, izmantojot Prometheus un Grafana, var rasties problēmas. Šeit ir dažas bieži sastopamas problēmas un to risinājumi:

Alternatīvi uzraudzības risinājumi

Lai gan Prometheus un Grafana ir jaudīgi rīki, tie nav vienīgās iespējas metrikas apkopošanai un vizualizēšanai. Citi populāri uzraudzības risinājumi ietver:

Labākais uzraudzības risinājums jūsu organizācijai būs atkarīgs no jūsu specifiskajām prasībām un budžeta.

Secinājums

Metrikas apkopošana ir būtiska lietojumprogrammu un infrastruktūras veselības un veiktspējas uzturēšanai. Prometheus un Grafana nodrošina jaudīgu un elastīgu atvērtā pirmkoda risinājumu metrikas apkopošanai, glabāšanai un vizualizēšanai. Saprotot galvenās koncepcijas un ievērojot šajā ceļvedī izklāstītās paraugprakses, jūs varat izmantot Prometheus un Grafana, lai izveidotu izturīgu uzraudzības sistēmu, kas atbilst jūsu organizācijas vajadzībām.

Efektīva uzraudzība, kopā ar proaktīviem brīdinājumiem un ātru incidentu novēršanu, ir mūsdienu IT operāciju stūrakmens. Tādu rīku kā Prometheus un Grafana izmantošana dod organizācijām iespēju nodrošināt uzticamus un efektīvus pakalpojumus saviem lietotājiem neatkarīgi no viņu atrašanās vietas vai nozares.

Metrikas apkopošana: Visaptverošs ceļvedis ar Prometheus un Grafana | MLOG