Overvåke loggfiler ved hjelp av Prometheus

Overvåke loggfiler ved hjelp av Prometheus
Du kan bruke Prometheus tredjeparts eksportør GROK_EXPORTER å analysere loggfiler og eksportere beregninger til Prometheus.

GROK_EXPORTER bruker vanlige uttrykk for å analysere forskjellige data fra loggfiler. Loggfilene er matcher linje for linje ved hjelp av et vanlig uttrykk, og de matchede dataene lagres i forskjellige variabler. Deretter eksporteres dataene om disse variablene via GROK_EXPORTER.

Når du legger til GROK_EXPORTER server til Prometheus som et mål, Prometheus kan overvåke ønsket loggfiler via GROK_EXPORTER.

I denne artikkelen vil jeg vise deg hvordan du installerer GROK_EXPORTER på Linux (Ubuntu 20.04 LTS i mitt tilfelle), generer dummy loggfiler, konfigurer GROK_EXPORTER for å overvåke dummy loggfilen og overvåke dummy loggfilen ved hjelp av prometheus. Så la oss komme i gang.

Innholdsfortegnelse:

  1. Ting du trenger
  2. Last ned og installerer GROK_EXPORTER
  3. Generere en dummy loggfil med fakedata
  4. Konfigurere GROK_EXPORTER
  5. Legge til GROK_EXPORTER til Prometheus
  6. Skrapingsmålinger fra GROK_EXPORTER MED PROMETHEUS
  7. Hvor du skal dra neste?
  8. Konklusjon
  9. Referanser

Ting du trenger:

Du må ha Prometheus installert på datamaskinen din for å kunne overvåke loggfiler med Prometheus.

Hvis du trenger hjelp til å installere Prometheus på datamaskinen din, kan du lese artikkelen hvordan du installerer Prometheus på Ubuntu 20.04 LTS.

Last ned og installerer GROK_EXPORTER:

I denne delen vil jeg vise deg hvordan du laster ned og installerer GROK_EXPORTER på datamaskinen din.

Først, naviger til ~/Nedlastinger Katalog som følger:

$ cd ~/nedlastinger

Last ned den siste versjonen av GROK_EXPORTER Arkiv med følgende kommando:

$ wget https: // github.com/fstab/grok_exporter/utgivelser/nedlasting/v1.0.0.RC5/GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.glidelås

GROK_EXPORTER Arkivet lastes ned. Det kan ta en stund å fullføre.

På dette tidspunktet, GROK_EXPORTER Arkivet skal lastes ned.

Først når GROK_EXPORTER Arkivet lastes ned, bør du finne en ny fil GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.glidelås i ~/Nedlastinger Katalog som merket på skjermdumpen nedenfor.

$ ls -lh

Pakk ut GROK_EXPORTER -arkivet GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.glidelås med følgende kommando:

$ Unzip GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.glidelås

GROK_EXPORTER -arkivet skal trekkes ut.

En ny katalog GROK_EXPORTER-1.0.0.RC5.linux-amd64/ skal opprettes i ~/Nedlastinger katalog.

$ ls -lh

Nå, gi nytt navn til GROK_EXPORTER-1.0.0.RC5.linux-amd64/ katalog til grok-exporter/ og flytt den i /opt Katalog som følger:

$ sudo mv -v grok_exporter -1.0.0.RC5.Linux-AMD64 /OPT /GROK-EXPORTER

Lag nå en SystemD -tjenestefil GROK-EXPORTER.service i /opt/grok-exporter Katalog som følger:

$ sudo nano/opt/grok-exporter/grok-exporter.service

Skriv inn følgende linjer i GROK-EXPORTER.service fil.

[Enhet]
Beskrivelse = PROMETHEUS GROK_EXPORTER -server
[Service]
Start på nytt = alltid
WorkingDirectory =/opt/grok-exporter
ExecStart =/opt/grok-exporter/grok_exporter--config =/opt/grok-exporter/config.yml
Execreload =/bin/kill -hup $ mainpid
TimeoutStopec = 20s
SendSigkill = nei
[Installere]
WantedBy = Multi-User.mål

Når du er ferdig, trykk + X etterfulgt av Y og For å redde GROK-EXPORTER.service fil.

For å installere GROK-EXPORTER.service SystemD -tjenestefil på datamaskinen din, oppretter en symbolsk lenke av /opt/grok-exporter/grok-exporter.service fil i /etc/systemd/system Katalog som følger:

$ sudo ln -s/opt/grok-exporter/grok-exporter.Service/etc/systemd/system/grok-exporter.service

Kopier konfigurasjon.yml fil fra /opt/grok-exporter/eksempel katalog til /opt/grok-exporter Katalog som følger:

$ sudo cp -v/opt/grok -exporter/eksempel/konfigurasjon.yml/opt/grok-exporter/

MERK: konfigurasjon.yml fil brukes til å konfigurere GROK_EXPORTER. Eksemplet (standard) konfigurasjon.yml filen er bra for testing hvis GROK_EXPORTER Jobber. Jeg vil vise deg hvordan du konfigurerer GROK_EXPORTER I en senere del av denne artikkelen.

For at SystemD -endringene skal tre i kraft, kjør følgende kommando:

$ sudo SystemCTL Daemon-Reload

Start nå GROK-EXPORTER SystemD -tjeneste med følgende kommando:

$ sudo systemctl start grok-exporter.service

De GROK-EXPORTER Systemd -tjenesten skal være aktiv/løping, Som du kan se på skjermbildet nedenfor. Det betyr GROK_EXPORTER kjører helt fint.

$ sudo systemctl status grok-exporter.service

Generere en dummy loggfil med fakedata:

For å generere falske loggfiler, vil jeg bruke Lucapette/Fakedata i denne artikkelen. Det er mange andre verktøy som du kan bruke til å generere falske loggfiler. Du kan bruke noen av dem hvis du vil.

Først, naviger til ~/Nedlastinger Katalog som følger:

$ cd ~/nedlastinger

Å laste ned fakedata, Kjør følgende kommando:

$ wget https: // github.com/lucapette/fakedata/utgivelser/nedlasting/v1.1.2/fakedata_1.1.2_linux_amd64.tjære.gz

Fakedata -arkivet bør lastes ned.

Når Fakedata -arkivet er lastet ned, bør du se en ny fakedata_1.1.2_linux_amd64.tjære.gz i ~/Nedlastinger katalog.

$ ls -lh

Pakk ut Fakedata -arkivet fakedata_1.1.2_linux_amd64.tjære.gz med følgende kommando:

$ tar xvzf fakedata_1.1.2_linux_amd64.tjære.gz

Du bør finne en ny kjørbar fakedata i ~/Nedlastinger Katalog som merket på skjermdumpen nedenfor.

$ ls -lh

Flytt fakedata binær til /usr/lokal/bin Katalog som følger:

$ sudo mv -v fakedata/usr/local/bin/

Nå skal du kunne få tilgang til fakedata Fra kommandolinjen.

$ Fakedata -Versjon

Lag et nytt skallskript Hei-http i /usr/lokal/bin Katalog som følger:

$ sudo nano/usr/local/bin/hallo-http

Skriv inn følgende koder i Hei-http manus.

#!/bin/bash
Logfile =/tmp/hallo-http.Logg
mens sant
gjøre
Fakedata Brukernavn HTTP.Metode enum:/,/pålogging,/logout,/meldinger IPv4 -Limit 1 >> $ Logfile
Sov 1
Ferdig
Avslutt 0

Når du er ferdig, trykk + X etterfulgt av Y og For å lagre Hello-Http-skriptet.

Legg til utførelse av tillatelse til skallskriptet /usr/local/bin/hallo-http følgende:

$ sudo chmod +x/usr/local/bin/hallo-http

For å teste Hei-http manus, kjør det som følger:

$ hallo-http

En loggfil /tmp/hallo-http.Logg skal genereres. En ny oppføring bør legges til i loggfilen hvert sekund.

$ hale -f /tmp /hallo -http.Logg

Hver linje i /tmp/hallo-http.Logg Filen skal være i følgende format,

Konfigurere GROK_EXPORTER:

I denne delen vil jeg vise deg hvordan du konfigurerer GROK_EXPORTER For å overvåke den genererte loggfilen /tmp/hallo-http.Logg.

Åpne GROK_EXPORTER konfigurasjonsfil /opt/grok-exporter/config.yml Med Nano Text Editor som følger:

$ sudo nano/opt/grok-exporter/config.yml

Standard konfigurasjonsfil skal se ut som følger.

I inngang Seksjonen spesifiserer du sti av loggfilen du vil overvåke.

I dette tilfellet vil jeg overvåke loggfilen /tmp/hallo-http.Logg.

Leser bør være ekte Hvis du vil overvåke hele loggfilen og nylig lagt til linjer fra loggfilen.

Leser bør være falsk Hvis du bare vil overvåke de nylig lagt til linjene fra loggfilen.

For å hente ut data fra loggfilen /tmp/hallo-http.Logg, endre beregningsdelen i konfigurasjon.yml fil som følger:

Her er metrisk type teller. GROK_EXPORTER støtter også andre Prometheus -metriske typer. Hvis du vil bruke en annen Prometheus -metrisk type, kan du sjekke den offisielle dokumentasjonen av GROK_EXPORTER. Koblingene er gitt nedenfor.

GROK_EXPORTER - Motmetrisk type

GROK_EXPORTER - GAUGE METRICTYPE

grok_exporter - histogrammetrisk type

GROK_EXPORTER - Sammendragsmetrisk type

De Navn av beregningen vil være hello_http_total.

De hjelp Eiendom er en kort beskrivelse av hva metrikken gjør.

De kamp Eiendom brukes til å matche forskjellige data fra hver loggfillinje og lagre dem i sine respektive variabler.

Den første kolonnen i /tmp/hallo-http.Logg filen er . De ; er av mønstertype -ordet, og dataene som er trukket ut med denne typen vil bli lagret i brukervariabelen.

På samme måte er den andre kolonnen og er også av mønstertypen ORD, og dataene som ble trukket ut vil bli lagret i http_method variabel.

Den tredje kolonnen av loggfilen er URL -banen. Det er av mønstertypen Uripathparam, og det vil bli lagret i http_path variabel.

Den fjerde kolonnen av loggfilen er IP -adressen. Det er av mønstertypen IP, og det vil bli lagret i variabelen ip_addr.

Det er mange andre mønstertyper som du kan bruke til å trekke ut data fra loggfilen. Du kan finne alle støttede mønstertyper i /opt/grok-exporter/mønstre/grok-mønster fil.

$ sudo katt/opt/grok-exporter/mønstre/grok-mønster

Når dataene er trukket ut og lagret i forskjellige variabler, kan du velge variablene du vil eksportere via GROK_EXPORTER.

Variablene du vil eksportere via GROK_EXPORTER må være oppført i Etiketter seksjon som merket på skjermdumpen nedenfor.

Du kan også opprette nye mønstertyper og matche data fra hver loggfillinje ved hjelp av de nyopprettede mønstertypene.

For å lage nye mønstertyper, legger du til mønstertypene i grok_patterns delen av konfigurasjon.yml fil.

Som standard en tilpasset mønstertype Exim_message er definert, og det kan brukes til å matche data fra loggfiler ved hjelp av det vanlige uttrykket [a-za-z]*.

For å matche HTTP -status (i.e., Få, legg inn, sett), kan du definere en ny mønstertype Http_status [a-z] 3,4 og bruk den til å matche data fra loggfilen som følger. Jeg håper du får ideen.

Den endelige versjonen av konfigurasjon.yml Filen er gitt på skjermbildet nedenfor.

Når du er ferdig med å gjøre endringer i konfigurasjon.yml fil, trykk + X etterfulgt av Y og for å redde det.

For at endringene skal tre i kraft, start på nytt GROK-EXPORTER SystemD -tjeneste som følger:

$ sudo SystemCTL Restart Grok-Exporter.service

Hvis alt er i orden (du har ikke gjort noen feil i konfigurasjonsfilen konfigurasjon.yml), GROK-EXPORTER Systemd -tjenesten skal være aktiv/løping.

$ sudo systemctl status grok-exporter.service

Legge til GROK_EXPORTER til Prometheus:

Nå må du legge til GROK_EXPORTER til Prometheus som et mål.

Først må du kjenne IP -adressen til datamaskinen der du har installert GROK_EXPORTER.

I mitt tilfelle er IP -adressen 192.168.3.149. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.

$ hostname -i

Åpne deretter Prometheus -konfigurasjonsfilen Prometheus.yml Med Nano Text Editor som følger:

$ sudo nano/opt/prometheus/prometheus.yml

I Skrape_configs delen av Prometheus.yml fil, legg til linjene som merket i skjermbildet nedenfor.

MERK: Ikke glem å erstatte mål -IP -adressen til GROK-EXPORTER Jobb med IP -adressen til datamaskinen der du har GROK_EXPORTER installert.

For at endringene skal tre i kraft, start på nytt Prometheus SystemD -tjeneste som følger:

$ sudo SystemCTL Restart Prometheus.service

MERK: Jeg har installert Prometheus på samme datamaskin som GROK_EXPORTER. Så IP -adressen til datamaskinen der jeg har installert Prometheus er den samme som GROK_EXPORTER. I mitt tilfelle er det 192.168.3.149. Sørg for å erstatte den med din fra nå av.

Besøk nå målsiden til Prometheus på URL http: // 192.168.3.149: 9090/mål, og du bør se at GROK-EXPORTER Målet er i OPP stat.

Skrapingsmålinger fra GROK_EXPORTER MED PROMETHEUS:

Før du begynner å skrape beregninger fra GROK_EXPORTER Start Dummy Log File Generator med Prometheus Hei-http med følgende kommando:

$ hallo-http

Nå, besøk Prometheus Graph -siden på http: // 192.168.3.149: 9090/graf og utfør uttrykket hello_http_total.

Som du kan se, blir dataene trukket ut fra loggfilen /tmp/hallo-http.Logg. Hver linje i loggfilen er en egen oppføring i Prometheus.

Du kan også filtrere dataene. La oss for eksempel si at du bare vil liste opp oppføringene der http_method er få. For å gjøre det, kjør uttrykket hello_http_total http_method = ”get”.

Du kan også telle antall oppføringer som samsvarer med visse kriterier. For å telle antall http få forespørsler, kan du for eksempel kjøre uttrykket Count (hello_http_total http_method = ”get”.

Som du kan se, er antallet HTTP -forespørsler 30.

Hvis du utfører det samme uttrykket etter noen sekunder, bør antallet http få forespørsler øke.

Hvor du skal dra neste?

For å lære mer om konfigurering GROK_EXPORTER, Les den offisielle GROK_EXPORTER -konfigurasjonsdokumentasjonssiden.

Konklusjon:

I denne artikkelen har jeg vist deg hvordan du installerer GROK_EXPORTER på Ubuntu 20.04 LTS. Jeg har også vist deg hvordan du genererer dummy loggfiler med fakedata og konfigurerer GROK_EXPORTER for å overvåke den genererte loggfilen. Jeg har vist deg hvordan du kan legge til GROK_EXPORTER som et mål på Prometheus og overvåke loggfiler med Prometheus også.

Referanser:

  1. FSTAB/GROK_EXPORTER: Eksporter Prometheus -beregninger fra vilkårlige ustrukturerte loggdata.
  2. Lucapette/Fakedata: CLI -verktøyet for Fake Data Generation
  3. Grok Filter Plugin | Logstash referanse [7.15] | Elastisk
  4. logstash-mønster/grok-mønster hos master · hpcugent/logstash-mønster
  5. https: // github.com/logstash-plugins/logstash-mønster-core/tree/master/mønstre/ECS-V1
  6. Logstash: samle, analysere, transformere logger | Elastisk
  7. GROK_EXPORTER/CONFIG.MD hos master · fstab/grok_exporter