GNU/Linux >> Tutoriels Linux >  >> Linux

Comment faire pivoter les fichiers journaux Apache sous Linux

Question : Je souhaite faire pivoter automatiquement le apache access_log et error_log fichiers. Pouvez-vous expliquer avec un exemple comment procéder ?

Réponse : Ceci peut être réalisé en utilisant l'utilitaire logrotate comme expliqué ci-dessous.

Ajoutez le fichier suivant au répertoire /etc/logrotate.d.

# vi /etc/logrotate.d/apache
/usr/local/apache2/logs/access_log /usr/local/apache2/logs/error_log {
    size 100M
    compress
    dateext
    maxage 30
    postrotate
      /usr/bin/killall -HUP httpd
      ls -ltr /usr/local/apache2/logs | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]
    endscript
}

Remarque : Reportez-vous à notre tutoriel de logrotate (avec 15 exemples) qui explique plus en détail comment utiliser les options de logrotate.

Dans l'exemple /etc/logrotate.d/apache ci-dessus :

  • taille 100M - Une fois que le access_log et le error_log atteignent 100M, il sera tourné. Vous pouvez également utiliser 100k (pour Ko), 100G (pour Go). Au lieu de la taille, vous pouvez également faire pivoter les journaux apache en utilisant la fréquence (quotidienne, hebdomadaire, mensuelle).
  • compresser – Indique que le fichier journal pivoté sera compressé. Par défaut, cela utilise gzip. Ainsi, le fichier pivoté aura l'extension .gz.
  • textedate – Ajoute la date au format AAAAMMJJ aux fichiers journaux pivotés. c'est-à-dire qu'au lieu de access_log.1.gz, il crée access_log-20110616.gz
  • maximum – Indique combien de temps les fichiers journaux pivotés doivent être conservés. Dans cet exemple, elles seront conservées pendant 30 jours.
  • postrotation et endscript – Toutes les commandes comprises entre ces deux paramètres seront exécutées après la rotation du journal.

Important : Une fois que vous faites pivoter les fichiers journaux, vous voulez qu'Apache écrive les nouveaux messages de journal dans les fichiers access_log et error_log nouvellement créés. Donc, vous devez envoyer le signal HUP à apache comme indiqué ici. Assurez-vous de faire /usr/bin/killall -HUP httpd, qui redémarrera apache après la rotation des fichiers journaux (En savoir plus sur kill).

En outre, vous souhaiterez peut-être vous envoyer un e-mail indiquant que le fichier journal est pivoté, ainsi que la sortie de la commande ls -ltr dans le corps de l'e-mail. c'est-à-dire ajouter ce qui suit entre l'option "postrotate" et "endscript" (après la commande killall).

ls -ltr /usr/local/apache2/logs | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]

Le script /etc/cron.daily/logrotate s'exécute tous les jours et effectuera une rotation du journal de tous les fichiers comme spécifié dans le /etc/logrotate.conf et tous les fichiers sous le répertoire /etc/logrotate.d.

Après avoir ajouté le fichier /etc/logrotate.d/apache ci-dessus, à des fins de test, vous pouvez appeler manuellement le script logrotate comme indiqué ci-dessous.

# /etc/cron.daily/logrotate

Une fois les fichiers journaux pivotés, faites un ls pour les vérifier. Comme nous l'avons expliqué ci-dessus, les fichiers journaux en rotation seront conservés pendant 30 jours.

# ls /usr/local/apache2/logs
access_log
error_log
access_log-20110716.gz
error_log-20110716.gz

Linux
  1. Comment gérer les fichiers journaux à l'aide de Logrotate sous Linux

  2. Comment écrire des fichiers journaux dans la RAM à l'aide de Log2ram sous Linux

  3. Comment compresser plusieurs fichiers sous Linux

  4. Fichiers journaux Linux

  5. Comment compresser tous les fichiers ou des fichiers spécifiques sous Linux

Comment décompresser des fichiers sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment ajouter manuellement des messages aux fichiers journaux du système Linux

Comment afficher les fichiers journaux Nginx sous Linux

Comment afficher les fichiers journaux Apache sous Linux

Comment compresser un fichier sous Linux