Oprettelse af et dashboard i Kibana for at overvåge logfiler

Oprettelse af et dashboard i Kibana for at overvåge logfiler

Hej, mit navn er Eugene, jeg er B2B-teamleder hos Citymobil. En af vores teams opgaver er at understøtte integrationer til bestilling af taxa hos partnere, og for at sikre en stabil service skal vi altid forstå, hvad der sker i vores mikrotjenester. Og for dette skal du konstant overvåge logfilerne.

I Citymobil bruger vi ELK-stakken (ElasticSearch, Logstash, Kibana) til at arbejde med logs, og mængden af ​​data, der kommer dertil, er enorm. Det er ret svært at finde problemer i denne masse af anmodninger, der kan dukke op efter implementeringen af ​​ny kode. Og til deres visuelle identifikation har Kibana en Dashboard-sektion.

Der er en del artikler om Habré med eksempler på, hvordan man opsætter en ELK-stack til at modtage og gemme data, men der er ikke noget relevant materiale om at oprette et Dashboard. Derfor vil jeg vise, hvordan man skaber en visuel repræsentation af data baseret på indgående logfiler i Kibana.

justering

For at gøre det tydeligere oprettede jeg et Docker-billede med ELK og Filebeat. Og anbragt i en beholder en lille programmet i Go, som for vores eksempel vil generere testlogs. Jeg vil ikke beskrive konfigurationen af ​​ELK i detaljer, der er skrevet nok om det på Habré.

Klon config-lageret docker-compose og ELK-indstillinger, og start den med kommandoen docker-compose up. Med vilje ikke tilføje en nøgle -dfor at se udviklingen af ​​ELK-stakken.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Hvis alt er konfigureret korrekt, vil vi se en post i loggene (måske ikke umiddelbart, processen med at starte en container med hele stakken kan tage flere minutter):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

adresse localhost:5061 Kibana skulle åbne.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Oprettelse af et dashboard i Kibana for at overvåge logfiler
Det eneste, vi skal konfigurere, er at oprette et indeksmønster til Kibana med information om, hvilke data der skal vises. For at gøre dette vil vi udføre en krølleanmodning eller udføre en række handlinger i den grafiske grænseflade.

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

Oprettelse af et indeksmønster via GUI
For at konfigurere skal du vælge Discover-sektionen i venstremenuen og komme til siden for oprettelse af indeksmønster.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Ved at klikke på knappen "Opret indeksmønster" kommer vi til siden for oprettelse af indeks. I feltet "Indeksmønsternavn" skal du indtaste "logstash-*". Hvis alt er konfigureret korrekt, vil Kibana nedenfor vise de indekser, der falder ind under reglen.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
På næste side skal du vælge nøglefeltet med et tidsstempel, i vores tilfælde er det det @timestamp.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Dette vil åbne siden med indeksindstillinger, men der kræves ingen yderligere handling fra os på nuværende tidspunkt.

Oprettelse af et dashboard i Kibana for at overvåge logfiler

Nu kan vi gå til Discover-sektionen igen, hvor vi vil se logposterne.

Oprettelse af et dashboard i Kibana for at overvåge logfiler

Hovedmenu

I menuen til venstre skal du klikke på afsnittet om oprettelse af Dashboard og komme til den tilsvarende side.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Klik på "Opret nyt dashboard" og gå til siden for tilføjelse af objekter til dashboardet.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Klik på knappen "Opret ny", og systemet vil bede dig om at vælge typen af ​​datavisning. Kibana har et stort antal af dem, men vi vil se på at skabe en grafisk repræsentation af "Lodret bjælke" og en tabelformet "Datatabel". Andre præsentationstyper er konfigureret på lignende måde. 
Oprettelse af et dashboard i Kibana for at overvåge logfiler
Nogle tilgængelige objekter er mærket B og E, hvilket betyder, at formatet er eksperimentelt eller i beta-testning. Over tid kan formatet ændre sig eller helt forsvinde fra Kibana.

Lodret bjælke

For eksemplet "Lodret bjælke", lad os oprette et histogram over forholdet mellem succesfulde og mislykkede svarstatusser for vores tjeneste. I slutningen af ​​indstillingerne får vi følgende graf:

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Vi vil klassificere alle anmodninger med en svarstatus < 400 som succesfulde og >= 400 som problematiske.

For at oprette et "Lodret søjle"-diagram skal vi vælge en datakilde. Vælg det indeksmønster, vi oprettede tidligere.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Som standard vises en enkelt solid graf efter valg af datakilde. Lad os sætte det op.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
I "Buckets"-blokken skal du trykke på "Tilføj"-knappen, vælge "X-asis" og opsætte X-aksen. Lad os tilsidesætte tidsstemplerne for indtastninger i loggen langs den. I feltet "Aggregation" skal du vælge "Datohistogram", og i "feltet" skal du vælge "@timestamp", hvilket angiver tidsfeltet. Lad os lade "Minimumsinterval" være i tilstanden "Auto", og det vil automatisk tilpasse sig vores skærm. 

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Ved at klikke på knappen "Opdater", vil vi se en graf med antallet af anmodninger hvert 30. sekund.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Lad os nu opsætte kolonnerne langs Y-aksen Nu viser vi det samlede antal anmodninger i det valgte tidsinterval.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Lad os ændre "Aggregation"-værdien til "Sum Bucket", hvilket vil give os mulighed for at kombinere data for vellykkede og mislykkede anmodninger. I Bucket -> Aggregation-blokken skal du vælge aggregeringen ved "Filtre" og indstille filtreringen efter "statusCode >= 400". Og i feltet "Brugerdefineret etiket" angiver vi vores navn på indikatoren for en mere forståelig visning i forklaringen på diagrammet og i den generelle liste.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Ved at klikke på knappen "Opdater" under indstillingsblokken får vi en graf med problemanmodninger.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Hvis du klikker på cirklen ved siden af ​​forklaringen, vises et vindue, hvor du kan ændre farven på kolonnerne.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Lad os nu tilføje data om vellykkede anmodninger til diagrammet. I sektionen "Metrics" skal du klikke på knappen "Tilføj" og vælge "Y-akse".

Oprettelse af et dashboard i Kibana for at overvåge logfiler
I den oprettede metrik foretager vi de samme indstillinger som for fejlagtige anmodninger. Kun i filteret angiver vi "statusKode < 400".

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Ved at ændre farven på den nye kolonne får vi en visning af forholdet mellem problematiske og vellykkede anmodninger.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Ved at klikke på knappen "Gem" øverst på skærmen og angive navnet, vil vi se det første diagram på Dashboardet.

Oprettelse af et dashboard i Kibana for at overvåge logfiler

datatabel

Overvej nu tabelvisningen "Datatabel". Lad os oprette en tabel med en liste over alle de URL'er, der blev anmodet om, og antallet af disse anmodninger. Som med eksemplet med vertikal bjælke vælger vi først en datakilde.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Derefter vil en tabel med én kolonne blive vist på skærmen, som viser det samlede antal anmodninger for det valgte tidsinterval.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Vi vil kun ændre "Buckets"-blokken. Klik på knappen "Tilføj" og vælg "Opdel rækker".

Oprettelse af et dashboard i Kibana for at overvåge logfiler
I feltet "Aggregation" skal du vælge "Vilkår". Og i det viste felt "Felt" vælg "url.keyword".

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Ved at angive "URL"-værdien i feltet "Custom label" og klikke på "Opdater", får vi den ønskede tabel med antallet af anmodninger for hver af URL'erne for den valgte tidsperiode.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Øverst på skærmen skal du klikke på knappen "Gem" igen og angive navnet på tabellen, for eksempel URL'er. Lad os gå tilbage til Dashboardet og se begge visninger oprettet.

Oprettelse af et dashboard i Kibana for at overvåge logfiler

Arbejde med Dashboard

Når vi opretter Dashboardet, indstiller vi kun hovedvisningsparametrene i visningsobjektindstillingerne. Det giver ingen mening at specificere data for filtre i objekter, for eksempel "datointerval", "filtrering efter brugeragent", "filtrering efter anmodningsland" osv. Det er meget mere praktisk at angive den ønskede tidsperiode eller indstille den nødvendige filtrering i forespørgselspanelet, som er placeret over objekterne.

Oprettelse af et dashboard i Kibana for at overvåge logfiler
Filtrene tilføjet på dette panel vil blive anvendt på hele Dashboardet, og alle visningsobjekter vil blive genopbygget i overensstemmelse med de faktiske filtrerede data.

Konklusion

Kibana er et kraftfuldt værktøj, der giver dig mulighed for at visualisere alle data på en bekvem måde. Jeg forsøgte at vise indstillingerne for de to hovedtyper af display. Men andre typer er konfigureret på lignende måde. Og den overflod af indstillinger, som jeg efterlod "bag kulisserne", giver dig mulighed for meget fleksibelt at tilpasse diagrammer, så de passer til dine behov.

Kilde: www.habr.com

Tilføj en kommentar