Magyar

Fedezze fel a metrikagyűjtést a Prometheus és a Grafana segítségével. Tanulja meg, hogyan monitorozhatja hatékonyan alkalmazásait és infrastruktúráját ezekkel a hatékony, nyílt forráskódú eszközökkel.

Metrikagyűjtés: Átfogó útmutató a Prometheus és a Grafana segítségével

A mai komplex IT környezetben a hatékony monitorozás elengedhetetlen az alkalmazások és az infrastruktúra állapotának és teljesítményének fenntartásához. A metrikagyűjtés képezi ennek a monitorozásnak az alapját, lehetővé téve a legfontosabb teljesítménymutatók (KPI-k) nyomon követését, a potenciális problémák azonosítását és az erőforrás-kihasználás optimalizálását. Ez az átfogó útmutató bemutatja, hogyan használhatja ki a Prometheus és a Grafana, két hatékony nyílt forráskódú eszközt a robusztus metrikagyűjtéshez és vizualizációhoz.

Mi az a Metrikagyűjtés?

A metrikagyűjtés magában foglalja numerikus adatok gyűjtését, amelyek különféle rendszerek, alkalmazások és infrastrukturális elemek állapotát és viselkedését képviselik az idő múlásával. Ezek a metrikák tartalmazhatják a CPU-kihasználtságot, a memóriafelhasználást, a hálózati forgalmat, a válaszidőket, a hibaszázalékokat és sok más releváns mutatót. Ezen metrikák elemzésével értékes betekintést nyerhet a környezet teljesítményébe és állapotába.

Miért fontos a metrikagyűjtés?

A Prometheus és a Grafana bemutatása

Prometheus egy nyílt forráskódú rendszer-monitorozó és riasztó eszközkészlet, amelyet eredetileg a SoundCloud-nál fejlesztettek ki. Kiválóan alkalmas idősoros adatok gyűjtésére és tárolására, amelyek időbélyegekkel indexelt adatok. A Prometheus egy lekérdezéses modellt használ a metrikák célpontokról (pl. szerverek, alkalmazások) történő rendszeres időközönkénti begyűjtésére. Hatékony lekérdezőnyelvet (PromQL) kínál a gyűjtött adatok elemzéséhez és a riasztási szabályok meghatározásához.

Grafana egy nyílt forráskódú adatvizualizációs és monitorozó platform. Lehetővé teszi interaktív irányítópultok és grafikonok létrehozását, amelyekkel különböző forrásokból, köztük a Prometheusból származó adatokat vizualizálhat. A Grafana gazdag vizualizációs lehetőségeket kínál, beleértve a grafikonokat, diagramokat, táblázatokat és mérőműszereket. Támogatja a riasztásokat is, lehetővé téve értesítések fogadását, ha bizonyos küszöbértékek túllépésre kerülnek.

A Prometheus és a Grafana együtt egy hatékony és rugalmas monitorozási megoldást alkot, amely a környezetek és felhasználási esetek széles köréhez adaptálható. Széles körben használják a DevOps és az SRE (Site Reliability Engineering) gyakorlatokban világszerte.

A Prometheus architektúrája és koncepciói

A Prometheus alapvető összetevőinek megértése elengedhetetlen a hatékony megvalósításhoz és felhasználáshoz:

Prometheus munkafolyamat

  1. A célpontok (alkalmazások, szerverek stb.) metrikákat tesznek közzé. Ezek a metrikák általában egy HTTP végponton keresztül kerülnek közzétételre.
  2. A Prometheus szerver begyűjti a metrikákat a konfigurált célpontokról. Rendszeresen lekéri a metrikákat ezekről a végpontokról.
  3. A Prometheus a begyűjtött metrikákat az idősoros adatbázisában tárolja.
  4. A felhasználók a PromQL segítségével kérdezik le a metrikákat. Ez lehetővé teszi számukra az adatok elemzését, valamint grafikonok és irányítópultok létrehozását.
  5. A riasztási szabályok a tárolt metrikák alapján kerülnek kiértékelésre. Ha egy szabály feltétele teljesül, riasztás indul.
  6. Az Alertmanager kezeli a kioldott riasztásokat. Eltávolítja a duplikációkat, csoportosítja és a megfelelő értesítési csatornákra irányítja őket.

A Grafana architektúrája és koncepciói

A Grafana kiegészíti a Prometheus-t azáltal, hogy felhasználóbarát felületet biztosít a gyűjtött metrikák vizualizálásához és elemzéséhez:

Grafana munkafolyamat

  1. Adatforrások konfigurálása: Csatlakoztassa a Grafanát a Prometheus szerverhez.
  2. Irányítópultok létrehozása: Tervezzen irányítópultokat a metrikák vizualizálásához.
  3. Panelek hozzáadása az irányítópultokhoz: Adjon hozzá paneleket a Prometheusból származó adott adatpontok megjelenítéséhez PromQL lekérdezések segítségével.
  4. Riasztás konfigurálása (opcionális): Állítson be riasztási szabályokat a Grafanán belül, hogy értesítéseket kapjon bizonyos metrikaküszöbértékek alapján.
  5. Irányítópultok megosztása: Ossza meg az irányítópultokat a csapatával a monitorozás és az elemzés terén való együttműködés érdekében.

A Prometheus és a Grafana beállítása

Ez a szakasz lépésről lépésre útmutatót nyújt a Prometheus és a Grafana beállításához.

A Prometheus telepítése

1. A Prometheus letöltése:

Töltse le a Prometheus legújabb verzióját a hivatalos weboldalról: https://prometheus.io/download/. Válassza ki a megfelelő csomagot az operációs rendszeréhez (pl. Linux, Windows, macOS).

2. Az archívum kibontása:

Bontsa ki a letöltött archívumot egy tetszőleges könyvtárba.

3. A Prometheus konfigurálása:

Hozzon létre egy `prometheus.yml` konfigurációs fájlt. Ez a fájl határozza meg azokat a célpontokat, amelyeket a Prometheus begyűjt, és egyéb konfigurációs opciókat. Egy alapszintű konfiguráció így nézhet ki:


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

Ez a konfiguráció két begyűjtési feladatot határoz meg: egyet magának a Prometheusnak (saját metrikáinak begyűjtése), egyet pedig egy localhost 9100 porton futó node_exporternek. A `scrape_interval` meghatározza, hogy milyen gyakran gyűjtse be a Prometheus a célpontokat.

4. A Prometheus indítása:

Futtassa a Prometheus futtatható fájlját abból a könyvtárból, ahová kibontotta az archívumot:

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

A Prometheus elindul, és alapértelmezés szerint a 9090-es porton figyel. A Prometheus webes felületét a böngészőjében a http://localhost:9090 címen érheti el.

A Grafana telepítése

1. A Grafana letöltése:

Töltse le a Grafana legújabb verzióját a hivatalos weboldalról: https://grafana.com/grafana/download. Válassza ki a megfelelő csomagot az operációs rendszeréhez.

2. A Grafana telepítése:

Kövesse az operációs rendszerére vonatkozó telepítési utasításokat. Például Debian/Ubuntu rendszeren:


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. A Grafana indítása:

Indítsa el a Grafana szolgáltatást:

sudo systemctl start grafana-server

4. A Grafana elérése:

A Grafana elindul, és alapértelmezés szerint a 3000-es porton figyel. A Grafana webes felületét a böngészőjében a http://localhost:3000 címen érheti el.

Az alapértelmezett felhasználónév és jelszó `admin` és `admin`. Az első bejelentkezéskor a rendszer kérni fogja a jelszó megváltoztatását.

A Grafana összekötése a Prometheus-szal

A Prometheusból származó metrikák Grafanában történő vizualizálásához a Prometheus-t adatforrásként kell konfigurálnia a Grafanában.

1. Adatforrás hozzáadása:

A Grafana webes felületén navigáljon a Configuration > Data Sources menüpontra, és kattintson az Add data source gombra.

2. A Prometheus kiválasztása:

Válassza a Prometheus-t adatforrás típusaként.

3. A Prometheus kapcsolat konfigurálása:

Adja meg a Prometheus szerver URL-jét (pl. `http://localhost:9090`). Szükség szerint konfiguráljon más opciókat (pl. hitelesítés).

4. Mentés és tesztelés:

Kattintson a Save & Test gombra, hogy ellenőrizze, a Grafana sikeresen tud-e csatlakozni a Prometheushoz.

Irányítópultok létrehozása a Grafanában

Miután összekapcsolta a Grafanát a Prometheus-szal, irányítópultokat hozhat létre a metrikák vizualizálásához.

1. Új irányítópult létrehozása:

A Grafana webes felületén kattintson a + ikonra az oldalsávban, és válassza a Dashboard lehetőséget.

2. Panel hozzáadása:

Kattintson az Add an empty panel gombra egy új panel hozzáadásához az irányítópulthoz.

3. A panel konfigurálása:


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

Ez a lekérdezés kiszámítja a node_exporter által gyűjtött folyamatok által használt CPU-idő változásának sebességét egy 5 perces intervallumon keresztül.

4. Az irányítópult mentése:

Kattintson a mentés ikonra az irányítópult mentéséhez.

PromQL: A Prometheus lekérdezőnyelve

A PromQL egy hatékony lekérdezőnyelv, amelyet a Prometheusban tárolt metrikák lekérésére és manipulálására használnak. Lehetővé teszi a műveletek széles körének végrehajtását, beleértve a következőket:

PromQL példák


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])
A PromQL elsajátítása elengedhetetlen a Prometheus és a Grafana hatékony használatához. A nyelv átfogó útmutatóját a Prometheus dokumentációjában találja.

Riasztás a Prometheus és az Alertmanager segítségével

A Prometheus robusztus riasztási rendszert biztosít, amely lehetővé teszi szabályok definiálását a metrikaértékek alapján. Ha egy szabály feltétele teljesül, riasztás indul, és az Alertmanager kezeli az értesítési folyamatot.

Riasztási szabályok definiálása

A riasztási szabályok a `prometheus.yml` konfigurációs fájlban vannak definiálva. Íme egy példa egy riasztási szabályra, amely akkor indul, ha a CPU-kihasználtság meghaladja a 80%-ot:

rule_files:
  - "rules.yml"

Ezután egy `rules.yml` nevű fájlban helyezzen el ilyen szabályokat:


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: "Magas CPU-használat észlelve"
      description: "A CPU-használat meghaladja a 80%-ot a következő példányon: {{ $labels.instance }}"

Magyarázat:

Az Alertmanager konfigurálása

Az Alertmanager kezeli a riasztások irányítását és értesítését. Konfigurálnia kell az Alertmanagert, hogy megadja, hová kell küldeni a riasztásokat (pl. e-mail, Slack, PagerDuty). A részletes konfigurációs utasításokat az Alertmanager dokumentációjában találja.

Egy minimális `alertmanager.yml` konfiguráció így nézhet ki:


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

Ez a konfiguráció a riasztásokat egy localhost 8080-as porton lévő webhookra küldi. A `receivers` szakaszt testre szabhatja olyan szolgáltatások használatára, mint a Slack vagy az e-mail.

Gyakorlati példák és felhasználási esetek

A Prometheus és a Grafana az alkalmazások és infrastrukturális elemek széles körének monitorozására használható. Íme néhány gyakorlati példa:

Példa: Mikroszolgáltatás-architektúra monitorozása

Egy mikroszolgáltatás-architektúrában a Prometheus és a Grafana használható az egyes szolgáltatások, valamint a teljes rendszer állapotának és teljesítményének monitorozására. Minden szolgáltatás közzéteheti saját metrikáit, például a kérések sebességét, a válaszidőket és a hibaszázalékokat. A Prometheus ezután begyűjtheti ezeket a metrikákat, és a Grafana felhasználható a vizualizálásukra. Ez lehetővé teszi a teljesítmény szűk keresztmetszeteinek vagy hibáinak gyors azonosítását bizonyos szolgáltatásokban.

Haladó technikák és bevált módszerek

A Prometheus és a Grafana maximális kihasználása érdekében fontolja meg a következő haladó technikákat és bevált módszereket:

Gyakori problémák elhárítása

Még gondos tervezéssel és megvalósítással is előfordulhatnak problémák a Prometheus és a Grafana használata során. Íme néhány gyakori probléma és azok megoldásai:

Alternatív monitorozási megoldások

Bár a Prometheus és a Grafana hatékony eszközök, nem ezek az egyetlen lehetőségek a metrikagyűjtéshez és vizualizációhoz. Más népszerű monitorozási megoldások a következők: A szervezete számára legjobb monitorozási megoldás a konkrét követelményektől és a költségvetéstől függ.

Következtetés

A metrikagyűjtés elengedhetetlen az alkalmazások és az infrastruktúra állapotának és teljesítményének fenntartásához. A Prometheus és a Grafana egy hatékony és rugalmas nyílt forráskódú megoldást kínál a metrikák gyűjtésére, tárolására és vizualizálására. A legfontosabb koncepciók megértésével és az ebben az útmutatóban vázolt bevált módszerek követésével kihasználhatja a Prometheus és a Grafana előnyeit egy olyan robusztus monitorozási rendszer kiépítéséhez, amely megfelel a szervezete igényeinek. A hatékony monitorozás a proaktív riasztással és a gyors incidensreagálással párosulva a modern IT-műveletek sarokköve. A Prometheushoz és a Grafanához hasonló eszközök alkalmazása felhatalmazza a szervezeteket arra, hogy megbízható és jól teljesítő szolgáltatásokat nyújtsanak felhasználóiknak, függetlenül azok helyétől vagy iparágától.
Metrikagyűjtés: Átfogó útmutató a Prometheus és a Grafana segítségével | MLOG