Visualisieren von Daten aus Azure Data Explorer in Kibana mit dem Open-Source-Connector K2Bridge

K2Bridge (Kibana-Kusto Bridge) ermöglicht es Ihnen, Azure Data Explorer als Datenquelle zu verwenden und diese Daten in Kibana zu visualisieren. K2Bridge ist eine Open-Source-Containeranwendung. Sie fungiert als Proxy zwischen einer Kibana-Instanz und einem Azure Data Explorer-Cluster. In diesem Artikel wird beschrieben, wie Sie diese Verbindung mit K2Bridge erstellen.

K2Bridge übersetzt Kibana-Abfragen in die Kusto-Abfragesprache (KQL) und sendet die Azure Data Explorer-Ergebnisse zurück an Kibana.

Kibana-Verbindung mit Azure Data Explorer über K2Bridge

Von K2Bridge werden die Kibana-Registerkarten Discover (Entdecken), Visualize (Visualisieren) und Dashboard unterstützt.

Die Registerkarte Discover (Entdecken) bietet folgende Möglichkeiten:

  • Daten suchen und untersuchen
  • Ergebnisse filtern
  • Felder im Ergebnisraster hinzufügen oder entfernen
  • Datensatzinhalt anzeigen
  • Suchvorgänge speichern und freigeben

Die Registerkarte Visualize (Visualisieren) bietet folgende Möglichkeiten:

  • Erstellen von Visualisierungen (Balkendiagramme, Kreisdiagramme, Datentabellen, Wärmebilder und Ähnliches)
  • Speichern einer Visualisierung

Die Registerkarte Dashboard bietet folgende Möglichkeiten:

  • Erstellen von Bereichen unter Verwendung neuer oder gespeicherter Visualisierungen
  • Speichern eines Dashboards

Die folgende Abbildung zeigt eine Kibana-Instanz, die über K2Bridge an Azure Data Explorer gebunden ist. Die Benutzeroberfläche in Kibana ist unverändert.

An Azure Data Explorer gebundene Kibana-Seite

Voraussetzungen

Bevor Sie Daten aus Azure Data Explorer in Kibana visualisieren können, halten Sie Folgendes bereit:

  • Ein Azure-Abonnement. Erstellen Sie ein kostenloses Azure-Konto.
  • Ein Azure Data Explorer-Cluster und eine Datenbank Sie benötigen die URL des Clusters und den Datenbanknamen.
  • Helm v3, den Kubernetes-Paket-Manager
  • AKS-Cluster (Azure Kubernetes Service) oder einen beliebigen anderen Kubernetes-Cluster. Verwenden Sie mindestens die Version 1.21.2 mit mindestens drei Azure Kubernetes Service-Knoten. Die Version 1.21.2 wurde getestet und überprüft. Wenn Sie einen AKS-Cluster benötigen, lesen Sie die Informationen zum Bereitstellen eines AKS-Clusters mithilfe der Azure CLI oder über das Azure-Portal.
  • Ein Microsoft Entra Dienstprinzipal, der zum Anzeigen von Daten in Azure Data Explorer autorisiert ist, einschließlich der Client-ID und des geheimen Clientschlüssels. Alternativ können Sie eine systemseitig zugewiesene verwaltete Identität verwenden.

Wenn Sie einen Microsoft Entra Dienstprinzipal verwenden möchten, müssen Sie einen Microsoft Entra Dienstprinzipal erstellen. Für die Installation benötigen Sie die Client-ID und ein Geheimnis. Wir empfehlen die Verwendung eines Dienstprinzipals mit Anzeigeberechtigung und raten von der Verwendung höherer Berechtigungen ab. Informationen zum Zuweisen von Berechtigungen finden Sie unter Verwalten von Datenbankberechtigungen im Azure-Portal oder Verwenden von Verwaltungsbefehlen zum Verwalten von Datenbanksicherheitsrollen.

Wenn Sie sich für die Verwendung einer systemseitig zugewiesenen Identität entscheiden, müssen Sie die clientID für die verwaltete Identität des Agentpools abrufen (befindet sich in der generierten Ressourcengruppe "[MC_xxxx]").

Ausführen von K2Bridge für Azure Kubernetes Service (AKS)

Standardmäßig verweist das Helm-Diagramm von K2Bridge auf ein öffentlich verfügbares Image, das sich in Microsoft Container Registry (MCR) befindet. Für MCR sind keine Anmeldeinformationen erforderlich.

  1. Laden Sie die erforderlichen Helm-Diagramme herunter.

  2. Fügen Sie die Elasticsearch-Abhängigkeit zu Helm hinzu. Die Abhängigkeit ist erforderlich, da K2Bridge eine kleine interne Elasticsearch-Instanz verwendet. Die Instanz bedient metadatenbezogene Anforderungen (etwa Abfragen von Indexmustern und gespeicherte Abfragen). Diese interne Instanz speichert keine Geschäftsdaten. Sie können die Instanz als Implementierungsdetail betrachten.

    1. Führen Sie zum Hinzufügen der Elasticsearch-Abhängigkeit zu Helm die folgenden Befehle aus:

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. So rufen Sie das K2Bridge-Diagramm aus dem Diagrammverzeichnis des GitHub-Repositorys ab:

      1. Klonen Sie das Repository von GitHub.

      2. Wechseln Sie zum Stammverzeichnis des K2Bridges-Repositorys.

      3. Führen Sie den folgenden Befehl aus:

        helm dependency update charts/k2bridge
        
  3. Stellen Sie K2Bridge bereit.

    1. Legen Sie für die Variablen die richtigen Werte für Ihre Umgebung fest:

      ADX_URL=[YOUR_ADX_CLUSTER_URL] #For example, https://mycluster.westeurope.kusto.windows.net
      ADX_DATABASE=[YOUR_ADX_DATABASE_NAME]
      ADX_CLIENT_ID=[SERVICE_PRINCIPAL_CLIENT_ID]
      ADX_CLIENT_SECRET=[SERVICE_PRINCIPAL_CLIENT_SECRET]
      ADX_TENANT_ID=[SERVICE_PRINCIPAL_TENANT_ID]
      

      Hinweis

      Bei Verwendung einer verwalteten Identität ist der Wert von „ADX_CLIENT_ID“ die Client-ID der verwalteten Identität, die sich in der generierten Ressourcengruppe „[MC_xxxx]“ befindet. Weitere Informationen finden Sie unter MC_Ressourcengruppe. Die ADX_SECRET_ID ist nur erforderlich, wenn Sie einen Microsoft Entra-Dienstprinzipal verwenden.

    2. Aktivieren Sie optional Azure Application Insights-Telemetrie. Wenn Sie Azure Application Insights zum ersten Mal verwenden, sollten Sie zunächst eine Application Insights-Ressource erstellen. Kopieren Sie den Instrumentierungsschlüssel in eine Variable:

      APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY]
      COLLECT_TELEMETRY=true
      
    3. Installieren Sie das K2Bridge-Diagramm: Visualisierungen und Dashboards werden nur mit der Kibana-Version 7.10 unterstützt. Die neuesten Imagetags sind „6.8_latest“ und „7.16_latest“ und bieten Unterstützung für Kibana 6.8 bzw. Kibana 7.10. Das Image „7.16_latest“ unterstützt Kibana OSS 7.10.2, und die interne Elasticsearch-Instanz hat die Version 7.16.2.

      Wenn ein Microsoft Entra-Dienstprinzipal verwendet wurde:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set settings.aadClientId="$ADX_CLIENT_ID" --set settings.aadClientSecret="$ADX_CLIENT_SECRET" --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=6.8_latest/7.16_latest] 
      [--set image.repository=$REPOSITORY_NAME/$CONTAINER_NAME] 
      [--set privateRegistry="$IMAGE_PULL_SECRET_NAME"] [--set settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      Bei Verwendung einer verwalteten Identität:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set       settings.aadClientId="$ADX_CLIENT_ID" --set settings.useManagedIdentity=true --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=7.16_latest] [--set  settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      Unter Configuration (Konfiguration) finden Sie den vollständigen Satz von Konfigurationsoptionen.

    4. In der Ausgabe des vorherigen Befehls wird der nächste Helm-Befehl zum Bereitstellen von Kibana vorgeschlagen. Führen Sie optional den folgenden Befehl aus:

      helm install kibana elastic/kibana -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=7.10.2 --set elasticsearchHosts=http://k2bridge:8080
      
    5. Verwenden Sie Portweiterleitung, um über Localhost auf Kibana zuzugreifen:

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. Stellen Sie eine Verbindung mit Kibana her, indem Sie zu http://127.0.0.1:5601 navigieren.

    7. Machen Sie Kibana für Benutzer verfügbar. Dazu gibt es mehrere Möglichkeiten. Die von Ihnen verwendete Methode hängt weitgehend von Ihrem Anwendungsfall ab.

      Beispielsweise können Sie den Dienst als Load Balancer-Dienst verfügbar machen. Fügen Sie dazu dem oben verwendeten Installationsbefehl (install) von Kibana Helm den Parameter --set service.type=LoadBalancer hinzu.

      Führen Sie dann den folgenden Befehl aus:

      kubectl get service -w -n k2bridge
      

      Die Ausgabe sollte wie folgt aussehen:

      NAME            TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
      kibana-kibana   LoadBalancer   xx.xx.xx.xx    <pending>     5601:30128/TCP   4m24s
      

      Anschließend können Sie den angezeigten generierten Wert für „EXTERNAL-IP“ verwenden. Verwenden Sie ihn für den Zugriff auf Kibana. Öffnen Sie dazu einen Browser, und navigieren Sie zu „<EXTERNAL-IP>:5601“.

  4. Konfigurieren Sie Indexmuster für den Zugriff auf Ihre Daten.

    In einer neuen Kibana-Instanz:

    1. Öffnen Sie Kibana.
    2. Navigieren Sie zu Management (Verwaltung).
    3. Wählen Sie Indexmuster aus.
    4. Erstellen Sie ein Indexmuster. Der Name des Index muss genau mit dem Tabellennamen oder dem Funktionsnamen ohne Sternchen (*) übereinstimmen. Sie können die entsprechende Zeile aus der Liste kopieren.

Hinweis

Ändern Sie für die Ausführung von K2Bridge unter anderen Kubernetes-Anbietern den Wert für storageClassName von Elasticsearch in „values.yaml“, damit er dem vom Anbieter vorgeschlagenen Wert entspricht.

Daten entdecken

Wenn Azure Data Explorer als Datenquelle für Kibana konfiguriert ist, können Sie die Daten mit Kibana untersuchen.

Screenshot der Registerkarte „Entdecken“ in Kibana

  1. Wählen Sie in Kibana die Registerkarte Discover (Entdecken) aus.

  2. Wählen Sie in der Indexmusterliste ein Indexmuster aus, das die zu untersuchende Datenquelle definiert. Hier ist das Indexmuster eine Azure Data Explorer-Tabelle.

    Screenshot der Liste mit Datenquellmustern

  3. Wenn Ihre Daten ein Zeitfilterfeld aufweisen, können Sie den Zeitbereich angeben. Wählen Sie oben rechts auf der Seite Discover (Entdecken) einen Zeitfilter aus. Standardmäßig werden auf der Seite Daten für die letzten 15 Minuten angezeigt.

    Screenshot der Auswahl eines Zeitfilters

  4. Die Ergebnistabelle zeigt die ersten 500 Datensätze. Sie können ein Dokument erweitern, um die Felddaten entweder im JSON- oder im Tabellenformat zu untersuchen.

    Screenshot eines erweiterten Datensatzes auf der Registerkarte „Entdecken“

  5. Sie können der Ergebnistabelle bestimmte Spalten hinzufügen, indem Sie neben dem Feldnamen die Option add (Hinzufügen) auswählen. Standardmäßig enthält die Ergebnistabelle die Quellspalte (_source) und eine Zeitspalte (Time), sofern das Zeitfeld vorhanden ist.

    Screenshot zum Hinzufügen von Spalten

  6. Auf der Abfrageleiste können Sie wie folgt nach Daten suchen:

    • Eingeben eines Suchbegriffs
    • Verwenden der Lucene-Abfragesyntax Beispiel:
      • Suchen Sie nach „Fehler“, um alle Datensätze zu finden, die diesen Wert enthalten.
      • Suchen Sie nach „Status: 200“, um alle Datensätze mit dem Statuswert 200 abzurufen.
    • Verwenden der logischen Operatoren AND, OR und NOT
    • Verwenden der Platzhalterzeichen Sternchen (*) und Fragezeichen (?). Beispiel: Die Abfrage „destination_city: L*“ entspricht Datensätzen, bei denen der Wert des Zielorts mit „L“ oder „l“ beginnt. (Bei K2Bridge wird keine Groß-/Kleinschreibung beachtet.)

    Screenshot zum Ausführen von Abfragen

Hinweis

Nur die Lucene-Abfragesyntax von Kibana wird unterstützt. Verwenden Sie nicht die Option für die Abfragesprache von Kibana (Kibana Query Language, KQL).

Tipp

In Suchen finden Sie weitere Suchregeln und Logik.

  1. Verwenden Sie zum Filtern Ihrer Suchergebnisse die Liste Verfügbare Felder. In der Feldliste können Sie Folgendes sehen:

    • Die fünf wichtigsten Werte für das Feld
    • Die Anzahl von Datensätzen, die das Feld enthalten
    • Der Prozentsatz der Datensätze, die die einzelnen Werte enthalten.

    Tipp

    Verwenden Sie die Lupe, um alle Datensätze zu suchen, die einen bestimmten Wert aufweisen.

    Screenshot einer Feldliste mit hervorgehobener Lupe

    Sie können die Lupe auch verwenden, um Ergebnisse zu filtern und die Formatansicht der Ergebnistabelle für die einzelnen Datensätze in der Ergebnistabelle anzuzeigen.

    Screenshot einer Tabellenliste mit hervorgehobener Lupe

  2. Wählen Sie entweder Save (Speichern) oder Share (Freigeben) aus, um Ihre Suche aufzubewahren.

    Screenshot vom Speichern einer Suche in Kibana

Visualisieren von Daten

Mit Kibana-Visualisierungen können Sie sich schnell einen Überblick über Azure Data Explorer-Daten verschaffen.

Erstellen einer Visualisierung über die Registerkarte „Discover“ (Entdecken)

  1. Um eine Visualisierung mit vertikalen Balken zu erstellen, navigieren Sie auf der Registerkarte Discover (Entdecken) zur Seitenleiste Available fields (Verfügbare Felder).

    Screenshot von der Auswahl eines Felds aus den verfügbaren Feldern auf der Registerkarte „Entdecken“

  2. Wählen Sie einen Feldnamen aus, und klicken Sie anschließend auf Visualize (Visualisieren).

    Screenshot der Erstellung einer Visualisierung und der Auswahl des Felds

  3. Die Registerkarte Visualize (Visualisieren) wird geöffnet und zeigt die Visualisierung an. Informationen zum Bearbeiten der Daten und Metriken der Visualisierung finden Sie unter Erstellen einer Visualisierung auf der Registerkarte „Visualize“ (Visualisieren).

    Screenshot der Bearbeitung der Visualisierung auf der Registerkarte „Visualisieren“

Erstellen einer Visualisierung auf der Registerkarte „Visualize“ (Visualisieren)

  1. Wählen Sie die Registerkarte Visualize (Visualisieren) aus, und klicken Sie auf Create visualization (Visualisierung erstellen).

    Screenshot der Auswahl der Registerkarte „Visualisieren“

  2. Wählen Sie im Fenster New Visualization (Neue Visualisierung) einen Visualisierungstyp aus.

    Screenshot der Auswahl eines Visualisierungstyps

  3. Nachdem die Visualisierung generiert wurde, können Sie die Metriken bearbeiten und bis zu einen Bucket hinzufügen.

    Screenshot der Bearbeitung von Metriken

Hinweis

Von K2Bridge wird eine einzelne Bucketaggregation unterstützt. Von einigen Aggregationen werden Suchoptionen unterstützt. Verwenden Sie die Lucene-Syntax und nicht die KQL-Option (steht für die Syntax der Abfragesprache von Kibana).

Wichtig

  • Folgende Visualisierungen werden unterstützt: Vertical bar, Area chart, Line chart, Horizontal bar, Pie chart, Gauge, Data table, Heat map, Goal chart und Metric chart.
  • Folgende Metriken werden unterstützt: Average, Count, Max, Median, Min, Percentiles, Standard deviation, Sum, Top hits und Unique count.
  • Die Metrik Percentiles ranks wird nicht unterstützt.
  • Die Verwendung von Bucketaggregationen ist optional. Daten können auch ohne Bucketaggregation visualisiert werden.
  • Folgende Buckets werden unterstützt: No bucket aggregation, Date histogram, Filters, Range, Date range, Histogram und Terms.
  • Die Buckets IPv4 range und Significant terms werden nicht unterstützt.

Erstellen von Dashboards

Sie können Dashboards mit Kibana-Visualisierungen erstellen, um Übersichten über Azure Data Explorer-Daten zusammenzufassen, zu vergleichen und gegenüberzustellen.

  1. Wählen Sie zum Erstellen eines Dashboards die Registerkarte Dashboard aus, und klicken Sie anschließend auf Create new dashboard (Neues Dashboard erstellen).

    Screenshot der Auswahl der Registerkarte „Dashboard“

    Das neue Dashboard wird im Bearbeitungsmodus geöffnet.

  2. Klicken Sie auf Create new (Neu erstellen), um einen neuen Visualisierungsbereich hinzuzufügen.

    Screenshot zum Hinzufügen einer vorhandenen Visualisierung zu einem Dashboard

  3. Klicken Sie zum Hinzufügen einer bereits erstellten Visualisierung auf Add an existing (Vorhandene hinzufügen), und wählen Sie eine Visualisierung aus.

  4. Wenn Sie Bereiche anordnen, nach Priorität organisieren, die Größe der Bereiche anpassen oder ähnliche Schritte ausführen möchten, klicken Sie auf Edit (Bearbeiten), und verwenden Sie dann die folgenden Optionen:

    • Klicken Sie zum Verschieben eines Bereichs auf die Bereichsüberschrift, und ziehen Sie den Bereich bei gedrückter Maustaste an die neue Position.
    • Klicken Sie zum Anpassen der Größe eines Bereichs auf das Steuerelement für die Größenänderung, und ziehen Sie den Bereich auf die gewünschte Größe.

    Screenshot von Dashboards mit Visualisierungen von Azure Data Explorer-Daten