Tutorial: Überwachen Ihrer Service Fabric-Anwendungen mithilfe von ELK

Dieses Tutorial ist der vierte Teil einer Serie. Hier erfahren Sie, wie Sie mithilfe von ELK (Elasticsearch, Logstash und Kibana) in Azure ausgeführte Service Fabric-Anwendungen überwachen.

Im vierten Teil der Serie lernen Sie Folgendes:

  • Einrichten des ELK-Servers in Azure
  • Konfigurieren von Logstash für den Empfang von Protokollen von Event Hubs
  • Visualisieren von Plattform- und Anwendungsprotokollen in Kibana

In dieser Tutorialserie lernen Sie Folgendes:

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen können, müssen Sie Folgendes tun:

  • Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto.
  • Richten Sie Ihre Anwendung so ein, dass sie Protokolle an den in Teil 2 angegebenen Ort ausgibt.
  • Absolvieren Sie Teil 3, und vergewissern Sie sich, dass Sie über einen aktiven Service Fabric-Cluster verfügen, der zum Senden von Protokollen an Event Hubs konfiguriert ist.
  • Sie benötigen die Richtlinie in Event Hubs mit der Berechtigung „Lauschen“ sowie den dazugehörigen Primärschlüssel aus dem dritten Teil der Reihe.

Laden Sie die Beispielanwendung „Voting“ herunter.

Falls Sie die Beispielanwendung „Voting“ aus Teil 1 dieser Tutorialreihe nicht erstellt haben, können Sie sie herunterladen. Führen Sie in einem Befehlsfenster den folgenden Befehl aus, um das Beispiel-App-Repository auf Ihren lokalen Computer zu klonen.

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart

Erstellen eines ELK-Servers in Azure

Sie können für dieses Tutorial eine vorkonfigurierte ELK-Umgebung verwenden und mit dem Abschnitt Einrichten von Logstash fortfahren, wenn Sie bereits über eine entsprechende Umgebung verfügen. Gehen Sie andernfalls wie folgt vor, um eine solche Umgebung in Azure zu erstellen:

  1. Erstellen Sie eine von Bitnami zertifizierte ELK-Instanz in Azure. In diesem Tutorial müssen bei der Erstellung des Servers keine speziellen Anforderungen erfüllt werden.

  2. Navigieren Sie im Azure-Portal zu Ihrer Ressource, und klicken Sie im Abschnitt Support + Problembehandlung auf Startdiagnose. Klicken Sie anschließend auf die Registerkarte Serial Log (Serielles Protokoll).

    Boot Diagnostics

  3. Durchsuchen Sie die Protokolle nach dem Kennwort, das für den Zugriff auf die Kibana-Instanz benötigt wird. Orientieren Sie sich dabei am folgenden Codeausschnitt:

    [   25.932766] bitnami[1496]: #########################################################################
    [   25.948656] bitnami[1496]: #                                                                       #
    [   25.962448] bitnami[1496]: #        Setting Bitnami application password to '[PASSWORD]'           #
    [   25.978137] bitnami[1496]: #        (the default application username is 'user')                   #
    [   26.004770] bitnami[1496]: #                                                                       #
    [   26.029413] bitnami[1496]: #########################################################################
    
  4. Klicken Sie im Azure-Portal auf der Übersichtsseite des Servers auf die Schaltfläche „Verbinden“, um die Anmeldeinformationen zu erhalten.

    VM Connection

  5. Stellen Sie mithilfe des folgenden Befehls eine SSH-Verbindung mit dem Server her, der das ELK-Image hostet:

    ssh [USERNAME]@[CONNECTION-IP-OF-SERVER]
    
    Example: ssh testaccount@104.40.63.157
    

Einrichten von ELK

  1. Als Erstes muss die ELK-Umgebung geladen werden.

    sudo /opt/bitnami/use_elk
    
  2. Wenn Sie eine vorhandene Umgebung verwenden, müssen Sie den folgenden Befehl ausführen, um den Logstash-Dienst zu beenden.

    sudo /opt/bitnami/ctlscript.sh stop logstash
    
  3. Führen Sie den folgenden Befehl aus, um das Logstash-Plug-In für Event Hubs zu installieren:

    logstash-plugin install logstash-input-azureeventhub
    
  4. Erstellen Sie eine Logstash-Konfigurationsdatei mit folgendem Inhalt, oder passen Sie Ihre vorhandene Logstash-Konfigurationsdatei entsprechend an. Wenn Sie die Datei erstellen und das ELK-Bitnami-Image in Azure verwenden, muss die Datei unter /opt/bitnami/logstash/conf/access-log.conf erstellt werden.

    input
    {
        azureeventhub
        {
            key => "[RECEIVER-POLICY-KEY-FOR-EVENT-HUB]"
            username => "[RECEIVER-POLICY-NAME]"
            namespace => "[EVENTHUB-NAMESPACENAME]"
            eventhub => "[EVENTHUB-NAME]"
            partitions => 4
        }
    }
    
    output {
         elasticsearch {
             hosts => [ "127.0.0.1:9200" ]
         }
     }
    
  5. Führen Sie den folgenden Befehl aus, um die Konfiguration zu überprüfen:

    /opt/bitnami/logstash/bin/logstash -f /opt/bitnami/logstash/conf/ --config.test_and_exit
    
  6. Starten Sie den Logstash-Dienst.

    sudo /opt/bitnami/ctlscript.sh start logstash
    
  7. Überprüfen Sie Ihre Elasticsearch-Instanz, und vergewissern Sie sich, dass Sie Daten empfangen.

    curl 'localhost:9200/_cat/indices?v'
    
  8. Rufen Sie unter http://SERVER-IP Ihr Kibana-Dashboard auf, und geben Sie den Benutzernamen und das Kennwort für Kibana ein. Wenn Sie das ELK-Image in Azure verwendet haben, lautet der Standardbenutzername „User“, und als Kennwort wird das bei der Startdiagnose abgerufene Kennwort verwendet.

    Screenshot shows a Kibana dashboard to visualize platform and application logs.

Nächste Schritte

In diesem Tutorial haben Sie Folgendes gelernt:

  • Einrichten eines ELK-Servers in Azure
  • Konfigurieren des Servers für den Empfang von Diagnoseinformationen aus Ihrem Service Fabric-Cluster

Fahren Sie mit dem nächsten Tutorial fort: