Dashboard aanmaken in Kibana voor logmonitoring

Dashboard aanmaken in Kibana voor logmonitoring

Hallo, mijn naam is Evgeniy, ik ben teamleider van de B2B-tak bij Citymobil. Een van de taken van ons team is het ondersteunen van integraties voor taxiverzoeken van partners, en om een stabiele service te garanderen moeten we altijd begrijpen wat er gebeurt in onze microservices. Daarom moeten we constant de logs monitoren.

Bij Citymobil maken we gebruik van de ELK-stack (ElasticSearch, Logstash, Kibana) voor het werken met logs, en het volume van de binnenkomende data is enorm. Het vinden van problemen in deze grote hoeveelheid verzoeken na de uitrol van nieuwe code is behoorlijk lastig. Om deze problemen visueel te identificeren, heeft Kibana een Dashboard-sectie.

Op Habr zijn er veel artikelen met voorbeelden over hoe je de ELK-stack kunt instellen voor het verkrijgen en opslaan van gegevens, maar er zijn geen actuele materialen over het maken van een Dashboard. Daarom wil ik laten zien hoe je in Kibana een visuele representatie van gegevens maakt op basis van binnenkomende logs.

Instellingen

Om het duidelijker te maken, heb ik een Docker-image gemaakt met ELK en Filebeat. En in de container heb ik een kleine programma in Go geplaatst, die voor ons voorbeeld testlogs genereert. Ik zal de configuratie van ELK niet in detail beschrijven, er is genoeg over geschreven op Habr.

We klonen de repository met de configuratie docker-compose en instellingen van ELK, en starten deze met het commando docker-compose up. Opzettelijk voeg ik geen sleutel toe, zodat we het werkproces van de ELK-stack kunnen zien. -dgit clone https://github.com/et-soft/habr-elk cd habr-elk docker-compose up

Als alles correct is ingesteld, zullen we in de logs een record zien (mogelijk niet meteen, het opstartproces van de container met de hele stack kan enkele minuten duren):

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

Op het adres

localhost:5061 zou Kibana moeten openen. Het enige dat we hoeven in te stellen, is het maken van een Index Pattern voor Kibana met informatie over welke gegevens we moeten weergeven. Hiervoor zullen we een curl-verzoek uitvoeren of een reeks acties in de grafische interface doen.

Dashboard aanmaken in Kibana voor logmonitoring
Dashboard aanmaken in Kibana voor logmonitoring
Index Pattern aanmaken via de grafische interface

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

Voor de configuratie kiezen we in het linkermenu de sectie Discover, en komen we op de pagina voor het aanmaken van het Index pattern.
Door op de knop 'Create index pattern' te klikken, komen we op de pagina voor het aanmaken van de index. In het veld 'Index pattern name' voeren we 'logstash-*' in. Als alles correct is ingesteld, zal Kibana hieronder de indexen tonen die onder de regel vallen.

Dashboard aanmaken in Kibana voor logmonitoring
Door op de knop 'Create index pattern' te klikken, komen we op de pagina voor het aanmaken van een index. In het veld 'Index pattern name' voeren we 'logstash-*' in. Als alles goed is ingesteld, toont Kibana hieronder de indices die aan de regel voldoen.

Dashboard aanmaken in Kibana voor logmonitoring
Op de volgende pagina kiezen we het sleutelveld met een tijdstempel, in ons geval is dat @timestamp.

Dashboard aanmaken in Kibana voor logmonitoring
Als resultaat verschijnt er een instellingenpagina voor de index, maar momenteel zijn er geen verdere acties van ons vereist.

Dashboard aanmaken in Kibana voor logmonitoring

Nu kunnen we weer naar de Discover-sectie gaan, waar we de logboekvermeldingen zien.

Dashboard aanmaken in Kibana voor logmonitoring

Dashboard

Klik in het linkermenu op de sectie voor het maken van een Dashboard en we komen op de bijbehorende pagina.

Dashboard aanmaken in Kibana voor logmonitoring
Klik op 'Create new dashboard' en we komen op de pagina voor het toevoegen van objecten aan het Dashboard.

Dashboard aanmaken in Kibana voor logmonitoring
Klik op de knop 'Create new' en het systeem biedt aan om een weergavevorm voor de gegevens te kiezen. In Kibana zijn er veel verschillende, maar we bekijken de creatie van de grafische weergave 'Vertical Bar' en de tabelweergave 'Data Table'. Andere weergaven worden op een vergelijkbare manier ingesteld. 
Dashboard aanmaken in Kibana voor logmonitoring
Sommige beschikbare objecten hebben de labels B en E — dit betekent dat het formaat experimenteel of in bèta-test is. In de loop van de tijd kan het formaat veranderen of helemaal uit Kibana verdwijnen.

Verticale Staaf

Voor het voorbeeld 'Vertical Bar' zullen we een histogram creëren van de verhouding van succesvolle en niet-succesvolle antwoordstatussen van onze service. Na de instellingen ontvangen we de volgende grafiek:

Dashboard aanmaken in Kibana voor logmonitoring
Bij succesvolle reacties rekenen we alle aanvragen met een antwoordstatus < 400, en bij problematische aanvragen >= 400.

Voor het creëren van de 'Vertical Bar'-grafiek moeten we een gegevensbron selecteren. We kiezen het Index Pattern dat we eerder hebben gemaakt.

Dashboard aanmaken in Kibana voor logmonitoring
Standaard verschijnt er een enkele massieve grafiek na het selecteren van de gegevensbron. Laten we deze instellen.

Dashboard aanmaken in Kibana voor logmonitoring
In het blok 'Buckets' klikken we op de knop 'Add', kiezen 'X-axis' en configureren de X-as. We leggen de tijdstempels van de logboekvermeldingen langs deze as vast. In het veld 'Aggregation' kiezen we 'Date Histogram', en in het veld 'Field' kiezen we '@timestamp', dat verwijst naar het tijdsveld. We laten de 'Minimum interval' staan op 'Auto', zodat deze automatisch wordt aangepast aan onze weergave. 

Dashboard aanmaken in Kibana voor logmonitoring
Na op de knop 'Update' te hebben geklikt, zien we een grafiek met het aantal aanvragen elke 30 seconden.

Dashboard aanmaken in Kibana voor logmonitoring
Laten we nu de kolommen op de Y-as instellen. Momenteel wordt het totale aantal aanvragen in het geselecteerde tijdsinterval weergegeven.

Dashboard aanmaken in Kibana voor logmonitoring
We veranderen de waarde van 'Aggregation' naar 'Sum Bucket', waarmee we de gegevens van succesvolle en niet-succesvolle aanvragen kunnen combineren. In het blok Bucket -> Aggregation kiezen we aggregatie op 'Filters' en stellen we de filtering in op 'statusCode >= 400'. En in het veld 'Custom label' geven we onze benaming voor de indicator op voor een duidelijkere weergave in de legenda van de grafiek en in de algemene lijst.

Dashboard aanmaken in Kibana voor logmonitoring
Door op de knop «Update» onder het instellingenblok te klikken, krijgen we een grafiek met problematische verzoeken.

Dashboard aanmaken in Kibana voor logmonitoring
Als je op de cirkel naast de legenda klikt, verschijnt er een venster waarin je de kleur van de kolommen kunt veranderen.

Dashboard aanmaken in Kibana voor logmonitoring
Laten we nu de gegevens over succesvolle verzoeken aan de grafiek toevoegen. Ga naar de sectie «Metrics», klik op de knop «Add» en kies «Y-axis».

Dashboard aanmaken in Kibana voor logmonitoring
In de gemaakte metriek maken we dezelfde instellingen als voor de foute verzoeken. Alleen in de filter geven we «statusCode < 400» op.

Dashboard aanmaken in Kibana voor logmonitoring
Door de kleur van de nieuwe kolom te wijzigen, krijgen we weergave van de verhouding van problematische en succesvolle verzoeken.

Dashboard aanmaken in Kibana voor logmonitoring
Door bovenaan het scherm op de knop «Save» te klikken en een naam op te geven, zien we de eerste grafiek op het Dashboard.

Dashboard aanmaken in Kibana voor logmonitoring

Data Tabel

Laten we nu de tabelpresentatie «Data Table» bekijken. We gaan een tabel maken met een lijst van alle URL's waarvoor verzoeken zijn gedaan en het aantal van deze verzoeken. Zoals in het voorbeeld met Vertical Bar, kiezen we eerst de gegevensbron.

Dashboard aanmaken in Kibana voor logmonitoring
Vervolgens verschijnt er een tabel op het scherm met één kolom die het totale aantal verzoeken voor de gekozen tijdsperiode toont.

Dashboard aanmaken in Kibana voor logmonitoring
We gaan alleen het blok «Buckets» wijzigen. Klik op de knop «Add» en kies «Split rows».

Dashboard aanmaken in Kibana voor logmonitoring
In het veld «Aggregation» kiezen we «Terms». En in het nieuw verschenen veld «Field» kiezen we «url.keyword».

Dashboard aanmaken in Kibana voor logmonitoring
Door in het veld «Custom label» de waarde «Url» op te geven en op «Update» te klikken, krijgen we de gewenste tabel met het aantal verzoeken per URL voor de gekozen periode.

Dashboard aanmaken in Kibana voor logmonitoring
Bovenaan het scherm klikken we opnieuw op de knop «Save» en geven we de naam van de tabel op, bijvoorbeeld Urls. We gaan terug naar het Dashboard en zien beide gemaakte weergaven.

Dashboard aanmaken in Kibana voor logmonitoring

Werken met het Dashboard

Bij het creëren van een Dashboard hebben we in de instellingen van de weergave-objecten alleen de basisparameters van het uiterlijk ingesteld. Het heeft geen zin om in de objecten gegevens voor filters op te geven, zoals «datum bereik», «filteren op useragent», «filteren per aanvragen land», enz. Het is veel handiger om de gewenste tijdsperiode op te geven of de benodigde filtering te stellen in het aanvraagpaneel dat zich boven de objecten bevindt.

Dashboard aanmaken in Kibana voor logmonitoring
De filters die aan dit paneel zijn toegevoegd, worden op het hele Dashboard toegepast, en alle weergave-objecten worden opnieuw opgebouwd op basis van de actuele gefilterde gegevens.

Conclusie

Kibana is een krachtig hulpmiddel waarmee je gegevens op een handige manier kunt visualiseren. Ik heb geprobeerd om de instelling van twee belangrijke weergavetypen te demonstreren. Andere types kunnen echter op een vergelijkbare manier worden ingesteld. De overvloed aan instellingen die ik 'achter de schermen' heb gelaten, biedt je de mogelijkheid om grafieken zeer flexibel aan te passen aan je behoeften.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster