In diesem Artikel zeige ich Ihnen drei leistungsstarke Tools zum Migrieren von ** Java ** -Protokollen in die Cloud. ** Log4J, LogBack, Producer Lib **.
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:
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.
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.
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.
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:
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]
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
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.
Schauen wir uns fünf Analysebeispiele an.
level: ERROR | select location ,count(*) as count GROUP BY location ORDER BY count DESC LIMIT 3
| select level ,count(*) as count GROUP BY level ORDER BY count DESC
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).
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
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