Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen

Hallo, ich heiße Jewgeni, ich bin Teamleiter für den B2B-Bereich bei Sitimobil. Eine der Aufgaben unseres Teams besteht darin, die Integrationen für Taxi-Bestellungen von Partnern zu unterstützen, und um einen stabilen Service zu gewährleisten, müssen wir immer verstehen, was in unseren Mikrodiensten vor sich geht. Dazu müssen wir ständig die Protokolle überwachen.

Bei Sitimobil verwenden wir für die Arbeit mit Protokollen den ELK-Stack (ElasticSearch, Logstash, Kibana), und das Volumen der eingehenden Daten ist enorm. In dieser Masse von Anfragen Probleme zu finden, die nach der Bereitstellung neuen Codes auftreten können, ist ziemlich schwierig. Um sie visuell zu identifizieren, gibt es im Kibana-Bereich das Dashboard.

Auf Habr gibt es viele Artikel mit Beispielen, wie man den ELK-Stack für den Empfang und die Speicherung von Daten einrichtet, aber zu Anleitungen zur Erstellung von Dashboards gibt es keine aktuellen Materialien. Daher möchte ich zeigen, wie man in Kibana eine visuelle Darstellung von Daten auf der Grundlage der eingehenden Protokolle erstellt.

Einstellungen

Um es anschaulicher zu machen, habe ich ein Docker-Image mit ELK und Filebeat erstellt. Und ich habe im Container ein kleines Programm in Go platziert, das in unserem Beispiel Testprotokolle generiert. Eine detaillierte Beschreibung der Konfiguration von ELK werde ich nicht geben, dazu gibt es auf Habr genügend Informationen.

Wir klonen das Repository mit der Konfiguration docker-compose und den Einstellungen für ELK und starten es mit dem Befehl docker-compose up. Ich füge absichtlich keinen Schlüssel hinzu, -dum den Arbeitsprozess des ELK-Stacks zu sehen.

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

Wenn alles richtig eingerichtet ist, sollten wir in den Protokollen einen Eintrag sehen (vielleicht nicht sofort, der Hochlauf des Containers mit dem gesamten Stack kann mehrere Minuten dauern):

{"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.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Das Einzige, was wir einrichten müssen, ist, ein Indexmuster für Kibana zu erstellen, das Informationen darüber enthält, welche Daten angezeigt werden sollen. Dazu führen wir eine Curl-Anfrage aus oder führen eine Reihe von Aktionen im grafischen Interface aus.

$ 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 eines Indexmusters über die grafische Oberfläche
Für die Konfiguration wählen wir im linken Menü den Bereich Entdecken und gelangen zur Seite zur Erstellung des Indexmusters.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Wenn wir auf die Schaltfläche „Indexmuster erstellen“ klicken, gelangen wir zur Seite zur Erstellung des Indexes. Im Feld „Indexmustername“ geben wir „logstash-*“ ein. Wenn alles richtig eingerichtet ist, zeigt Kibana unten die passenden Indizes an.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Auf der nächsten Seite wählen wir das Schlüssel-Feature mit dem Zeitstempel, in unserem Fall ist das @timestamp.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
In der Folge erscheint eine Einstellungsseite für den Index, aber momentan sind keine weiteren Maßnahmen von uns erforderlich.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen

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

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen

Dashboard

Im linken Menü klicken wir auf den Abschnitt zur Erstellung des Dashboards und gelangen zur entsprechenden Seite.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Wir klicken auf "Create new dashboard" und gelangen zur Seite zum Hinzufügen von Objekten zum Dashboard.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Wir klicken auf die Schaltfläche "Create new", und das System wird uns auffordern, die Art der Datendarstellung auszuwählen. In Kibana gibt es eine große Auswahl, aber wir werden die Erstellung der grafischen Darstellung "Vertical Bar" und der tabellarischen "Data Table" betrachten. Die anderen Darstellungen werden ähnlich konfiguriert. 
Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Einige verfügbare Objekte haben die Labels B und E – das bedeutet, dass das Format experimentell oder in der Beta-Testphase ist. Im Laufe der Zeit kann sich das Format ändern oder vollständig aus Kibana verschwinden.

Vertical Bar

Für das Beispiel "Vertical Bar" erstellen wir ein Histogramm der Verteilung von erfolgreichen und fehlgeschlagenen Antwortstatus unseres Dienstes. Nach den Einstellungen erhalten wir das folgende Diagramm:

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Zu den erfolgreichen zählen wir alle Anfragen mit dem Antwortstatus = 400.

Um das Diagramm "Vertical Bar" zu erstellen, müssen wir die Datenquelle auswählen. Wir wählen das Indexmuster, das wir zuvor erstellt haben.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Standardmäßig wird nach der Auswahl der Datenquelle ein durchgehendes Diagramm angezeigt. Lassen Sie uns dies anpassen.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Im Bereich „Buckets“ klicken wir auf die Schaltfläche „Add“, wählen „X-asis“ aus und konfigurieren die X-Achse. Wir werden die Zeitstempel des Eingangs von Protokolleinträgen darauf abtragen. Im Feld „Aggregation“ wählen wir „Date Histogram“, und im Feld „Field“ wählen wir „@timestamp“, das auf das Zeitfeld hinweist. Das „Minimum interval“ lassen wir auf „Auto“, und es wird sich automatisch an unsere Darstellung anpassen. 

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Nachdem wir auf die Schaltfläche „Update“ geklickt haben, sehen wir ein Diagramm mit der Anzahl der Anfragen alle 30 Sekunden.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Jetzt konfigurieren wir die Spalten entlang der Y-Achse. Momentan wird die Gesamtzahl der Anfragen im gewählten Zeitintervall angezeigt.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Wir ändern den Wert „Aggregation“ in „Sum Bucket“, was es uns ermöglicht, die Daten nach erfolgreichen und fehlgeschlagenen Anfragen zu kombinieren. Im Bereich Bucket -> Aggregation wählen wir die Aggregation nach „Filters“ und legen die Filterung nach „statusCode >= 400“ fest. Im Feld „Custom label“ geben wir unseren Kennzeichner für eine verständlichere Anzeige in der Legende des Diagramms und in der allgemeinen Liste an.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Nachdem wir die Schaltfläche „Update“ unter dem Einstellungsblock gedrückt haben, erhalten wir ein Diagramm mit problematischen Anfragen.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Wenn Sie auf den Kreis neben der Legende klicken, öffnet sich ein Fenster, in dem Sie die Farbe der Spalten ändern können.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Jetzt fügen wir dem Diagramm Daten zu erfolgreichen Anfragen hinzu. Im Abschnitt „Metriken“ klicken wir auf die Schaltfläche „Hinzufügen“ und wählen „Y-Achse“.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
In der erstellten Metrik nehmen wir die gleichen Einstellungen wie für fehlerhafte Anfragen vor. Im Filter geben wir jedoch „statusCode < 400“ an.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Nachdem wir die Farbe der neuen Spalte geändert haben, erhalten wir eine Darstellung des Verhältnisses von problematischen zu erfolgreichen Anfragen.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Indem wir oben auf dem Bildschirm auf die Schaltfläche „Speichern“ klicken und einen Namen angeben, sehen wir das erste Diagramm im Dashboard.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen

Datentabelle

Nun betrachten wir die tabellarische Darstellung „Datentabelle“. Wir erstellen eine Tabelle mit einer Liste aller URLs, zu denen Anfragen gestellt wurden, und der Anzahl dieser Anfragen. Wie im Beispiel mit dem vertikalen Balken wählen wir zunächst die Datenquelle aus.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Daraufhin wird auf dem Bildschirm eine Tabelle mit einer Spalte angezeigt, die die Gesamtzahl der Anfragen für den gewählten Zeitraum zeigt.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Wir werden nur den Block „Buckets“ ändern. Klicken Sie auf die Schaltfläche „Hinzufügen“ und wählen Sie „Reihen aufteilen“.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Im Feld „Aggregation“ wählen wir „Terms“. Und im sich öffnenden Feld „Field“ wählen wir „url.keyword“.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Indem wir im Feld „Benutzerdefinierte Bezeichnung“ den Wert „Url“ angeben und auf „Aktualisieren“ klicken, erhalten wir die gewünschte Tabelle mit der Anzahl der Anfragen für jede URL im gewählten Zeitrahmen.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Oben auf dem Bildschirm klicken wir erneut auf die Schaltfläche „Speichern“ und geben den Namen der Tabelle, z.B. Urls, an. Wir kehren zum Dashboard zurück und sehen beide erstellten Darstellungen.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen

Arbeiten mit dem Dashboard

Bei der Erstellung des Dashboards haben wir in den Anzeigeeinstellungen nur die grundlegenden Parameter eingestellt. Es hat keinen Sinn, in den Objekten Daten für Filter wie „Datumsbereich“, „Filterung nach User-Agent“, „Filterung nach Anfrage-Land“ usw. anzugeben. Es ist viel praktischer, den gewünschten Zeitraum anzugeben oder die notwendige Filterung in der Anfrageleiste zu definieren, die sich über den Objekten befindet.

Erstellen eines Dashboards in Kibana zur Überwachung von Protokollen
Die in dieser Leiste hinzugefügten Filter werden auf das gesamte Dashboard angewendet, und alle Anzeigenelemente werden entsprechend den aktuellen gefilterten Daten neu strukturiert.

Fazit

Kibana ist ein leistungsstarkes Werkzeug, mit dem Sie beliebige Daten in einer benutzerfreundlichen Form visualisieren können. Ich habe versucht, die Einrichtung von zwei Hauptanzeigetypen zu zeigen. Aber auch andere Typen werden auf ähnliche Weise konfiguriert. Und die Fülle an Einstellungen, die ich „im Hintergrund“ gelassen habe, ermöglicht es Ihnen, die Grafiken sehr flexibel an Ihre Bedürfnisse anzupassen.

Quelle: habr.com

60GB SSD 8Gb DDR4