Senden Sie die Protokolle einer Java-App an den Elastic Stack (ELK).

1. Übersicht

In diesem kurzen Tutorial wird Schritt für Schritt erläutert, wie Anwendungsprotokolle an den Elastic Stack (ELK) gesendet werden.

In einem früheren Artikel haben wir uns darauf konzentriert, den Elastic Stack einzurichten und JMX-Daten an ihn zu senden.

2. Konfigurieren Sie die Rückmeldung

Beginnen wir mit der Konfiguration von Logback, um App-Protokolle mit FileAppender in eine Datei zu schreiben :

 logback/redditApp.log  logback/redditApp.%d{yyyy-MM-dd}.log 7      

Beachten Sie, dass:

  • Wir halten Protokolle von jedem Tag in einer separaten Datei mit RollingFileAppender mit TimeBasedRollingPolicy (mehr über diese appender hier)
  • Wir werden alte Protokolle nur eine Woche (7 Tage) lang aufbewahren, indem wir maxHistory auf 7 setzen

Beachten Sie auch, wie wir den LogstashEncoder verwenden , um die Codierung in ein JSON-Format durchzuführen - was mit Logstash einfacher zu verwenden ist.

Um diesen Encoder verwenden zu können, müssen wir unserer pom.xml die folgende Abhängigkeit hinzufügen :

 net.logstash.logback logstash-logback-encoder 4.11 

Stellen Sie abschließend sicher, dass die App über Berechtigungen zum Zugriff auf das Protokollierungsverzeichnis verfügt:

sudo chmod a+rwx /var/lib/tomcat8/logback

3. Konfigurieren Sie Logstash

Jetzt müssen wir Logstash so konfigurieren, dass Daten aus von unserer App erstellten Protokolldateien gelesen und an ElasticSearch gesendet werden.

Hier ist unsere Konfigurationsdatei logback.conf :

input { file { path => "/var/lib/tomcat8/logback/*.log" codec => "json" type => "logback" } } output { if [type]=="logback" { elasticsearch { hosts => [ "localhost:9200" ] index => "logback-%{+YYYY.MM.dd}" } } }

Beachten Sie, dass:

  • Eingabedatei wird als Logstash verwendet Protokolle diesmal von Logging - Dateien lesen
  • Der Pfad wird auf unser Protokollierungsverzeichnis festgelegt und alle Dateien mit der Erweiterung .log werden verarbeitet
  • Der Index wird auf den neuen Index "logback -% {+ YYYY.MM.dd}" anstelle des Standardindex "logstash -% {+ YYYY.MM.dd}" gesetzt.

Um Logstash mit einer neuen Konfiguration auszuführen, verwenden wir:

bin/logstash -f logback.conf

4. Visualisieren Sie Protokolle mit Kibana

Wir können unsere Logback-Daten jetzt im ' logback- * ' Index sehen.

Wir erstellen eine neue Suche "Logback-Protokolle", um sicherzustellen, dass die Logback-Daten mithilfe der folgenden Abfrage getrennt werden:

type:logback

Schließlich können wir eine einfache Visualisierung unserer Logback-Daten erstellen:

  • Navigieren Sie zur Registerkarte "Visualisieren"
  • Wählen Sie "Vertikales Balkendiagramm".
  • Wählen Sie "Aus gespeicherter Suche".
  • Wählen Sie die soeben erstellte Suche "Logback-Protokolle"

Für Y-Achse, stellen Sie sicher , Aggregation zu wählen: Count

Wählen Sie für die X-Achse:

  • Aggregation: Begriffe
  • Feld: Ebene

Nach dem Ausführen der Visualisierung sollten mehrere Balken eine Anzahl von Protokollen pro Ebene darstellen (DEBUG, INFO, ERROR,…).

5. Schlussfolgerung

In diesem Artikel haben wir die Grundlagen des Einrichtens von Logstash in unserem System gelernt, um die generierten Protokolldaten in Elasticsearch zu übertragen - und diese Daten mithilfe von Kibana zu visualisieren.