Activer la rotation des journaux pour les composants Edge

La rotation des journaux, qui consiste à alterner l'utilisation de plusieurs fichiers journaux, 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 par e-mail des fichiers journaux.

Dans Edge for Private Cloud, certains des principaux fichiers journaux de chaque composant apigee sont configurés avec un mécanisme de rotation par défaut. Par exemple, sur 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

Il existe des fichiers similaires 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 respectif. Dans le cas du composant Processeur de messages, ce fichier s'appelle /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Les 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 plutôt à l'aide de logrotate et crontab.

Avant de commencer

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

Activer la rotation des journaux

À partir de la version 4.52 d'Edge for 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. Ce job Cron s'exécute toutes les heures par défaut et utilise l'utilitaire logrotate pour effectuer la rotation des 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 aura sa propre entrée cron pour la rotation de ses journaux respectifs.

Remarques :

  • Si, lors de l'installation d'un composant edge-*, vous ne souhaitez pas configurer automatiquement une tâche Cron logrotate, définissez l'option "ENABLE_LOGROTATE=n" dans le fichier de configuration silencieux que vous utilisez pour l'installation. Si le job Cron n'est pas défini lors de l'installation, vous pouvez le configurer ultérieurement en suivant la procédure pour activer le job Cron logrotate d'un composant.
  • Pour le composant edge-router, un job Cron logrotate supplémentaire est également configuré par défaut. Cette tâche cron effectue la rotation des journaux d'accès et d'erreur générés par Nginx.

Les exemples suivants illustrent 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 la tâche Cron logrotate d'edge-message-processor, 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 de edge-message-processor, 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 la tâche Cron logrotate d'edge-message-processor, exécutez la commande suivante :

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

Désactiver la tâche cron logrotate d'un composant

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

Par exemple, pour désactiver la tâche 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 où vous souhaitez modifier la programmation cron logrotate, ouvrez le fichier de remplacement de configuration du composant correspondant. Les fichiers de remplacement de configuration du composant edge-* sont listé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 le job Cron pour qu'il s'exécute à la minute 0 de chaque heure.

conf_logrotate_cron_duration=0 * * * *

Pour définir le remplacement de configuration :

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

Par exemple, pour appliquer une planification cron plus récente à logrotate d'edge-message-processor, 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 affichez l'entrée cron du composant logrotate.

Configurations logrotate supplémentaires

Comme pour les étapes de modification de la planification cron décrites dans la section ci-dessus, vous pouvez également modifier d'autres configurations. 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 Fichier d'état capturant l'état d'exécution de logrotate : affiche les autorisations de lecture/écriture pour l'utilisateur apigee. Par défaut : $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Journaux à faire pivoter. Peut inclure des caractères génériques. 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 si les fichiers alternés doivent être compressés. Par défaut : "compress"
conf_logrotate_compress_type Type de compression. Valeur par défaut : "delaycompress". Reporte la compression du dernier fichier alterné au cycle logrotate suivant.
conf_logrotate_size Taille maximale du journal pour la rotation. Valeur par défaut : "10M"

Utiliser votre propre mécanisme de rotation des journaux et cron

Si les configurations fournies par Apigee ne répondent pas à vos exigences de rotation du fichier <component>.log, vous pouvez utiliser votre propre mécanisme de rotation des journaux à l'aide d'outils tels que logrotate ou autres. Par exemple, les configurations fournies par Apigee vous permettent d'effectuer une rotation des journaux en fonction de leur taille, mais vous souhaitez effectuer une rotation des journaux en fonction de la date/heure ou d'autres facteurs. Dans ce cas, vous devez désactiver le cron logrotate fourni par Apigee et configurer vos propres jobs cron si nécessaire.

Si vous avez besoin de consulter l'entrée cron de rotation des journaux d'Apigee, vous la trouverez 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 que vous ne voulez pas utiliser les configurations d'Apigee, vous pouvez créer votre propre fichier de configuration logrotate et utiliser une commande logrotate similaire pour effectuer la rotation des journaux.