Activer la rotation des journaux pour les composants Edge

La rotation des journaux (qui consiste à faire tourner plusieurs fichiers journaux avant et après leur utilisation) simplifie l'administration des systèmes qui génèrent un grand nombre de fichiers journaux. La rotation des journaux permet d'automatiser la rotation, la compression, la suppression et l'envoi des fichiers journaux.

Dans Edge for Private Cloud, certains des fichiers journaux principaux de chaque composant apigee sont configurés avec un mécanisme de rotation par défaut. Par exemple, dans le composant "Processeur de messages", les fichiers suivants sont configurés avec un mécanisme de rotation par défaut à l'aide de logback:

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

Des fichiers similaires existent pour d'autres composants edge-* (dont le nom commence par edge-), tels que edge-management-server, edge-router, edge-postgres-server et edge-qpid-server.

Chacun de ces composants edge-* génère également un fichier journal supplémentaire, qui est une sortie redirigée de la console du composant concerné. Dans le cas du composant "Processeur de messages", ce fichier s'appelle /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. D'autres composants edge-* génèrent un fichier similaire. La rotation de ces fichiers n'est pas effectuée par la bibliothèque logback, mais par logrotate et crontab.

Avant de commencer

  • Si vous ne connaissez pas bien les configurations logrotate, consultez le manuel Logrotate.
  • Si vous ne connaissez pas bien les configurations crontab, consultez le manuel crontab.

Activer les rotations des journaux

À partir de la version 4.52 d'Edge pour Private Cloud, lorsque vous installez un composant edge-*, une entrée crontab pour la rotation de ce journal est automatiquement créée dans le crontab de l'utilisateur apigee. Cette tâche Cron s'exécute toutes les heures par défaut et utilise l'utilitaire logrotate pour alterner les journaux. Si plusieurs composants edge-* sont installés sur le même nœud (par exemple, dans une installation tout-en-un, ou si le routeur et le processeur de messages sont installés sur un nœud), chaque composant possède sa propre entrée Cron pour la rotation de ses journaux respectifs.

Remarques :

  • Si vous ne souhaitez pas configurer automatiquement une tâche Cron logrotate lors de l'installation d'un composant edge-*, définissez l'indicateur "ENABLE_LOGROTATE=n" dans le fichier de configuration silencieuse que vous utilisez pour l'installation. Si la tâche Cron n'est pas définie lors de l'installation, vous pouvez la configurer ultérieurement en suivant les étapes pour activer la tâche Cron logrotate d'un composant.
  • Pour le composant edge-router, une tâche Cron supplémentaire logrotate est également configurée par défaut. Ce Cron effectue une rotation des journaux d'accès et d'erreurs générés par Nginx.

Les exemples suivants illustrent les différentes configurations et opérations d'administration que vous pouvez effectuer.

Afficher les entrées Cron sur un nœud

sudo crontab -u apigee -l

Afficher l'entrée Cron logrotate d'un composant

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s

Par exemple, pour afficher le Cron logrotate du processeur de messages Edge, exécutez la commande suivante:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s

Afficher la configuration logrotate d'un composant

La configuration logrotate d'un composant se trouve dans le fichier $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Par exemple, dans le cas d'un processeur de messages de périphérie, la configuration logrotate du nœud se trouve dans $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Activer le Cron logrotate d'un composant

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Par exemple, pour activer le Cron logrotate du processeur de messages Edge, exécutez la commande suivante:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

Désactiver le Cron logrotate d'un composant

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d

Par exemple, pour désactiver le Cron logrotate du processeur de messages Edge, exécutez la commande suivante:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

Modifier la planification Cron d'une commande logrotate spécifique

Sur le nœud sur lequel vous souhaitez modifier la planification Cron logrotate, ouvrez le fichier de remplacement de la configuration du composant correspondant. Les fichiers de remplacement de la configuration du composant edge-* sont répertoriés dans le tableau ci-dessous:

Composant Fichier de remplacement de configuration
edge-message-processor $APIGEE_ROOT/customer/application/message-processor.properties
edge-management-server $APIGEE_ROOT/customer/application/management-server.properties
edge-router $APIGEE_ROOT/customer/application/router.properties
edge-postgres-server $APIGEE_ROOT/customer/application/postgres-server.properties
edge-qpid-server $APIGEE_ROOT/customer/application/qpid-serverproperties

Ouvrez le fichier de remplacement approprié et définissez le remplacement de configuration suivant. L'exemple ci-dessous remplace la tâche Cron pour qu'elle s'exécute à la 0e minute de chaque heure.

conf_logrotate_cron_duration=0 * * * *

Pour définir le forçage de configuration:

  1. Assurez-vous que le fichier est lisible par l'utilisateur apigee.
  2. Appliquez la planification Cron la plus récente au composant :
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Par exemple, pour appliquer une planification Cron plus récente au logrotate du processeur de messages de périphérie, saisissez:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

Pour vérifier que les modifications ont été appliquées, vérifiez les entrées Cron ou l'entrée Cron logrotate du composant de vue.

Configurations logrotate supplémentaires

Comme pour les étapes décrites dans la section ci-dessus pour modifier la planification Cron, vous pouvez également modifier des configurations supplémentaires. Le tableau ci-dessous décrit ces configurations:

Configuration Description
conf_logrotate_bin_location Emplacement du binaire logrotate. Valeur par défaut : /usr/sbin/logrotate
conf_logrotate_status_file Le fichier d'état capture l'état d'exécution de logrotate. Les émissions disposent des autorisations de lecture/écriture pour l'utilisateur apigee. Par défaut : $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Journaux à alterner Peut inclure des caractères génériques. Valeur par défaut : $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Nombre de rotations. Valeur par défaut : "5"
conf_logrotate_compress Indique s'il faut compresser les fichiers ayant fait l'objet d'une rotation. Valeur par défaut : "compress"
conf_logrotate_compress_type Type de compression. Valeur par défaut : "delaycompress". Reporte la compression du dernier fichier ayant fait l'objet d'une rotation au prochain cycle logrotate.
conf_logrotate_size Limite de taille de journal pour la rotation. Valeur par défaut : "10 M"

Utilisez votre propre mécanisme de rotation des journaux et Cron.

Si vos exigences en matière de rotation du fichier <component>.log ne sont pas satisfaites par les configurations fournies par Apigee, vous utilisez votre propre mécanisme de rotation des journaux à l'aide d'outils tels que logrotate. Par exemple, les configurations fournies par Apigee vous permettent d'alterner les journaux par taille, mais vous pouvez effectuer une rotation des journaux en fonction de la date/l'heure ou d'autres facteurs. Dans ce cas, vous devez désactiver le service Cron logrotate fourni par Apigee et configurer vos propres tâches Cron en fonction de vos besoins.

Si vous devez faire référence à l'entrée Cron de rotation des journaux d'Apigee, vous pouvez la trouver dans le fichier $APIGEE_ROOT//logrotate/logrotate.cron. Par exemple, dans le cas de edge-message-processor, ce fichier s'appelle $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Ce fichier inclut à la fois l'entrée Cron et la commande exécutée par Apigee pour la rotation des journaux. Si vous souhaitez utiliser logrotate, mais pas les configurations Apigee, vous pouvez créer votre propre fichier de configuration logrotate et utiliser une commande logrotate similaire pour effectuer la rotation des journaux.