Skapa Dashboard i Kibana för loggmonitorering

Skapa Dashboard i Kibana för loggmonitorering

Hej, jag heter Evgeny och jag Àr teamledare för B2B-segmentet pÄ Citymobil. En av vÄra teams uppgifter Àr att stödja integrationer för taxibestÀllningar frÄn partners, och för att sÀkerstÀlla en stabil tjÀnst mÄste vi alltid förstÄ vad som hÀnder i vÄra mikrotjÀnster. För detta behöver vi stÀndigt övervaka loggar.

PÄ Citymobil anvÀnder vi ELK-stacken (ElasticSearch, Logstash, Kibana) för att arbeta med loggar, och mÀngden data som kommer dit Àr enorm. Att hitta problem i denna massan av förfrÄgningar som kan uppstÄ efter driftsÀttning av ny kod Àr ganska svÄrt. För att tydligt identifiera dessa problem finns det en dashboard-sektion i Kibana.

Det finns ganska mÄnga artiklar pÄ Habr om hur man konfigurerar ELK-stacken för att fÄ och lagra data, men det finns inga aktuella material om att skapa en dashboard. DÀrför vill jag visa hur man skapar en visuell representation av data baserat pÄ inkommande loggar i Kibana.

InstÀllning

För att göra det tydligare har jag skapat en Docker-image med ELK och Filebeat. Jag har placerat en liten program i Go, som för vÄrt exempel kommer att generera testloggar. Jag kommer inte att beskriva konfigurationen av ELK i detalj, det finns tillrÀckligt skrivet om detta pÄ Habr.

Vi klonar repositoryt med konfigurationen docker-compose och instÀllningarna för ELK och startar det med kommandot docker-compose up. Jag avser att inte lÀgga till nyckeln -d, för att se hur ELK-stacken fungerar.

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

Om allt Àr korrekt konfigurerat kommer vi att se en loggpost (kanske inte direkt, processen för att starta containern med hela stacken kan ta flera minuter):

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

Vid adressen localhost:5061 bör Kibana öppnas.

Skapa Dashboard i Kibana för loggmonitorering
Skapa Dashboard i Kibana för loggmonitorering
Det enda vi behöver stÀlla in Àr att skapa ett Index Pattern för Kibana med information om vilka data som ska visas. För detta utför vi en curl-förfrÄgan eller gör en rad ÄtgÀrder i det grafiska grÀnssnittet.

$ 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"}}'

Skapa Index Pattern via det grafiska grÀnssnittet
För konfigurationen vÀljer vi avsnittet Discover i den vÀnstra menyn och hamnar pÄ sidan för att skapa Index pattern.

Skapa Dashboard i Kibana för loggmonitorering
Genom att klicka pÄ knappen "Skapa index pattern" kommer vi till sidan för att skapa index. I fÀltet "Index pattern name" skriver vi "logstash-*". Om allt Àr korrekt konfigurerat kommer Kibana att visa de index som omfattas av regeln nedan.

Skapa Dashboard i Kibana för loggmonitorering
PÄ nÀsta sida vÀljer vi det nyckelfÀlt som har tidsstÀmpel, i vÄrt fall Àr det @timestamp.

Skapa Dashboard i Kibana för loggmonitorering
Resultatet blir en instÀllningssida för indexet, men just nu krÀvs det inga ytterligare ÄtgÀrder frÄn vÄr sida.

Skapa Dashboard i Kibana för loggmonitorering

Nu kan vi ÄtergÄ till avsnittet Discover, dÀr vi ser loggposterna.

Skapa Dashboard i Kibana för loggmonitorering

Dashboard

I vÀnstermenyn klickar vi pÄ avsnittet för att skapa en Dashboard och kommer till motsvarande sida.

Skapa Dashboard i Kibana för loggmonitorering
Vi klickar pÄ "Skapa ny dashboard" och kommer till sidan för att lÀgga till objekt i Dashboard.

Skapa Dashboard i Kibana för loggmonitorering
Vi klickar pÄ knappen "Skapa ny", och systemet föreslÄr att vÀlja visningssÀtt för data. I Kibana finns det mÄnga, men vi kommer att titta pÄ att skapa en grafisk representation "Vertical Bar" och en tabell "Data Table". Andra typer av representation kan stÀllas in pÄ liknande sÀtt. 
Skapa Dashboard i Kibana för loggmonitorering
Vissa tillgĂ€ngliga objekt har mĂ€rkningar B och E — detta betyder att formatet Ă€r experimentellt eller i beta-testning. Med tiden kan formatet Ă€ndras eller försvinna helt frĂ„n Kibana.

Vertical Bar

Som ett exempel pÄ "Vertical Bar" skapar vi ett histogram över förhÄllandet mellan framgÄngsrika och misslyckade statusar för vÄrt servicesvar. Efter instÀllningarna fÄr vi följande diagram:

Skapa Dashboard i Kibana för loggmonitorering
Till framgÄngsrika kommer vi att rÀkna alla förfrÄgningar med svarstatus < 400, medan problematiska rÀknas som >= 400.

För att skapa grafen "Vertical Bar" mÄste vi vÀlja datakÀlla. Vi vÀljer Index Pattern som vi skapade tidigare.

Skapa Dashboard i Kibana för loggmonitorering
Som standard, efter att ha valt datakÀlla, kommer det att visas ett enda kontinuerligt diagram. LÄt oss stÀlla in det.

Skapa Dashboard i Kibana för loggmonitorering
I blocket "Buckets" klickar vi pÄ knappen "LÀgg till", vÀljer "X-axel" och stÀller in X-axeln. Vi kommer att anvÀnda tidsstÀmplarna för loggposterna. I fÀltet "Aggregation" vÀljer vi "Date Histogram", och i "Field" vÀljer vi "@timestamp", som pekar pÄ tidsfÀltet. "Minimum interval" lÀmnar vi i "Auto"-lÀge, sÄ det automatiskt anpassar sig efter vÄr visning. 

Skapa Dashboard i Kibana för loggmonitorering
Genom att klicka pÄ knappen "Uppdatera" kommer vi att se diagrammet med antalet förfrÄgningar vart trettio sekunder.

Skapa Dashboard i Kibana för loggmonitorering
Nu stÀller vi in kolumnerna pÄ Y-axeln. Just nu visas det totala antalet förfrÄgningar inom den valda tidsintervallet.

Skapa Dashboard i Kibana för loggmonitorering
Vi Àndrar vÀrdet pÄ "Aggregation" till "Sum Bucket", vilket lÄter oss sammanfoga data för framgÄngsrika och misslyckade förfrÄgningar. I blocket Bucket -> Aggregation vÀljer vi aggregering enligt "Filters" och stÀller in filtrering enligt "statusCode >= 400". I fÀltet "Custom label" anger vi vÄr indikatornamn för en tydligare visning i legenden pÄ diagrammet och i den övergripande listan.

Skapa Dashboard i Kibana för loggmonitorering
Genom att klicka pÄ knappen «Update» under instÀllningspanelen fÄr vi en graf med problematiska förfrÄgningar.

Skapa Dashboard i Kibana för loggmonitorering
Om du klickar pÄ cirkeln bredvid legenden kommer ett fönster att öppnas dÀr du kan Àndra fÀrgen pÄ staplarna.

Skapa Dashboard i Kibana för loggmonitorering
Nu lÀgger vi till data om framgÄngsrika förfrÄgningar pÄ grafen. Under «Metrics» klickar vi pÄ knappen «Add» och vÀljer «Y-axis».

Skapa Dashboard i Kibana för loggmonitorering
I den skapade metrikern gör vi samma instÀllningar som för felaktiga förfrÄgningar. Men i filtret anger vi «statusCode < 400».

Skapa Dashboard i Kibana för loggmonitorering
Genom att Àndra fÀrgen pÄ den nya stapeln fÄr vi en visning av förhÄllandet mellan problematiska och framgÄngsrika förfrÄgningar.

Skapa Dashboard i Kibana för loggmonitorering
Genom att klicka pÄ knappen «Save» högst upp pÄ skÀrmen och ange ett namn, kommer vi att se den första grafen pÄ Dashboard.

Skapa Dashboard i Kibana för loggmonitorering

Data Table

Nu ska vi titta pÄ tabellformatet «Data Table». Vi skapar en tabell med en lista över alla URL:er som har fÄtt förfrÄgningar, samt antalet dessa förfrÄgningar. Precis som i exemplet med Vertical Bar vÀljer vi först datakÀllan.

Skapa Dashboard i Kibana för loggmonitorering
Efter detta kommer en tabell med en kolumn att visas pÄ skÀrmen, som visar det totala antalet förfrÄgningar under den valda tidsperioden.

Skapa Dashboard i Kibana för loggmonitorering
Vi kommer att Àndra endast blocket «Buckets». Klicka pÄ knappen «Add» och vÀlj «Split rows».

Skapa Dashboard i Kibana för loggmonitorering
I fÀltet «Aggregation» vÀljer vi «Terms». I det fÀlt som visas vÀljer vi «url.keyword».

Skapa Dashboard i Kibana för loggmonitorering
Genom att ange «Url» i fÀltet «Custom label» och klicka pÄ «Update», fÄr vi den önskade tabellen med antalet förfrÄgningar för varje URL under den valda tidsperioden.

Skapa Dashboard i Kibana för loggmonitorering
Högst upp pÄ skÀrmen klickar vi Äterigen pÄ knappen «Save» och anger tabellens namn, till exempel Urls. Vi gÄr tillbaka till Dashboard och ser bÄda de skapade visningarna.

Skapa Dashboard i Kibana för loggmonitorering

Arbete med Dashboard

NÀr vi skapade Dashboard i instÀllningarna för visningsobjekten angav vi endast de grundlÀggande visningsparametrarna. Det Àr inte meningsfullt att ange data för filter i objekten, t.ex. «datumintervall», «filtrering av useragent», «filtrering per land för förfrÄgningar» osv. Det Àr mycket bekvÀmare att ange önskad tidsperiod eller stÀlla in nödvÀndig filtrering i förfrÄgningspanelen som ligger ovanför objekten.

Skapa Dashboard i Kibana för loggmonitorering
De filter som lagts till pÄ denna panel kommer att tillÀmpas pÄ hela Dashboard, och alla visningsobjekt kommer att omstrukturera efter de aktuella filtrerade uppgifterna.

Slutsats

Kibana Àr ett kraftfullt verktyg som gör det möjligt att visualisera vilken data som helst pÄ ett bekvÀmt sÀtt. Jag har försökt att visa instÀllningarna för tvÄ grundlÀggande visningssÀtt. Men andra typer gÄr att konfigurera pÄ liknande sÀtt. Och de mÄnga instÀllningar som jag lÀmnat "bakom kulisserna" gör att du kan anpassa graferna mycket flexibelt efter dina behov.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster