Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

divers:logrotate [2014/05/27 03:32] (Version actuelle)
Ligne 1: Ligne 1:
 +<style float-right>​{{tag>​logs,​ logrotate, automatisation}}</​style>​
 +<style float-left>​{{:​icones:​filequickprint.png?​nolink&​70}}</​style>​
 +====== Rotation des logs ======
 +//​[[:​|Retour à la liste des tutoriels]]//​
 +~~CLEARFLOAT~~
 +<note tip>La rotation des logs //(journaux d'​événements)//​ permet de limiter la taille de ces fichiers et également de notifier le webmaster de certains événements.</​note>​
 +<​note>​**Prérequis**
 +  * FIXME Avoir installé nano.
 +</​note>​
 +\\
 +===== Installation de logrotate =====
 +<code bash>​apt-get install logrotate</​code>​
  
 +
 +===== Configuration de logrotate =====
 +Je souhaite effectuer deux actions principales :
 +  * pour les journaux d'​accès aux sites web : les conserver durant 1 année ​
 +Ceci répondant à une obligation légale européenne transcrite dans le droit français par le [[http://​www.legifrance.gouv.fr/​affichTexte.do;​jsessionid=C2B3778733620B8000EA273978BBA3AE.tpdjo13v_2?​cidTexte=JORFTEXT000000637071&​dateTexte=20120802|décret n° 2006-358 du 24 mars 2006 relatif à la conservation des données des communications électroniques]]
 +  * recevoir toutes les semaines par courriel les journaux d'​erreur de mes sites web
 +<​note>​Si la fréquence d'​envoi de mails est trop élevée, le webmaster finit rapidement par ne plus lire ce genre de mails !</​note>​
 +
 +===== Edition de la configuration de logrotate =====
 +<code bash>​nano /​etc/​logrotate.d/​apache2</​code>​
 +
 +
 +==== Configuration par défaut ====
 +Décryptons le fichier originel :
 +<​code>/​var/​log/​apache2/​*.log {</​code>​
 +Les fichiers de log qui doivent être traités.
 +<​code>​weekly</​code>​
 +La fréquence de traitement (daily, weekly, monthly, yearly).
 +<​code>​missingok</​code>​
 +Il se peut que le journal d'​événement n'​existe pas.
 +<​code>​rotate 52</​code>​
 +Le nombre de fichiers conservés (le nombre de rotations effectuées avant de supprimer un journal).
 +<note tip>La durée de conservation d'un log est égale à la fréquence de traitement * le nombre d’occurrences conservées !</​note>​
 +<​code>​compress</​code>​
 +Les anciens journaux seront conservés de manière compressée //(gain d'​espace disque !)//.
 +<​code>​delaycompress</​code>​
 +Les anciens journaux ne seront compressés qu'à la fin de la rotation des logs //(évite des problèmes d'​accès concurrents si un autre processus souhaite accéder au journal durant sa rotation)//​.
 +<​code>​notifempty</​code>​
 +Aucune action n'est effectuée si le journal est vide.
 +<​code>​create 640 root adm
 +sharedscripts</​code>​
 +Ces options définissent les droits avec lesquels les journaux sont créés.
 +<​code>​postrotate
 + /​etc/​init.d/​apache2 reload > /dev/null
 +endscript
 +}</​code>​
 +L'​action effectuée après la rotation des journaux d'​événements.
 +Dans notre cas : recharger le configuration d'​Apache.
 +
 +
 +==== Journal d'​accès ====
 +Voici la configuration que je choisis :
 +<file logrotate>​
 +# Les journaux d'​accès au site web
 +/​var/​log/​apache2/​*.log /​var/​www/​anael.eu/​logs/​access.log {
 + weekly
 + missingok
 + rotate 52
 + compress
 + delaycompress
 + notifempty
 + create 640 root adm
 + sharedscripts
 + postrotate
 + /​etc/​init.d/​apache2 reload > /dev/null
 + endscript
 +}</​file>​
 +
 +==== Journal d'​erreur ====
 +Je rajoute également dans le même fichier une seconde partie pour recevoir par courriel les journaux d'​erreur des sites web !
 +
 +Je vais utiliser les instructions :
 +<​code>​mail webm*ster@anael.eu</​code>​
 +Définit l'​adresse mail destinatrice.
 +<​code>​mailfirst</​code>​
 +Envoi le premier journal existant (le journal actuel).
 +
 +Voici la seconde partie du fichier de configuration :
 +<file logrotate_error>​
 +/​var/​www/​anael.eu/​logs/​error.log {
 + weekly
 + missingok
 + rotate 52
 + compress
 + delaycompress
 + mail webm*ster@anael.eu
 + mailfirst
 + postrotate
 + /​etc/​init.d/​apache2 reload > /dev/null
 + endscript
 +}
 +</​file>​
 +
 +===== Ajouter d'​autres sites web =====
 +<note tip>Si vous souhaitez effectuer la rotation des journaux d'​événements pour plusieurs domaines séparés, il vous suffit d'​ajouter le chemin vers le fichier de log sur la première ligne de chaque bloc d'​instruction //​(séparée par un espace)//​!</​note>​
 +
 +===== Planification =====
 +Le processus de rotation des logs sera effectué de manière automatique.
 +
 +Toutefois, si vous souhaitez exécuter manuellement la rotation des logs :
 +<code bash>​logrotate /​etc/​logrotate.d/​apache2 -v</​code>​
 +
 +<note important>​La première exécution de logrotate peut solliciter fortement votre serveur, en fonction de la quantité de données à traiter initialement !</​note>​
 +
 +\\
 +===== Liens =====
 +  * [[.:|Retour à la liste des tutoriels Divers]]
 +  * [[:|Retour à la liste des tutoriels]]