Trois outils puissants pour migrer les journaux Java vers le cloud: Log4J, LogBack, Producer Lib

Dans cet article, je vais vous montrer trois outils puissants pour la migration des journaux ** Java ** vers le cloud. ** Log4J, LogBack, Producer Lib **.

Chemin vers les journaux centralisés

Ces dernières années, l'avènement de la programmation sans état, des conteneurs et de la programmation sans serveur a considérablement amélioré l'efficacité de la livraison et du déploiement de logiciels. Il y a deux changements que nous pouvons voir dans l'évolution de l'architecture:

image.png

Les deux changements évoqués ci-dessus montrent que derrière l'architecture élastique et standardisée, les exigences de maintenance opérationnelle (O&M) et de diagnostic se complexifient. Il y a dix ans, j'ai pu me connecter à un serveur et récupérer rapidement les journaux. Cependant, le mode de traitement de l'attachement n'existe plus. Nous sommes actuellement confrontés à une boîte noire standardisée.

image.png

Afin de répondre à ces évolutions, des outils de diagnostic et d'analyse spécialisés pour le DevOps apparaissent les uns après les autres. Il s'agit notamment de la surveillance centralisée, des systèmes de journalisation centralisés, de divers déploiements SaaS, de la surveillance, etc.

En centralisant les journaux, vous pouvez résoudre les problèmes qui vous précèdent. Pour ce faire, une fois que l'application a généré le journal, le journal est envoyé en temps réel (ou quasiment en temps réel) à un serveur de nœud central. Syslog, Kafka, ELK et HBase sont souvent utilisés pour effectuer un stockage centralisé.

Avantages de la centralisation

image.png

Collector (série Java)

Le service de journalisation comprend plus de 30 méthodes de collecte de données qui prend en charge les serveurs, les terminaux mobiles, les appareils embarqués et divers langages de développement. Nous proposons une solution d'accès complète. Les développeurs Java ont besoin d'un cadre de journalisation familier. Log4j, Log4j2, Appender Logback.

Les applications Java disposent actuellement de deux solutions de collecte de journaux courantes.

image.png

Avec Appender, vous pouvez utiliser Config pour compléter facilement la collecte de journaux en temps réel sans changer votre code. L'appendeur de la série Java fourni par Log Service présente les avantages suivants.

Vue d'ensemble et utilisation des appenders: Les annexes fournies sont les suivantes. Toutes les couches sous-jacentes utilisent aliyun-log-producteur-java pour écrire les données Utiliser.

aliyun-log-log4j-appender aliyun-log-log4j2-appender aliyun-log-logback-appender 4 différences:

image.png

Intégration Appender

Intégrez Appender en suivant les étapes de configuration pour aliyun-log-log4j-appender peut faire.

Le contenu du fichier de paramètres «log4j.properties» est le suivant.

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]

Requête et analyse

Lorsque vous configurez l'appender comme décrit à l'étape précédente, les journaux générés par votre application Java sont automatiquement envoyés au service de journalisation. Vous pouvez utiliser LogSearch / Analytics pour interroger et analyser ces journaux en temps réel. Consultez l'exemple de format de journal ci-dessous. Format de journal utilisé dans cet exemple:

Journal qui enregistre le comportement de connexion:

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  

Journal qui enregistre le comportement d'achat:

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 

Activer l'analyse des requêtes

Avant de pouvoir interroger et analyser les données, vous devez activer les fonctionnalités de requête et d'analyse. Suivez les étapes ci-dessous pour activer la fonction.

image.png

Analyse du journal

Regardons cinq exemples d'analyse.

  1. Comptez les trois premières places avec le plus d'erreurs au cours de la dernière heure. Exemple de syntaxe:
level: ERROR | select location ,count(*) as count GROUP BY  location  ORDER BY count DESC LIMIT 3
  1. Comptez le nombre de journaux générés pour chaque niveau de journal au cours des 15 dernières minutes. Exemple de syntaxe:
| select level ,count(*) as count GROUP BY level ORDER BY count DESC 
  1. Interrogez le contexte du journal.

Pour n'importe quel journal, vous pouvez reconstruire avec précision les informations de contexte du journal dans le fichier journal d'origine.

Pour plus d'informations, consultez Requête de contexte (https://www.alibabacloud.com/help/ja/doc-detail/48148.html).

  1. Comptez les 3 premiers utilisateurs qui se sont connectés le plus fréquemment au cours de la dernière heure.

Exemple de syntaxe:

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. Compilez les statistiques de paiement total pour chaque utilisateur au cours des 15 dernières minutes.

Exemple de syntaxe:

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

Trois outils puissants pour migrer les journaux Java vers le cloud: Log4J, LogBack, Producer Lib
Introduction à Java pour la première fois # 2
À propos de la procédure pour que Java fonctionne
[Java] (pour MacOS) Méthode de définition du chemin de classe
Configuration des outils SAP Cloud Platform pour Java
Comment utiliser LOG Java Producer d'Alibaba Cloud
Ce dont les ingénieurs Java ont besoin pour se préparer à la version Java 11