Suomi

Tutustu mittatietojen keruuseen Prometheuksen ja Grafanan avulla. Opi valvomaan sovelluksiasi ja infrastruktuuriasi tehokkaasti näillä tehokkailla avoimen lähdekoodin työkaluilla.

Mittatietojen keruu: Kattava opas Prometheuksen ja Grafanan avulla

Tämän päivän monimutkaisessa IT-ympäristössä tehokas valvonta on ratkaisevan tärkeää sovellusten ja infrastruktuurin toimivuuden ja suorituskyvyn ylläpitämiseksi. Mittatietojen keruu luo perustan tälle valvonnalle, minkä avulla voit seurata keskeisiä suorituskykyindikaattoreita (KPI), tunnistaa mahdolliset ongelmat ja optimoida resurssien käyttöä. Tämä kattava opas tutkii, kuinka Prometheusta ja Grafanaa, kahta tehokasta avoimen lähdekoodin työkalua, voidaan hyödyntää vankkaan mittatietojen keräämiseen ja visualisointiin.

Mitä on mittatietojen keruu?

Mittatietojen keruu tarkoittaa numeerisen tiedon keräämistä, joka edustaa eri järjestelmien, sovellusten ja infrastruktuurin komponenttien tilaa ja käyttäytymistä ajan mittaan. Nämä mittarit voivat sisältää suorittimen käyttöasteen, muistin kulutuksen, verkkoliikenteen, vasteajat, virheprosentit ja monia muita olennaisia indikaattoreita. Analysoimalla näitä mittareita voit saada arvokkaita tietoja ympäristösi suorituskyvystä ja toimivuudesta.

Miksi mittatietojen keruu on tärkeää?

Esittelyssä Prometheus ja Grafana

Prometheus on avoimen lähdekoodin järjestelmien valvonta- ja hälytystyökalupaketti, joka kehitettiin alun perin SoundCloudissa. Se on erinomainen aikasarjatietojen keräämisessä ja tallentamisessa; kyseessä on aikaleimojen perusteella indeksoitu data. Prometheus käyttää pull-pohjaista mallia mittatietojen keräämiseen kohteista (esim. palvelimet, sovellukset) säännöllisin väliajoin. Se tarjoaa tehokkaan kyselykielen (PromQL) kerätyn tiedon analysointiin ja hälytyssääntöjen määrittelyyn.

Grafana on avoimen lähdekoodin tiedon visualisointi- ja valvonta-alusta. Sen avulla voit luoda interaktiivisia mittaristoja ja kaavioita tietojen visualisointiin eri lähteistä, mukaan lukien Prometheus. Grafana tarjoaa laajan valikoiman visualisointivaihtoehtoja, kuten kaavioita, taulukoita ja mittareita. Se tukee myös hälytyksiä, joiden avulla voit vastaanottaa ilmoituksia tiettyjen kynnysarvojen ylittämisestä.

Yhdessä Prometheus ja Grafana muodostavat tehokkaan ja joustavan valvontaratkaisun, joka voidaan mukauttaa monenlaisiin ympäristöihin ja käyttötapauksiin. Ne hyödynnetään laajasti DevOps- ja SRE (Site Reliability Engineering) -käytännöissä maailmanlaajuisesti.

Prometheuksen arkkitehtuuri ja käsitteet

Prometheuksen ydinkomponenttien ymmärtäminen on olennaista tehokkaalle toteutukselle ja hyödyntämiselle:

Prometheuksen työnkulku

  1. Kohteet (sovellukset, palvelimet jne.) paljastavat mittatietoja. Nämä mittarit paljastetaan yleensä HTTP-päätepisteen kautta.
  2. Prometheus Server kerää mittatietoja määritetyiltä kohteilta. Se vetää mittatietoja näistä päätepisteistä säännöllisesti.
  3. Prometheus tallentaa kerätyt mittarit aikasarjatietokantaansa.
  4. Käyttäjät kysyvät mittatietoja PromQL:n avulla. Tämä mahdollistaa tietojen analysoinnin ja kaavioiden ja mittaristojen luomisen.
  5. Hälytyssäännöt arvioidaan tallennettujen mittatietojen perusteella. Jos säännön ehto täyttyy, hälytys laukaistaan.
  6. Alertmanager käsittelee laukaistut hälytykset. Se poistaa duplikaatit, ryhmittelee ja reitittää ne asianmukaisiin ilmoituskanaviin.

Grafanan arkkitehtuuri ja käsitteet

Grafana täydentää Prometheusta tarjoamalla käyttäjäystävällisen käyttöliittymän kerättyjen mittatietojen visualisointiin ja analysointiin:

Grafanan työnkulku

  1. Määritä tietolähteet: Yhdistä Grafana Prometheus-palvelimeesi.
  2. Luo mittaristoja: Suunnittele mittaristoja mittatietojen visualisointiin.
  3. Lisää paneeleita mittaristoihin: Lisää paneeleita näyttämään tiettyjä tietopisteitä Prometheuksesta käyttäen PromQL-kyselyitä.
  4. Määritä hälytykset (valinnainen): Aseta hälytyssäännöt Grafanassa vastaanottaaksesi ilmoituksia tiettyjen mittarikynnysten perusteella.
  5. Jaa mittaristot: Jaa mittaristot tiimisi kanssa valvonnan ja analysoinnin yhteistyöhön.

Prometheuksen ja Grafanan asentaminen

Tämä osio tarjoaa vaiheittaisen oppaan Prometheuksen ja Grafanan asentamiseen.

Prometheuksen asentaminen

1. Lataa Prometheus:

Lataa Prometheuksen uusin versio virallisilta verkkosivuilta: https://prometheus.io/download/. Valitse käyttöjärjestelmällesi sopiva paketti (esim. Linux, Windows, macOS).

2. Pura arkisto:

Pura ladattu arkisto valitsemaasi hakemistoon.

3. Määritä Prometheus:

Luo `prometheus.yml`-määritystiedosto. Tämä tiedosto määrittää kohteet, joista Prometheus kerää mittatietoja, sekä muut määritysvaihtoehdot. Perusmääritys voisi näyttää tältä:


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

Tämä kokoonpano määrittää kaksi keruutyötä: toisen Prometheukselle itselleen (sen omien mittareiden keräämiseen) ja toisen localhost-portissa 9100 käynnissä olevalle node_exporterille. `scrape_interval` määrittää, kuinka usein Prometheus kerää kohteista.

4. Käynnistä Prometheus:

Suorita Prometheuksen suoritettava tiedosto hakemistosta, johon purit arkiston:

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

Prometheus käynnistyy ja kuuntelee oletuksena porttia 9090. Voit käyttää Prometheuksen verkkokäyttöliittymää selaimessasi osoitteessa http://localhost:9090.

Grafanan asentaminen

1. Lataa Grafana:

Lataa Grafanan uusin versio virallisilta verkkosivuilta: https://grafana.com/grafana/download. Valitse käyttöjärjestelmällesi sopiva paketti.

2. Asenna Grafana:

Noudata käyttöjärjestelmäsi asennusohjeita. Esimerkiksi Debianissa/Ubuntussa:


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äynnistä Grafana:

Käynnistä Grafana-palvelu:

sudo systemctl start grafana-server

4. Käytä Grafanaa:

Grafana käynnistyy ja kuuntelee oletuksena porttia 3000. Voit käyttää Grafanan verkkokäyttöliittymää selaimessasi osoitteessa http://localhost:3000.

Oletuskäyttäjätunnus ja -salasana ovat `admin` ja `admin`. Sinua pyydetään vaihtamaan salasana ensimmäisen kirjautumisen yhteydessä.

Grafanan yhdistäminen Prometheukseen

Visualisoidaksesi mittatietoja Prometheuksesta Grafanassa, sinun on määritettävä Prometheus tietolähteeksi Grafanassa.

1. Lisää tietolähde:

Siirry Grafanan verkkokäyttöliittymässä kohtaan Configuration > Data Sources ja napsauta Add data source.

2. Valitse Prometheus:

Valitse Prometheus tietolähdetyypiksi.

3. Määritä Prometheus-yhteys:

Syötä Prometheus-palvelimesi URL-osoite (esim. `http://localhost:9090`). Määritä muut asetukset tarpeen mukaan (esim. todennus).

4. Tallenna ja testaa:

Napsauta Save & Test varmistaaksesi, että Grafana voi muodostaa yhteyden Prometheukseen onnistuneesti.

Mittaristojen luominen Grafanassa

Kun olet yhdistänyt Grafanan Prometheukseen, voit luoda mittaristoja visualisoidaksesi mittatietojasi.

1. Luo uusi mittaristo:

Napsauta Grafanan verkkokäyttöliittymässä sivupalkissa olevaa + -kuvaketta ja valitse Dashboard.

2. Lisää paneeli:

Napsauta Add an empty panel lisätäksesi uuden paneelin mittaristoon.

3. Määritä paneeli:


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

Tämä kysely laskee node_exporterin keräämän suoritinajan muutosnopeuden prosesseilta 5 minuutin aikavälillä.

4. Tallenna mittaristo:

Napsauta tallennuskuvaketta tallentaaksesi mittariston.

PromQL: Prometheuksen kyselykieli

PromQL on tehokas kyselykieli, jota käytetään Prometheukseen tallennettujen mittareiden hakuun ja käsittelyyn. Sen avulla voit suorittaa laajan valikoiman toimintoja, mukaan lukien:

PromQL-esimerkkejä


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:n oppiminen on välttämätöntä Prometheuksen ja Grafanan tehokkaaseen käyttöön. Katso Prometheuksen dokumentaatiosta kattava opas kielestä.

Hälytykset Prometheuksella ja Alertmanagerilla

Prometheus tarjoaa vankan hälytysjärjestelmän, jonka avulla voit määrittää sääntöjä mittariarvojen perusteella. Kun säännön ehto täyttyy, hälytys laukaistaan, ja Alertmanager hoitaa ilmoitusprosessin.

Hälytyssääntöjen määrittäminen

Hälytyssäännöt määritellään `prometheus.yml`-määritystiedostossa. Tässä esimerkki hälytyssäännöstä, joka laukeaa, kun suorittimen käyttöaste ylittää 80%:


rule_files:
  - "rules.yml"

Sitten, tiedostoon nimeltä `rules.yml`, sijoita säännöt näin:


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: "Korkea suorittimen käyttöaste havaittu"
      description: "Suorittimen käyttöaste on yli 80% instanssilla {{ $labels.instance }}"

Selitys:

Alertmanagerin määrittäminen

Alertmanager käsittelee hälytysten reitityksen ja ilmoitukset. Sinun on määritettävä Alertmanagerissa, minne hälytykset lähetetään (esim. sähköposti, Slack, PagerDuty). Katso Alertmanagerin dokumentaatiosta yksityiskohtaiset määritysohjeet.

Minimaalinen `alertmanager.yml`-määritys voisi näyttää tältä:


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

Tämä kokoonpano lähettää hälytykset webhookiin localhost-portissa 8080. Voit mukauttaa `receivers`-osiota käyttämään Slackin tai sähköpostin kaltaisia palveluita sen sijaan.

Käytännön esimerkkejä ja käyttötapauksia

Prometheusta ja Grafanaa voidaan käyttää monenlaisten sovellusten ja infrastruktuurikomponenttien valvontaan. Tässä muutamia käytännön esimerkkejä:

Esimerkki: Mikropalveluarkkitehtuurin valvonta

Mikropalveluarkkitehtuurissa Prometheusta ja Grafanaa voidaan käyttää yksittäisten palveluiden sekä koko järjestelmän toimivuuden ja suorituskyvyn valvontaan. Jokainen palvelu voi paljastaa omat mittarinsa, kuten pyyntöjen määrän, vasteajat ja virheprosentit. Prometheus voi sitten kerätä nämä mittarit, ja Grafanaa voidaan käyttää niiden visualisointiin. Tämä mahdollistaa suorituskyvyn pullonkaulojen tai vikojen nopean tunnistamisen tietyissä palveluissa.

Edistyneet tekniikat ja parhaat käytännöt

Saadaksesi kaiken irti Prometheuksesta ja Grafanasta, harkitse seuraavia edistyneitä tekniikoita ja parhaita käytäntöjä:

Yleisten ongelmien vianmääritys

Huolellisesta suunnittelusta ja toteutuksesta huolimatta saatat kohdata ongelmia Prometheusta ja Grafanaa käytettäessä. Tässä muutamia yleisiä ongelmia ja niiden ratkaisuja:

Vaihtoehtoiset valvontaratkaisut

Vaikka Prometheus ja Grafana ovat tehokkaita työkaluja, ne eivät ole ainoita vaihtoehtoja mittatietojen keräämiseen ja visualisointiin. Muita suosittuja valvontaratkaisuja ovat:

Paras valvontaratkaisu organisaatiollesi riippuu erityisvaatimuksistasi ja budjetistasi.

Yhteenveto

Mittatietojen kerääminen on olennaista sovellusten ja infrastruktuurin toimivuuden ja suorituskyvyn ylläpitämiseksi. Prometheus ja Grafana tarjoavat tehokkaan ja joustavan avoimen lähdekoodin ratkaisun mittatietojen keräämiseen, tallentamiseen ja visualisointiin. Ymmärtämällä ydinkäsitteet ja noudattamalla tässä oppaassa esitettyjä parhaita käytäntöjä voit hyödyntää Prometheusta ja Grafanaa rakentaaksesi vankan valvontajärjestelmän, joka vastaa organisaatiosi tarpeita.

Tehokas valvonta yhdistettynä ennakoivaan hälytykseen ja nopeaan tapausvasteeseen on modernin IT-toiminnan kulmakivi. Prometheuksen ja Grafanan kaltaisten työkalujen käyttöönotto antaa organisaatioille mahdollisuuden tarjota luotettavia ja tehokkaita palveluita käyttäjilleen, sijainnista tai toimialasta riippumatta.