Een dashboard maken in Kibana om logboeken te controleren

Een dashboard maken in Kibana om logboeken te controleren

Hallo, mijn naam is Eugene, ik ben een B2B-teamleider bij Citymobil. Een van de taken van ons team is het ondersteunen van integraties voor het bestellen van een taxi bij partners, en om een ​​stabiele service te garanderen, moeten we altijd begrijpen wat er gebeurt in onze microservices. En hiervoor moet u de logboeken constant controleren.

In Citymobil gebruiken we de ELK-stack (ElasticSearch, Logstash, Kibana) om met logs te werken, en de hoeveelheid data die daar aankomt is enorm. Het is vrij moeilijk om problemen te vinden in deze massa verzoeken die kunnen verschijnen na de implementatie van nieuwe code. En voor hun visuele identificatie heeft Kibana een Dashboard-sectie.

Er zijn nogal wat artikelen over Habré met voorbeelden van het instellen van een ELK-stack om gegevens te ontvangen en op te slaan, maar er zijn geen relevante materialen over het maken van een dashboard. Daarom wil ik laten zien hoe je een visuele weergave van gegevens kunt maken op basis van inkomende logs in Kibana.

afstelling

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

Kloon de configuratierepository docker-compose en ELK-instellingen en start het met de opdracht docker-compose up. Opzettelijk geen sleutel toevoegen -dom de voortgang van de ELK-stack te zien.

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

Als alles correct is geconfigureerd, zien we een vermelding in de logboeken (misschien niet meteen, het proces van het starten van een container met de volledige stapel 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"}

adres localhost:5061 Kibana zou moeten openen.

Een dashboard maken in Kibana om logboeken te controleren
Een dashboard maken in Kibana om logboeken te controleren
Het enige dat we hoeven te configureren, is een indexpatroon voor Kibana maken met informatie over welke gegevens moeten worden weergegeven. Om dit te doen, voeren we een curl-verzoek uit of voeren we een reeks acties uit in 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"}}'

Een indexpatroon maken via de GUI
Om te configureren, selecteert u de sectie Ontdekken in het linkermenu en gaat u naar de pagina Indexpatroon maken.

Een dashboard maken in Kibana om logboeken te controleren
Door op de knop "Indexpatroon maken" te klikken, komen we op de pagina voor het maken van een index. Voer in het veld "Indexpatroonnaam" "logstash-*" in. Als alles correct is geconfigureerd, zal Kibana hieronder de indexen tonen die onder de regel vallen.

Een dashboard maken in Kibana om logboeken te controleren
Selecteer op de volgende pagina het sleutelveld met een tijdstempel, in ons geval is dat zo @timestamp.

Een dashboard maken in Kibana om logboeken te controleren
Hierdoor wordt de pagina met indexinstellingen weergegeven, maar op dit moment is er geen verdere actie van ons vereist.

Een dashboard maken in Kibana om logboeken te controleren

Nu kunnen we weer naar het gedeelte Ontdekken gaan, waar we de logboekvermeldingen zullen zien.

Een dashboard maken in Kibana om logboeken te controleren

Overzicht

Klik in het linkermenu op het gedeelte Dashboard maken en ga naar de overeenkomstige pagina.

Een dashboard maken in Kibana om logboeken te controleren
Klik op "Nieuw dashboard maken" en ga naar de pagina voor het toevoegen van objecten aan het dashboard.

Een dashboard maken in Kibana om logboeken te controleren
Klik op de knop "Nieuwe maken" en het systeem zal u vragen om het type gegevensweergave te selecteren. Kibana heeft er een groot aantal, maar we zullen kijken naar het maken van een grafische weergave van de "Verticale balk" en een tabelvormige "Datatabel". Andere soorten presentaties zijn op een vergelijkbare manier geconfigureerd. 
Een dashboard maken in Kibana om logboeken te controleren
Sommige beschikbare objecten hebben het label B en E, wat betekent dat het formaat experimenteel of in bètatest is. Na verloop van tijd kan het formaat veranderen of volledig verdwijnen uit Kibana.

Verticale balk

Laten we voor het voorbeeld "Verticale balk" een histogram maken van de verhouding tussen succesvolle en niet-succesvolle responsstatussen van onze service. Aan het einde van de instellingen krijgen we de volgende grafiek:

Een dashboard maken in Kibana om logboeken te controleren
We classificeren alle verzoeken met een responsstatus < 400 als succesvol en >= 400 als problematisch.

Om een ​​"Vertical Bar"-diagram te maken, moeten we een gegevensbron selecteren. Selecteer het indexpatroon dat we eerder hebben gemaakt.

Een dashboard maken in Kibana om logboeken te controleren
Standaard verschijnt er één solide grafiek na het selecteren van een gegevensbron. Laten we het instellen.

Een dashboard maken in Kibana om logboeken te controleren
Druk in het blok "Buckets" op de knop "Toevoegen", selecteer "X-asis" en stel de X-as in. Laten we de tijdstempels opzij zetten voor de ontvangst van invoer in het logboek. Selecteer in het veld "Aggregatie" "Datumhistogram" en selecteer in het "Veld" "@timestamp", waarmee het tijdveld wordt aangegeven. Laten we "Minimuminterval" in de "Auto" -status laten staan, en het zal zich automatisch aanpassen aan ons display. 

Een dashboard maken in Kibana om logboeken te controleren
Door op de knop "Bijwerken" te klikken, zien we elke 30 seconden een grafiek met het aantal verzoeken.

Een dashboard maken in Kibana om logboeken te controleren
Laten we nu de kolommen langs de Y-as opstellen.Nu tonen we het totale aantal verzoeken in het geselecteerde tijdsinterval.

Een dashboard maken in Kibana om logboeken te controleren
Laten we de waarde "Aggregatie" wijzigen in "Sum Bucket", waarmee we gegevens voor geslaagde en niet-succesvolle verzoeken kunnen combineren. Selecteer in het blok Bucket -> Aggregation de aggregatie op "Filters" en stel de filtering in op "statusCode >= 400". En in het veld "Aangepast label" geven we onze naam van de indicator aan voor een meer begrijpelijke weergave in de legenda op de grafiek en in de algemene lijst.

Een dashboard maken in Kibana om logboeken te controleren
Door op de knop "Bijwerken" onder het instellingenblok te klikken, krijgen we een grafiek met probleemverzoeken.

Een dashboard maken in Kibana om logboeken te controleren
Als u op de cirkel naast de legenda klikt, verschijnt er een venster waarin u de kleur van de kolommen kunt wijzigen.

Een dashboard maken in Kibana om logboeken te controleren
Laten we nu gegevens over succesvolle verzoeken aan het diagram toevoegen. Klik in het gedeelte "Metriek" op de knop "Toevoegen" en selecteer "Y-as".

Een dashboard maken in Kibana om logboeken te controleren
In de gemaakte metriek maken we dezelfde instellingen als voor foutieve verzoeken. Alleen in het filter specificeren we "statusCode < 400".

Een dashboard maken in Kibana om logboeken te controleren
Door de kleur van de nieuwe kolom te wijzigen, krijgen we een weergave van de verhouding tussen problematische en succesvolle verzoeken.

Een dashboard maken in Kibana om logboeken te controleren
Door bovenaan het scherm op de knop "Opslaan" te klikken en de naam op te geven, zien we de eerste grafiek op het dashboard.

Een dashboard maken in Kibana om logboeken te controleren

data Table

Beschouw nu de tabelweergave "Gegevenstabel". Laten we een tabel maken met een lijst van alle URL's die zijn opgevraagd en het aantal van die verzoeken. Net als bij het voorbeeld met de verticale balk selecteren we eerst een gegevensbron.

Een dashboard maken in Kibana om logboeken te controleren
Daarna wordt een tabel met één kolom op het scherm weergegeven, die het totale aantal verzoeken voor het geselecteerde tijdsinterval weergeeft.

Een dashboard maken in Kibana om logboeken te controleren
We zullen alleen het blok "Buckets" wijzigen. Klik op de knop "Toevoegen" en selecteer "Rijen splitsen".

Een dashboard maken in Kibana om logboeken te controleren
Selecteer "Voorwaarden" in het veld "Aggregatie". En selecteer in het verschenen veld "Veld" "url.keyword".

Een dashboard maken in Kibana om logboeken te controleren
Door de waarde "Url" op te geven in het veld "Aangepast label" en op "Bijwerken" te klikken, krijgen we de gewenste tabel met het aantal verzoeken voor elk van de URL's voor de geselecteerde periode.

Een dashboard maken in Kibana om logboeken te controleren
Klik bovenaan het scherm opnieuw op de knop "Opslaan" en geef de naam van de tabel op, bijvoorbeeld Urls. Laten we teruggaan naar het dashboard en beide gemaakte weergaven bekijken.

Een dashboard maken in Kibana om logboeken te controleren

Werken met dashboards

Bij het maken van het dashboard hebben we alleen de belangrijkste weergaveparameters ingesteld in de weergaveobjectinstellingen. Het heeft geen zin om gegevens voor filters in objecten op te geven, bijvoorbeeld "datumbereik", "filteren op useragent", "filteren op aanvraagland", enz. Het is veel handiger om de gewenste tijdsperiode op te geven of de nodige filtering in te stellen in het queryvenster, dat zich boven de objecten bevindt.

Een dashboard maken in Kibana om logboeken te controleren
De filters die aan dit paneel zijn toegevoegd, worden toegepast op het gehele dashboard en alle weergaveobjecten worden opnieuw opgebouwd in overeenstemming met de werkelijk gefilterde gegevens.

Conclusie

Kibana is een krachtige tool waarmee u alle gegevens op een handige manier kunt visualiseren. Ik heb geprobeerd de instelling van de twee belangrijkste weergavetypen weer te geven. Maar andere typen zijn op een vergelijkbare manier geconfigureerd. En dankzij de overvloed aan instellingen die ik "achter de schermen" heb achtergelaten, kunt u zeer flexibel grafieken aanpassen aan uw behoeften.

Bron: www.habr.com

Voeg een reactie