Dashboard-Erstellung in Kibana zur Protokollüberwachung

Dashboard-Erstellung in Kibana zur Protokollüberwachung

Hallo, ich bin Jewgeni, Teamleiter im B2B-Bereich bei Citymobil. Eine der Aufgaben unseres Teams besteht darin, Integrationen für die Taxi-Bestellungen von Partnern zu unterstützen. Um einen stabilen Service zu gewährleisten, müssen wir immer verstehen, was in unseren Mikrodiensten vor sich geht. Dazu ist es notwendig, die Logs ständig im Auge zu behalten.

Bei Citymobil verwenden wir für die Arbeit mit Logs den ELK-Stack (ElasticSearch, Logstash, Kibana), und das Volumen der dort eintreffenden Daten ist enorm. Es ist ziemlich schwierig, in dieser Masse von Anfragen Probleme zu finden, die nach dem Deployment neuer Codes auftreten könnten. Visualisieren lässt sich das durch den Dashboard-Bereich in Kibana.

Auf Habré gibt es bereits viele Artikel mit Beispielen, wie man den ELK-Stack für das Empfangen und Speichern von Daten einrichtet, aber es gibt keine aktuellen Materialien zur Erstellung von Dashboards. Daher möchte ich zeigen, wie man in Kibana eine visuelle Darstellung der Daten basierend auf den eintreffenden Logs erstellt.

Konfiguration

Um es anschaulicher zu machen, habe ich ein Docker-Image mit ELK und Filebeat erstellt. Und ich habe in den Container ein kleines Programm in Go platziert, das in unserem Beispiel Test-Logs generieren wird. Eine detaillierte Beschreibung der Konfiguration von ELK werde ich nicht geben, dazu gibt es auf Habré bereits ausreichend Informationen.

Wir klonen das Repository mit der Konfiguration version: '1' services: simplesample-sonar: image: sonarqube:lts ports: - 9001:9000 - 9092:9092 network_mode: bridge und den ELK-Einstellungen und starten es mit dem Befehl docker-compose up. Ich lasse absichtlich den Schlüssel weg -d, um den Arbeitsprozess des ELK-Stacks zu sehen.

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

Wenn alles korrekt eingerichtet ist, sehen wir in den Logs einen Eintrag (vielleicht nicht sofort, da der Startprozess des Containers mit dem gesamten Stack mehrere Minuten dauern kann):

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

Unter der Adresse localhost:5061 sollte Kibana geöffnet werden.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Dashboard-Erstellung in Kibana zur Protokollüberwachung
Das einzige, was wir noch einrichten müssen, ist, ein Indexmuster für Kibana zu erstellen, um anzugeben, welche Daten angezeigt werden sollen. Dafür führen wir eine Curl-Anfrage aus oder nehmen ein paar Aktionen im grafischen Interface vor.

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

Erstellung des Indexmusters über die grafische Benutzeroberfläche
Für die Konfiguration wählen wir im linken Menü den Abschnitt "Discover" und gelangen zur Seite zur Erstellung des Indexmusters.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Durch Klicken auf die Schaltfläche „Indexmuster erstellen“ gelangen wir zur Seite zur Erstellung des Indexes. Im Feld „Indexmustername“ geben wir „logstash-*“ ein. Wenn alles korrekt eingerichtet ist, wird Kibana die entsprechenden Indizes darunter anzeigen.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Auf der nächsten Seite wählen wir das Schlüsselwort mit dem Zeitstempel, in unserem Fall @timestamp.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Es erscheint nun die Seite mit den Indexeinstellungen, aber momentan sind keine weiteren Schritte von uns erforderlich.

Dashboard-Erstellung in Kibana zur Protokollüberwachung

Jetzt können wir wieder zum Bereich Discover wechseln, wo wir die Protokolleinträge sehen werden.

Dashboard-Erstellung in Kibana zur Protokollüberwachung

Instrumententafel

Im linken Menü klicken wir auf den Abschnitt zur Erstellung eines Dashboards und gelangen auf die entsprechende Seite.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Wir klicken auf „Neues Dashboard erstellen“ und gelangen zur Seite zum Hinzufügen von Elementen zum Dashboard.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Wir klicken auf die Schaltfläche „Neu erstellen“, und das System zeigt verschiedene Anzeigetypen an. In Kibana gibt es viele Varianten, aber wir werden die Erstellung der grafischen Darstellung „Vertical Bar“ und der tabellarischen „Data Table“ betrachten. Die anderen Anzeigetypen können ähnlich konfiguriert werden. 
Dashboard-Erstellung in Kibana zur Protokollüberwachung
Einige verfügbare Objekte sind mit den Labels B und E gekennzeichnet – das bedeutet, dass das Format experimentell oder in der Beta-Testphase ist. Mit der Zeit kann sich das Format ändern oder ganz aus Kibana entfernt werden.

Vertical Bar

Als Beispiel für „Vertical Bar“ erstellen wir ein Histogramm der Verhältnis von erfolgreichen und nicht erfolgreichen Antwortstatus unseres Services. Am Ende der Einstellungen erhalten wir folgendes Diagramm:

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Zu den erfolgreichen zählen wir alle Anfragen mit einem Antwortstatus von = 400.

Um das Diagramm „Vertical Bar“ zu erstellen, müssen wir eine Datenquelle auswählen. Wir wählen das zuvor erstellte Indexmuster aus.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Standardmäßig erscheint nach der Auswahl der Datenquelle ein durchgehendes Diagramm. Lassen Sie uns dieses anpassen.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Im Abschnitt „Buckets“ klicken wir auf die Schaltfläche „Add“, wählen „X-axis“ und konfigurieren die X-Achse. Hierbei legen wir zeitliche Markierungen für den Empfang der Protokolle fest. Im Feld „Aggregation“ wählen wir „Date Histogram“, und im Feld „Field“ wählen wir „@timestamp“, das auf das Zeitfeld verweist. Den „Minimum interval“ belassen wir auf „Auto“, sodass er sich automatisch an unsere Darstellung anpasst. 

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Nachdem wir auf „Update“ geklickt haben, sehen wir ein Diagramm mit der Anzahl der Anfragen alle 30 Sekunden.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Jetzt passen wir die Spalten auf der Y-Achse an. Momentan wird die Gesamtzahl der Anfragen im gewählten Zeitintervall angezeigt.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Ändern Sie den Wert „Aggregation“ auf „Sum Bucket“, um die Daten über erfolgreiche und nicht erfolgreiche Anfragen zu kombinieren. Im Block Bucket -> Aggregation wählen wir die Aggregation nach „Filters“ und setzen einen Filter für „statusCode >= 400“. Im Feld „Custom label“ geben wir unseren Kennzeichennamen für eine verständlichere Anzeige in der Legende auf dem Diagramm und in der Gesamtliste ein.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Wenn Sie die Schaltfläche "Update" unter dem Einstellungsblock drücken, erhalten wir ein Diagramm mit problematischen Anfragen.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Wenn Sie auf den Kreis neben der Legende klicken, erscheint ein Fenster, in dem Sie die Farbe der Spalten ändern können.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Jetzt fügen wir dem Diagramm die Daten zu den erfolgreichen Anfragen hinzu. Im Abschnitt „Metrics“ drücken wir die Schaltfläche „Add“ und wählen „Y-Achse“ aus.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
In der erstellten Metrik nehmen wir die gleichen Einstellungen wie für die fehlerhaften Anfragen vor. Im Filter geben wir jedoch „statusCode < 400“ an.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Nachdem wir die Farbe der neuen Spalte geändert haben, erhalten wir die Darstellung des Verhältnisses von problematischen und erfolgreichen Anfragen.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Durch Klicken auf die Schaltfläche „Save“ oben auf dem Bildschirm und Angabe eines Namens sehen wir das erste Diagramm im Dashboard.

Dashboard-Erstellung in Kibana zur Protokollüberwachung

Daten Tabelle

Jetzt betrachten wir die tabellarische Darstellung der „Daten Tabelle“. Lassen Sie uns eine Tabelle mit einer Liste aller URLs erstellen, die angefragt wurden, und der Anzahl dieser Anfragen. Wie im Beispiel mit dem vertikalen Balkendiagramm wählen wir zunächst die Datenquelle aus.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Danach wird eine Tabelle auf dem Bildschirm angezeigt, die eine Spalte mit der Gesamtzahl der Anfragen für den gewählten Zeitraum zeigt.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Wir werden nur den Block „Buckets“ ändern. Wir drücken die Schaltfläche „Add“ und wählen „Split rows“ aus.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Im Feld „Aggregation“ wählen wir „Terms“. Und im erscheinenden Feld „Field“ wählen wir „url.keyword“.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Indem wir im Feld „Custom label“ den Wert „Url“ eingeben und auf „Update“ klicken, erhalten wir die gewünschte Tabelle mit der Anzahl der Anfragen für jede URL im ausgewählten Zeitraum.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Oben auf dem Bildschirm klicken wir erneut auf die Schaltfläche „Save“ und geben der Tabelle einen Namen, zum Beispiel Urls. Dann kehren wir zum Dashboard zurück und sehen beide erstellten Ansichten.

Dashboard-Erstellung in Kibana zur Protokollüberwachung

Arbeiten mit dem Dashboard

Beim Erstellen des Dashboards haben wir in den Anzeigeobjekteinstellungen nur die grundlegenden Parameter festgelegt. Es ist nicht sinnvoll, in den Objekten Daten für Filter wie „Datumsbereich“, „Filterung nach useragent“, „Filterung nach Anfragesland“ usw. anzugeben. Es ist viel praktischer, den gewünschten Zeitraum anzugeben oder die erforderliche Filterung im Anfragenbereich festzulegen, der sich über den Objekten befindet.

Dashboard-Erstellung in Kibana zur Protokollüberwachung
Die auf diesem Panel hinzugefügten Filter werden auf das gesamte Dashboard angewendet, und alle Anzeigeobjekte werden entsprechend den aktuellen gefilterten Daten neu aufgebaut.

Fazit

Kibana – ein leistungsstarkes Tool, mit dem Sie Daten anschaulich visualisieren können. Ich habe versucht, die Konfiguration von zwei grundlegenden Anzeigearten zu demonstrieren. Aber auch andere Ansichten können auf ähnliche Weise angepasst werden. Die Vielzahl an Einstellungen, die ich "hinter den Kulissen" gelassen habe, ermöglicht es Ihnen, die Diagramme sehr flexibel an Ihre Bedürfnisse anzupassen.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster