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:
- Erstellen einer Service Fabric Reliable Services-Java-Anwendung
- Bereitstellen und Debuggen der Anwendung in einem lokalen Cluster
- Bereitstellen der Anwendung in einem Azure-Cluster
- Einrichten der Überwachung und Diagnose für die Anwendung
- Richten Sie CI/CD ein.
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:
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.
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).
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]: #########################################################################
Klicken Sie im Azure-Portal auf der Übersichtsseite des Servers auf die Schaltfläche „Verbinden“, um die Anmeldeinformationen zu erhalten.
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
Als Erstes muss die ELK-Umgebung geladen werden.
sudo /opt/bitnami/use_elk
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
Führen Sie den folgenden Befehl aus, um das Logstash-Plug-In für Event Hubs zu installieren:
logstash-plugin install logstash-input-azureeventhub
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" ] } }
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
Starten Sie den Logstash-Dienst.
sudo /opt/bitnami/ctlscript.sh start logstash
Überprüfen Sie Ihre Elasticsearch-Instanz, und vergewissern Sie sich, dass Sie Daten empfangen.
curl 'localhost:9200/_cat/indices?v'
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.
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: