Drei leistungsstarke Tools zum Migrieren von Java-Protokollen in die Cloud: Log4J, LogBack, Producer Lib

In diesem Artikel zeige ich Ihnen drei leistungsstarke Tools zum Migrieren von ** Java ** -Protokollen in die Cloud. ** Log4J, LogBack, Producer Lib **.

Weg zu zentralisierten Protokollen

In den letzten Jahren hat das Aufkommen von zustandsloser Programmierung, Containern und serverloser Programmierung die Effizienz der Softwarebereitstellung und -bereitstellung erheblich verbessert. In der Entwicklung der Architektur können wir zwei Änderungen sehen:

image.png

Die beiden oben genannten Änderungen zeigen, dass hinter der elastischen und standardisierten Architektur die Anforderungen an die betriebliche Wartung (O & M) und die Diagnose immer komplexer werden. Vor zehn Jahren konnte ich mich bei einem Server anmelden und schnell Protokolle abrufen. Der Anhängeverarbeitungsmodus ist jedoch nicht mehr vorhanden. Wir stehen derzeit vor einer standardisierten Black Box.

image.png

Um auf diese Änderungen zu reagieren, werden nacheinander auf DevOps spezialisierte Diagnose- und Analysetools angezeigt. Dazu gehören eine zentrale Überwachung, zentralisierte Protokollierungssysteme, verschiedene SaaS-Bereitstellungen, Überwachung und vieles mehr.

Durch die Zentralisierung der Protokolle können Sie die vor Ihnen liegenden Probleme lösen. Nachdem die Anwendung das Protokoll erstellt hat, wird das Protokoll in Echtzeit (oder nahezu in Echtzeit) an einen zentralen Knotenserver gesendet. Syslog, Kafka, ELK und HBase werden häufig zur zentralen Speicherung verwendet.

Vorteile der Zentralisierung

image.png

Sammler (Java-Serie)

Der Protokolldienst ist kompatibel mit Servern, mobilen Endgeräten, eingebetteten Geräten und verschiedenen Entwicklungssprachen mehr als 30 Datenerfassungsmethoden. Wir bieten eine umfassende Zugangslösung. Java-Entwickler benötigen ein vertrautes Protokollierungsframework. Log4j, Log4j2, Logback Appender.

Java-Anwendungen verfügen derzeit über zwei gängige Lösungen für die Protokollsammlung.

image.png

Mit Appender können Sie Config verwenden, um die Protokollsammlung in Echtzeit einfach abzuschließen, ohne Ihren Code zu ändern. Der von Log Service bereitgestellte Appender der Java-Serie bietet die folgenden Vorteile.

--Konfigurationsänderungen werden wirksam, ohne das Programm zu ändern.

Übersicht und Verwendung von Appendern: Die bereitgestellten Appender sind wie folgt. Alle zugrunde liegenden Ebenen verwenden aliyun-log-Producer-Java, um die Daten zu schreiben Benutzen.

aliyun-log-log4j-appender aliyun-log-log4j2-appender aliyun-log-logback-appender 4 Unterschiede:

image.png

Appender-Integration

Integrieren Sie Appender, indem Sie die Installationsschritte für [aliyun-log-log4j-appender] ausführen (https://github.com/aliyun/aliyun-log-log4j-appender?spm=a2c65.11461447.0.0.2b7a65cbO0qZgq). tun können.

Der Inhalt der Einstellungsdatei "log4j.properties" lautet wie folgt.

log4j.rootLogger=WARN,loghub

log4j.appender.loghub=com.aliyun.openservices.log.log4j.LoghubAppender

# Log Service project name (required parameter)
log4j.appender.loghub.projectName=[your project]
# Log Service LogStore name (required parameter)
log4j.appender.loghub.logstore=[your logstore]
#Log Service HTTP address (required parameter)
log4j.appender.loghub.endpoint=[your project endpoint]
# User identity (required parameter)
log4j.appender.loghub.accessKeyId=[your accesskey id]
log4j.appender.loghub.accessKey=[your accesskey]

Abfrage und Analyse

Wenn Sie den Appender wie im vorherigen Schritt beschrieben konfigurieren, werden die von Ihrer Java-Anwendung generierten Protokolle automatisch an den Protokolldienst gesendet. Sie können LogSearch / Analytics verwenden, um diese Protokolle in Echtzeit abzufragen und zu analysieren. Siehe das Beispielprotokollformat unten. In diesem Beispiel verwendetes Protokollformat:

Protokoll, das das Anmeldeverhalten aufzeichnet:

level: INFO
location:  com.aliyun.log4jappendertest.Log4jAppenderBizDemo.login(Log4jAppenderBizDemo.java:38)
message: User login successfully. requestID=id4 userID=user8 
thread: main
time:  2018-01-26T15:31+0000  

Protokoll, das das Kaufverhalten aufzeichnet:

level: INFO
location:  com.aliyun.log4jappendertest.Log4jAppenderBizDemo.order(Log4jAppenderBizDemo.java:46)
message: Place an order successfully. requestID=id44 userID=user8 itemID=item3 amount=9
thread: main
time: 2018-01-26T15:31+0000 

Aktivieren Sie die Abfrageanalyse

Bevor Sie die Daten abfragen und analysieren können, müssen Sie die Abfrage- und Analysefunktionen aktivieren. Führen Sie die folgenden Schritte aus, um die Funktion zu aktivieren.

image.png

Protokollanalyse

Schauen wir uns fünf Analysebeispiele an.

  1. Zählen Sie die drei besten Plätze mit den meisten Fehlern in der letzten Stunde. Syntaxbeispiel:
level: ERROR | select location ,count(*) as count GROUP BY  location  ORDER BY count DESC LIMIT 3
  1. Zählen Sie die Anzahl der in den letzten 15 Minuten für jede Protokollebene generierten Protokolle. Syntaxbeispiel:
| select level ,count(*) as count GROUP BY level ORDER BY count DESC 
  1. Fragen Sie den Protokollkontext ab.

Für jedes Protokoll können Sie die Protokollkontextinformationen in der ursprünglichen Protokolldatei genau rekonstruieren.

Weitere Informationen finden Sie unter Kontextabfrage (https://www.alibabacloud.com/help/ja/doc-detail/48148.html).

  1. Zählen Sie die drei Benutzer, die sich in der letzten Stunde am häufigsten angemeldet haben.

Syntaxbeispiel:

login | SELECT regexp_extract(message, 'userID=(? <userID>[a-zA-Z\d]+)', 1) AS userID, count(*) as count GROUP BY userID ORDER BY count DESC LIMIT 3 
  1. Erstellen Sie die Gesamtzahlungsstatistik für jeden Benutzer in den letzten 15 Minuten.

Syntaxbeispiel:

order | SELECT regexp_extract(message, 'userID=(? <userID>[a-zA-Z\d]+)', 1) AS userID, sum(cast(regexp_extract(message, 'amount=(? <amount>[a-zA-Z\d]+)', 1) AS double)) AS amount GROUP BY userID 

Recommended Posts

Drei leistungsstarke Tools zum Migrieren von Java-Protokollen in die Cloud: Log4J, LogBack, Producer Lib
Einführung in Java zum ersten Mal # 2
Über das Verfahren, damit Java funktioniert
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
Einrichten von SAP Cloud Platform Tools für Java
Verwendung des LOG Java Producer von Alibaba Cloud
Was Java-Ingenieure benötigen, um sich auf die Java 11-Version vorzubereiten