Slovenščina

Raziščite zbiranje metrik s Prometejem in Grafano. Naučite se učinkovito spremljati svoje aplikacije in infrastrukturo s temi zmogljivimi orodji odprte kode.

Zbiranje metrik: Celovit vodnik s Prometejem in Grafano

V današnji kompleksni IT pokrajini je učinkovito spremljanje ključnega pomena za ohranjanje zdravja in učinkovitosti aplikacij in infrastrukture. Zbiranje metrik zagotavlja temelj za to spremljanje, saj vam omogoča sledenje ključnim kazalnikom uspešnosti (KPI), prepoznavanje potencialnih težav in optimizacijo izrabe virov. Ta celovit vodnik bo raziskal, kako izkoristiti Prometej in Grafano, dve zmogljivi orodji odprte kode, za robustno zbiranje in vizualizacijo metrik.

Kaj je zbiranje metrik?

Zbiranje metrik vključuje zbiranje številčnih podatkov, ki predstavljajo stanje in obnašanje različnih sistemov, aplikacij in komponent infrastrukture skozi čas. Te metrike lahko vključujejo izkoriščenost CPE, porabo pomnilnika, omrežni promet, odzivne čase, stopnje napak in številne druge ustrezne kazalnike. Z analizo teh metrik lahko pridobite dragocen vpogled v učinkovitost in zdravje svojega okolja.

Zakaj je zbiranje metrik pomembno?

Predstavitev Prometeja in Grafane

Prometheus je orodje odprte kode za spremljanje sistemov in opozarjanje, ki je bilo prvotno razvito v SoundCloud. Odlično se obnese pri zbiranju in shranjevanju časovnih podatkov, to je podatkov, indeksiranih s časovnimi žigi. Prometej uporablja model, ki temelji na potegu, za strganje metrik iz ciljev (npr. strežnikov, aplikacij) v rednih intervalih. Ponuja zmogljiv jezik poizvedb (PromQL) za analizo zbranih podatkov in definiranje pravil za opozarjanje.

Grafana je platforma odprte kode za vizualizacijo podatkov in spremljanje. Omogoča vam ustvarjanje interaktivnih nadzornih plošč in grafikonov za vizualizacijo podatkov iz različnih virov, vključno s Prometejem. Grafana ponuja bogat nabor možnosti vizualizacije, vključno z grafikoni, diagrami, tabelami in merilniki. Podpira tudi opozarjanje, ki vam omogoča prejemanje obvestil, ko so presežene določene meje.

Skupaj Prometej in Grafana tvorita zmogljivo in prilagodljivo rešitev za spremljanje, ki jo je mogoče prilagoditi širokemu spektru okolij in primerov uporabe. Močno se uporabljata v praksah DevOps in SRE (Site Reliability Engineering) po vsem svetu.

Arhitektura in koncepti Prometeja

Razumevanje osnovnih komponent Prometeja je bistvenega pomena za učinkovito implementacijo in uporabo:

Potek dela Prometeja

  1. Cilji (aplikacije, strežniki itd.) izpostavljajo metrike. Te metrike so običajno izpostavljene prek končne točke HTTP.
  2. Strežnik Prometeja strga metrike iz konfiguriranih ciljev. Periodično potegne metrike iz teh končnih točk.
  3. Prometej shrani strgane metrike v svoji časovni bazi podatkov.
  4. Uporabniki poizvedujejo metrike z uporabo PromQL. To jim omogoča analizo podatkov ter ustvarjanje grafikonov in nadzornih plošč.
  5. Pravila za opozarjanje se ocenjujejo na podlagi shranjenih metrik. Če je pogoj pravila izpolnjen, se sproži opozorilo.
  6. Alertmanager obravnava sprožena opozorila. Odpravlja podvajanje, jih združuje in usmerja v ustrezne kanale obveščanja.

Arhitektura in koncepti Grafane

Grafana dopolnjuje Prometej z zagotavljanjem uporabniku prijaznega vmesnika za vizualizacijo in analiziranje zbranih metrik:

Potek dela Grafane

  1. Konfigurirajte vire podatkov: Povežite Grafano s svojim strežnikom Prometeja.
  2. Ustvarite nadzorne plošče: Oblikujte nadzorne plošče za vizualizacijo svojih metrik.
  3. Dodajte panele na nadzorne plošče: Dodajte panele za prikaz določenih podatkovnih točk iz Prometeja z uporabo poizvedb PromQL.
  4. Konfigurirajte opozarjanje (izbirno): Nastavite pravila za opozarjanje v Grafani za prejemanje obvestil na podlagi določenih pragov metrik.
  5. Delite nadzorne plošče: Delite nadzorne plošče s svojo ekipo za sodelovanje pri spremljanju in analizi.

Nastavitev Prometeja in Grafane

Ta razdelek ponuja vodnik po korakih za nastavitev Prometeja in Grafane.

Namestitev Prometeja

1. Prenesite Prometej:

Prenesite najnovejšo različico Prometeja z uradne spletne strani: https://prometheus.io/download/. Izberite ustrezen paket za svoj operacijski sistem (npr. Linux, Windows, macOS).

2. Izvlecite arhiv:

Izvlecite preneseni arhiv v imenik po vaši izbiri.

3. Konfigurirajte Prometej:

Ustvarite konfiguracijsko datoteko `prometheus.yml`. Ta datoteka definira cilje, ki jih bo Prometej strgal, in druge možnosti konfiguracije. Osnovna konfiguracija je lahko videti takole:


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

Ta konfiguracija definira dve opravili strganja: eno za sam Prometej (strganje lastnih metrik) in eno za node_exporter, ki deluje na lokalnem gostitelju na vratih 9100. `scrape_interval` določa, kako pogosto bo Prometej strgal cilje.

4. Zaženite Prometej:

Zaženite izvedljivo datoteko Prometeja iz imenika, kamor ste izvlekli arhiv:

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

Prometej se bo zagnal in poslušal na vratih 9090 privzeto. Do spletnega vmesnika Prometeja lahko dostopate v svojem brskalniku na http://localhost:9090.

Namestitev Grafane

1. Prenesite Grafano:

Prenesite najnovejšo različico Grafane z uradne spletne strani: https://grafana.com/grafana/download. Izberite ustrezen paket za svoj operacijski sistem.

2. Namestite Grafano:

Sledite navodilom za namestitev za svoj operacijski sistem. Na primer, na 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. Zaženite Grafano:

Zaženite storitev Grafane:

sudo systemctl start grafana-server

4. Dostopajte do Grafane:

Grafana se bo zagnala in poslušala na vratih 3000 privzeto. Do spletnega vmesnika Grafane lahko dostopate v svojem brskalniku na http://localhost:3000.

Privzeto uporabniško ime in geslo sta `admin` in `admin`. Ob prvi prijavi boste pozvani, da spremenite geslo.

Povezovanje Grafane s Prometejem

Za vizualizacijo metrik iz Prometeja v Grafani morate konfigurirati Prometej kot vir podatkov v Grafani.

1. Dodajte vir podatkov:

V spletnem vmesniku Grafane se pomaknite do Konfiguracija > Viri podatkov in kliknite Dodaj vir podatkov.

2. Izberite Prometej:

Izberite Prometej kot vrsto vira podatkov.

3. Konfigurirajte povezavo Prometeja:

Vnesite URL svojega strežnika Prometeja (npr. `http://localhost:9090`). Konfigurirajte druge možnosti po potrebi (npr. preverjanje pristnosti).

4. Shranite in preizkusite:

Kliknite Shrani in preizkusi, da preverite, ali se Grafana lahko uspešno poveže s Prometejem.

Ustvarjanje nadzornih plošč v Grafani

Ko ste povezali Grafano s Prometejem, lahko ustvarite nadzorne plošče za vizualizacijo svojih metrik.

1. Ustvarite novo nadzorno ploščo:

V spletnem vmesniku Grafane kliknite ikono + v stranski vrstici in izberite Nadzorna plošča.

2. Dodajte panel:

Kliknite Dodaj prazen panel, da dodate nov panel na nadzorno ploščo.

3. Konfigurirajte panel:


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

Ta poizvedba izračuna stopnjo spremembe časa CPE, ki ga uporabljajo procesi, ki jih zbira node_exporter v 5-minutnem intervalu.

4. Shranite nadzorno ploščo:

Kliknite ikono za shranjevanje, da shranite nadzorno ploščo.

PromQL: Jezik poizvedb Prometeja

PromQL je zmogljiv jezik poizvedb, ki se uporablja za pridobivanje in manipuliranje metrik, shranjenih v Prometeju. Omogoča vam izvajanje širokega nabora operacij, vključno z:

Primeri PromQL


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

Učenje PromQL je bistvenega pomena za učinkovito uporabo Prometeja in Grafane. Za celovit vodnik po jeziku si oglejte dokumentacijo Prometeja.

Opozarjanje s Prometejem in Alertmanagerjem

Prometej ponuja robusten sistem opozarjanja, ki vam omogoča definiranje pravil na podlagi vrednosti metrik. Ko je pogoj pravila izpolnjen, se sproži opozorilo, Alertmanager pa obravnava postopek obveščanja.

Definiranje pravil opozarjanja

Pravila opozarjanja so definirana v konfiguracijski datoteki `prometheus.yml`. Tukaj je primer pravila opozarjanja, ki se sproži, ko izkoriščenost CPE preseže 80 %:


rule_files:
  - "rules.yml"

Nato v datoteko z imenom `rules.yml` postavite pravila, kot je to:


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: "Zaznana visoka izkoriščenost CPE"
      description: "Izkoriščenost CPE je nad 80 % na {{ $labels.instance }}"

Pojasnilo:

Konfiguriranje Alertmanagerja

Alertmanager obravnava usmerjanje in obveščanje o opozorilih. Alertmanager morate konfigurirati, da določite, kam naj se pošiljajo opozorila (npr. e-pošta, Slack, PagerDuty). Za podrobna navodila za konfiguracijo si oglejte dokumentacijo Alertmanagerja.

Minimalna konfiguracija `alertmanager.yml` je lahko videti takole:


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

Ta konfiguracija pošilja opozorila na webhook na lokalnem gostitelju na vratih 8080. Razdelek `receivers` lahko prilagodite za uporabo storitev, kot sta Slack ali e-pošta.

Praktični primeri in primeri uporabe

Prometej in Grafano se lahko uporabljata za spremljanje širokega nabora aplikacij in komponent infrastrukture. Tukaj je nekaj praktičnih primerov:

Primer: Spremljanje mikroservisne arhitekture

V mikroservisni arhitekturi se Prometej in Grafano lahko uporabljata za spremljanje zdravja in učinkovitosti posameznih storitev, pa tudi celotnega sistema. Vsaka storitev lahko izpostavi svoje metrike, kot so stopnje zahtev, odzivni časi in stopnje napak. Prometej lahko nato strga te metrike, Grafana pa se lahko uporablja za njihovo vizualizacijo. To vam omogoča hitro prepoznavanje ozkih grl učinkovitosti ali napak v določenih storitvah.

Napredne tehnike in najboljše prakse

Da bi kar najbolje izkoristili Prometej in Grafano, razmislite o naslednjih naprednih tehnikah in najboljših praksah:

Odpravljanje pogostih težav

Tudi s skrbnim načrtovanjem in implementacijo lahko pri uporabi Prometeja in Grafane naletite na težave. Tukaj je nekaj pogostih težav in njihovih rešitev:

Alternativne rešitve za spremljanje

Čeprav sta Prometej in Grafana zmogljivi orodji, nista edini možnosti za zbiranje in vizualizacijo metrik. Druge priljubljene rešitve za spremljanje vključujejo:

Najboljša rešitev za spremljanje za vašo organizacijo bo odvisna od vaših specifičnih zahtev in proračuna.

Sklep

Zbiranje metrik je bistvenega pomena za ohranjanje zdravja in učinkovitosti aplikacij in infrastrukture. Prometej in Grafana zagotavljata zmogljivo in prilagodljivo rešitev odprte kode za zbiranje, shranjevanje in vizualizacijo metrik. Z razumevanjem osnovnih konceptov in upoštevanjem najboljših praks, opisanih v tem vodniku, lahko izkoristite Prometej in Grafano za izgradnjo robustnega sistema spremljanja, ki ustreza potrebam vaše organizacije.

Učinkovito spremljanje, skupaj s proaktivnim opozarjanjem in hitrim odzivom na incidente, je temelj sodobnih IT operacij. Sprejemanje orodij, kot sta Prometej in Grafana, organizacijam omogoča zagotavljanje zanesljivih in učinkovitih storitev svojim uporabnikom, ne glede na njihovo lokacijo ali panogo.