Kibana-Dashboard-Tutorial für Einsteiger

Die Such- und Analytik-Engine Elasticsearch zählt zu den besten Open-Source-Lösungen zur Indexierung und Strukturierung großer Datenbestände. Wertvolle Erkenntnisse lassen sich bei der späteren Analyse der Rohdaten allerdings oft erst dann gewinnen, wenn diese in übersichtlicher und leicht verständlicher Form visualisiert werden. Speziell für die Darstellung von Elasticsearch-Daten ist das Visualisierungs-Tool Kibana entwickelt worden, um dessen Nutzung es in diesem Tutorial gehen wird.

Was ist Kibana?

Kibana ist eine erweiterbare Web-Oberfläche zur visuellen Darstellung erhobener Daten. Gemeinsam mit Elasticsearch und dem Datenverarbeitungstool Logstash bildet sie den sogenannten ELK-Stack (auch Elastic Stack genannt). Diese Open-Source-Suite ermöglicht Nutzern, Daten aus unterschiedlichen Server-Quellen (und in jeglichen Formaten) zu erfassen, zu ordnen und für analytische Zwecke aufzubereiten. Zusätzlich zur Funktion, die durch Logstash und Elasticsearch verarbeiteten Daten visualisieren zu können, bietet Kibana auch eine automatische Echtzeitanalyse, einen sehr flexiblen Suchalgorithmus sowie verschiedene Ansichtstypen (Histogramme, Graphen, Kreisdiagramme etc.) für die einzelnen Daten. Im Dashboard lassen sich die einzelnen interaktiven Visualisierungen dann zu einem dynamischen Gesamtbild zusammenfügen, das sich filtern und durchsuchen lässt.

Zur Anzeige dieses Videos sind Cookies von Drittanbietern erforderlich. Ihre Cookie-Einstellungen können Sie hier aufrufen und ändern.

Als webbasierte, in JavaScript geschriebene Anwendung ist Kibana plattformübergreifend nutzbar. Kosten entstehen dabei lediglich, wenn Sie den vom Entwickler angebotenen Hosting-Service Elastic Cloud in Anspruch nehmen. Dieser kostenpflichtige Dienst ermöglicht Ihnen, einen sicheren Elasticsearch-Kibana-Cluster auf Amazon oder Google zu implementieren und zu organisieren, ohne dass Sie dafür eigene Ressourcen bereitstellen müssen.

Kibana-Tutorial: Ersten Schritte mit dem Visualisierungs-Tool

Kibana bietet eine riesige Funktionspalette, mit deren Hilfe sich aufbereitete Datenbankbestände darstellen lassen. Bevor Sie die Informationen im Dashboard allerdings so filtern und visuell darstellen können, dass sich die gewünschten Schlüsselwerte problemlos überblicken, analysieren und langfristig auswerten lassen, liegt jedoch ein ordentliches Stück Arbeit vor Ihnen. Mit diesem Kibana-Tutorial wollen wir Ihnen den Einstieg in das leistungsstarke Web-Interface erleichtern. Dieser Artikel erklärt Ihnen daher, wie Sie Kibana korrekt installieren, wie Sie ihr erstes eigenes Dashboard anlegen und wie Sie vorhandene Datenbestände in das Visualisierungs-Tool von Elastic einbinden können.

Schritt 1: So bringen Sie Kibana zum Laufen

Da Kibana für die Darstellung von Daten entwickelt wurde, die mit Elasticsearch indexiert wurden, benötigen Sie zunächst eine laufende Installation der Such- und Analytik-Engine. Die entsprechenden Pakete für Windows, macOS und Linux finden Sie im Elasticsearch-Download-Center. Voraussetzung ist, dass eine aktuelle Java-Laufzeitumgebung (64-Bit) installiert ist.

Kibana selbst ist als plattformübergreifende Software ebenfalls für Windows, macOS und Linux (RPM, DEB) verfügbar. Da die Anwendung auf der JavaScript-Laufzeitumgebung Node.js aufbaut, enthalten die verschiedenen Installationspakete auch die notwendigen Node.js-Binärdateien, die es zur Ausführung des Visualisierungs-Tools zu nutzen gilt – separat unterhaltene Versionen werden nämlich nicht unterstützt. Die verschiedenen Pakete (ZIP-komprimiert) finden Sie wie Elasticsearch auf der Elastic-Homepage.

Hinweis

Linux- und Mac-Nutzer können Kibana mithilfe der Paket-Manager apt und yum auch über das Elastic-Repository installieren. Detaillierte Anleitungen hierfür finden Sie in den Online-Manuals.

Haben Sie das Kibana-Paket entpackt, führen Sie die Datei bin/kibana (macOS, Linux) bzw. bin\kibana.bat (Windows) aus, um den Kibana-Server zum Laufen zu bringen.

Anschließend können Sie das Kibana-Backend über die Adresse "http://localhost:5601" in Ihrem Browser aufrufen (Elasticsearch muss hierfür bereits laufen).

Schritt 2: Kibana mit Daten füttern

Damit wir das Kibana-Dashboard und seine Funktionen in diesem Tutorial etwas genauer beleuchten können, muss die Anwendung zunächst mit Daten versorgt werden. Auf der Elastic-Website gibt es drei kostenfrei herunterladbare Datenbank-Samples, die wir an dieser Stelle zu Testzwecken verwenden. Es handelt sich dabei um die drei oben aufgeführten Datenbanken „shakespeare.json“ (Datenbank der kompletten Werke von William Shakespeare), „accounts.zip“ (Set fiktiver Konten) und „logs.jsonl.gz“ (Set zufällig generierter Log-Files).

Laden Sie die drei Dateien herunter und entpacken (Account- und Log-Datei) und speichern Sie diese dann am Ort Ihrer Wahl.

Bevor Sie die Daten einspeisen, ist es erforderlich, Mappings (Abbildungen) für die Felder der Shakespeare- und Server-Log-Datenbank zu erstellen. Diese Zuordnungen unterteilen die Dokumente im Index in logische Gruppen und spezifizieren außerdem die Eigenschaften der Felder – wie zum Beispiel deren Suchbarkeit. Das passende Werkzeug zum Konfigurieren der Mappings ist die Konsole, die Sie im Kibana-Interface unter den Menüpunkten „Dev Tools“ à „Console“ finden.

Nun fügen Sie der Reihe nach die folgenden Mappings via PUT-Request ein:

PUT /shakespeare
{
 "mappings": {
  "doc": {
   "properties": {
    "speaker": {"type": "keyword"},
    "play_name": {"type": "keyword"},
    "line_id": {"type": "integer"},
    "speech_number": {"type": "integer"}
   }
  }
 }
}
PUT /logstash-2015.05.18
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}
PUT /logstash-2015.05.19
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}
PUT /logstash-2015.05.20
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}

Nutzen Sie nun das Bulk-API von Elasticsearch, um die Datensätze per CURL über das Terminal zu laden. In Windows benutzen Sie stattdessen die PowerShell mit der Invoke-RestMethod (Code-Beispiel unten):

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl
Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"
Hinweis

Je nach Rechenpower kann die Einspeisung der Datensätze einige Minuten in Anspruch nehmen.

Wechseln Sie zurück in die Kibana-Konsole, um den Erfolg des Ladeprozesses mit folgendem GET-Request zu verifizieren:

GET /_cat/indices?v

Sind die Daten wie geplant eingebunden, sieht der Output in etwa folgendermaßen aus:

Schritt 3: Ein erstes Indexmuster definieren

Damit Kibana nun erfährt, welche Daten es verarbeiten soll, müssen Sie entsprechende Muster für die Indices „shakespeare“, „bank“ und „logstash“ erstellen. Erstgenannte definieren Sie folgendermaßen:

  1. Öffnen Sie das Menü „Management“ und klicken auf „Index Patterns“. Beim Anlegen des ersten Indexmusters öffnet sich nun automatisch die Seite „Create index pattern“. Alternativ können Sie diese über die gleichnamige Schaltfläche aufrufen.
  2. Geben Sie „shakes*“ in das Feld „Index pattern“ ein und klicken dann auf „Next step“.
  3. Da für dieses Muster keine spezielle Konfiguration benötigt wird, überspringen Sie den nächsten Einrichtungsschritt und schließen die Mustererstellung direkt ab, indem Sie auf „Create index pattern“ klicken.

Wiederholen Sie die Schritte für das Muster „ba*“, das automatisch dem Index „bank“ zugeordnet wird.

Schließlich definieren Sie auch ein Indexmuster mit dem Namen „logstash*“ für die drei Server-Log-Indices. Bei diesem Muster überspringen Sie das Konfigurationsmenü allerdings nicht, sondern wählen dort den Eintrag „@timestamp“ im Dropdown-Menü „Time Filter field name“ aus, da diese Datensätze Zeitreihendaten enthalten. Anschließend klicken Sie wie bei den beiden vorherigen Mustern auf „Create index pattern“.

Schritt 4: Eingefügte Datensätze durchsuchen

Nachdem Sie Ihren Kibana-Server mit Datensätzen gefüttert haben, können Sie nun eine Elasticsearch-Suchanfrage starten, um diese Datensätze zu durchsuchen und die Resultate zu filtern. Wechseln Sie hierfür in Kibana zum Menü „Discover“ und wählen über das kleine Dreieck-Symbol in der linken Menüleiste das Indexmuster für Ihre Suche aus. Im Rahmen dieses Kibana-Dashboard-Tutorials haben wir uns für den Konto-Datensatz (ba*) entschieden:

Testweise können Sie den Bankkonto-Datensatz nun einmal filtern, um sich lediglich Konten anzeigen zu lassen, die bestimmte Kriterien erfüllen. Um beispielsweise gezielt nach Konten zu suchen, die einen Kontostand von über 47.500 aufweisen und Personen gehören, die über 38 Jahre alt sind, geben Sie folgenden Befehl in das Suchfeld ein:

balance:>47500 AND age:>38

Discover gibt Ihnen dann die Einträge der vier Konten 97, 177, 878 und 916 zurück, die den gewählten Eigenschaften entsprechen.

Über die Schaltfläche „Save“ in der oberen Menüleiste speichern Sie die gefilterten Suchen unter dem gewünschten Namen.

Schritt 5: Daten visualisieren

Mit den bisher in diesem Kibana-Tutorial getroffenen Vorbereitungen sind Sie nun in der Lage, die implementierten Daten zu visualisieren, um Ihrem Dashboard Leben einzuhauchen. Exemplarisch soll an dieser Stelle ein Tortendiagramm für die Bankkonten-Datenbank erzeugt werden. Dieses Diagramm soll einerseits anzeigen, welcher Anteil der insgesamt 1.000 Konten in bestimmte Kontostandbereiche fällt, andererseits, wie die altersspezifische Verteilung innerhalb dieser Sparten ausfällt.

Öffnen Sie im ersten Schritt das Menü „Visualize“ und klicken Sie auf „Create a visualization“, um eine Auflistung der verfügbaren Visualisierungstypen zu erhalten. Wählen Sie anschließend die Option „Pie“.

Zu Beginn sehen Sie nun lediglich einen einfachen Kreis, der alle Einträge der Datenbank zusammenfasst, da noch keinerlei Kategorien definiert wurden. Diese werden in Kibana auch als „Buckets“ bezeichnet und können unter dem gleichnamigen Menüpunkt angelegt werden.

Um zunächst die einzelnen Kontostand-Sparten zu definieren, klicken Sie auf „Split Slices“ und wählen im Dropdown-Menü „Aggregation“ den Punkt „Range“ aus:

Unter „Field“ suchen Sie nun nach dem Eintrag „balance“ und klicken auf diesen, bevor Sie anschließend vier Mal auf den „Add Range“-Button klicken, um folgende sechs Kontostand-Kategorien definieren zu können:

0

999

1000

2999

3000

6999

7000

14999

15000

30999

31000

50000

Klicken Sie anschließend auf „Apply Changes“ (Dreieck-Symbol), woraufhin das Tortendiagramm die Verteilung der Konten unter Berücksichtigung der definierten Kontostand-Sparten wiedergibt.

Im zweiten Schritt fügen Sie dem Diagramm einen weiteren Ring hinzu, der die Verteilung der Altersklassen für die einzelnen Kontostand-Bereiche visualisiert. Hierfür klicken Sie auf „Add sub-buckets“, danach erneut auf „Split Slices“ und wählen dann im Dropdown-Menü „Terms“ aus. Suchen Sie unter „Field“ nach dem Eintrag „age“ und übernehmen Sie die Änderungen via „Apply changes“.

Die Visualisierung speichern Sie nun ganz unkompliziert über den sich in der oberen Menüleiste befindenden „Save“-Button ab.

Schritt 6: Dashboard organisieren

Auch das Kibana-Dashboard soll in diesem Tutorial kurz beleuchtet werden, weshalb Sie nun mithilfe der in Schritt 4 und 5 gespeicherten Suche bzw. Visualisierung ein erstes Test-Dashboard erstellen. Dazu wählen Sie das Dashboard in der Seitennavigation aus und klicken anschließend erst auf „Create new dashboard“ und dann auf „Add“. Kibana listet Ihnen nun automatisch alle gespeicherten Visualisierungen bzw. Elasticsearch-Suchen auf:

Per Linksklick fügen Sie dem Dashboard die Kontostand-Visualisierung und das Beispiel-Suchresultat hinzu, woraufhin Sie beide fortan in separaten Panels im Dashboard betrachten können:

Die Panels können Sie nun modifizieren, indem Sie beispielsweise die Größe anpassen oder die Positionierung verändern. Außerdem ist es möglich, sich eine Visualisierung bzw. ein Suchresultat auf dem kompletten Bildschirm anzeigen zu lassen oder wieder aus dem Dashboard löschen. Via „Inspect“ können Sie bei vielen Visualisierungen zudem zusätzliche Informationen über die zugrundeliegenden Daten und Anfragen anzeigen lassen.

Hinweis

Wenn Sie ein Panel aus dem Kibana-Dashboard entfernen, bleibt die gespeicherte Visualisierung bzw. Suche erhalten.