Fermer

juin 29, 2022

PAS pour l’intégration de la journalisation différée OpenEdge avec EFK Stack

PAS pour l’intégration de la journalisation différée OpenEdge avec EFK Stack


PAS pour la journalisation différée OpenEdge

Étant donné que Progress Application Server pour OpenEdge (PAS pour OpenEdge) est une technologie de serveur, un moyen courant de diagnostiquer un problème d’application s’exécutant dans PAS pour OpenEdge consiste à augmenter le niveau de journalisation et à activer davantage de types d’entrées de journal dans le fichier de propriétés.

Un type d’entrée de journal automatique typique est un 4GLTrace, qui génère un message chaque fois qu’une méthode ou une procédure dans l’application commence et se termine. Cela peut générer beaucoup d’informations et rend le fichier journal de l’agent PAS pour OpenEdge ingérable et les messages difficiles à filtrer et à afficher. L’écriture des messages de journal sur le disque prend également plus de temps et peut avoir un impact sur la capacité à diagnostiquer les problèmes de synchronisation, car cela modifie la vitesse d’exécution.

Dans OpenEdge 12.1, PAS pour OpenEdge a introduit la journalisation en mémoire ou différée, qui est activée en définissant quelques propriétés dans openge.properties dossier. Ces messages de journal habituellement consignés dans le journal de l’agent sont plutôt conservés en mémoire où ils peuvent être récupérés à la demande ou écrits dans le fichier journal à la demande à l’aide d’un appel JMX. Cependant, il n’y a aucun moyen de savoir à quelle fréquence récupérer les messages de journal différés, et il n’y a aucun moyen de les diriger vers un système de journalisation centralisé tel que la pile EFK (Elastic Search, Fluent bit, Kibana), où ils peuvent être consultés. à l’aide d’un outil comme Kibana.

Ce document décrit comment transférer automatiquement tous les messages de journal écrits dans le journal différé en mémoire vers la pile EFK où ils peuvent être examinés à l’aide d’un outil tel que Kibana.

Il existe trois étapes simples pour transférer vos messages de journal différé vers la pile EFK :

  1. Activez la journalisation différée pour votre PAS pour l’instance OpenEdge.
  2. Installez et configurez Fluent-bit.
  3. Dites à votre instance PAS for OpenEdge en cours d’exécution de commencer à envoyer les messages de journal différés à la pile EFK.

Comment activer la journalisation différée

S’assurer allowRuntimeUpdates la propriété est activée dans openge.properties fichier lors du démarrage du serveur PAS pour OpenEdge. Cela nous permettra d’activer la journalisation différée sans redémarrer le serveur.

[AppServer]

allowRuntimeUpdates=1

La journalisation différée peut être activée en modifiant les propriétés suivantes sous [AppServer.SessMgr] groupe dans openge.properties dossier. Pour plus d’informations sur la journalisation différée, reportez-vous à la documentation OpenEdge lien.

defrdLogEntryTypes=
defrdLoggingLevel=0
defrdLogNumLines=0

defrdLogEntryTypes :

Une entrée unique ou une liste délimitée par des virgules de types d’entrées de journalisation pour le tampon de journal différé.

defrdLoggingLevel :

Niveau de journalisation des messages dans le tampon de journal différé. Les valeurs possibles sont :

  • 0 – Aucun fichier journal écrit
  • 1 – Erreur uniquement
  • 2 – Basique
  • 3 – Verbeux
  • 4 – Prolongé

defrdLogNumLines :

Nombre maximal de lignes d’informations de journal pouvant être écrites dans le tampon de journal différé, partagé par toutes les sessions ABL d’un agent. La valeur par défaut est 0, ce qui désactive la fonction.

Générer des entrées de journal différées

Téléchargez le fichier zip joint, puis extrayez-le dans un dossier. Ouvert config.txt fichier puis mettez à jour les valeurs suivantes :

  • instanceLocation : PAS pour l’emplacement de l’instance OpenEdge
  • defrdLogEntryTypes :
  • defrdLoggingLevel :
  • defrdLogNumLines :
  • agentID : ID de l’agent PAS. (Vous pouvez obtenir l’ID de l’agent à partir de la commande tcman.sh plist)
  • pollingInterval : durée en secondes pour vider les entrées de journal différées de la mémoire vers le disque

Goûter config.txt dossier:

Une fois que vous mettez à jour config.txt fichier, exécuter deferredLogging.sh qui se chargera de mettre à jour les entrées de journalisation différées dans le fichier openge.properties, de préparer une requête JMX basée sur l’identifiant de l’agent et l’intervalle d’interrogation, puis d’exécuter enfin la requête JMX pour récupérer les entrées de journalisation différées.

Intégration de la pile EFK (Elastic Search, Fluent-bit, Kibana)

Les fichiers d’entrée de journal différés générés à partir de l’étape ci-dessus sont récupérés puis stockés dans la base de données Elastic Search, et nous pouvons afficher ces entrées de journal depuis Kibana.

Pour stocker ces fichiers journaux dans Elastic Search, nous devons d’abord configurer Fluent-bit, qui est utilisé pour surveiller le modèle de fichier donné, puis envoyer ces fichiers à Elastic Search. La configuration de la pile EFK n’entre pas dans le cadre de ce document. Ici, je parle uniquement des modifications de configuration Fluent-bit nécessaires pour analyser les entrées de journal et l’intégration EFK.

Configurations Fluent-Bit

Nous devons définir des analyseurs de journal, des mécanismes d’entrée et de sortie en fluent-bit, pour analyser les entrées de journal entrantes. Nous devons également entrer des modèles de fichiers pour analyser les données, puis trouver où stocker les données analysées. Courir configure_fluentbit.sh fichier, cela se chargera de configurer le bit fluent avec des fichiers journaux et des analyseurs différés.

Maintenant, démarrez/redémarrez le service fluent-bit, afin qu’il puisse écouter les changements de modèle de fichier spécifiés, puis envoyez ces entrées à Elastic Search. Une fois ces valeurs stockées dans Elastic Search, nous pouvons les visualiser via un outil de visualisation appelé Kibana. Dans Kibana, nous pouvons configurer des index et des filtres. Nous pouvons interroger les enregistrements en fonction de certains messages et même tracer des graphiques.

Exemple d’écran de Kibana :




Source link