Dans cet article, je vais vous montrer trois outils puissants pour la migration des journaux ** Java ** vers le cloud. ** Log4J, LogBack, Producer Lib **.
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:
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.
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é.
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.
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:
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]
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
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.
Regardons cinq exemples d'analyse.
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
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).
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
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