logrotate, ou comment éviter une catastrophe

Ils sont là. Ils grossissent dans l’ombre… Petit à petit, jour après jour, connexion après connexion, les fichiers de log que vous avez complétement oublié (« je m’en occuperai dès que j’ai fini de développer l’appli »).

Et puis un jour, c’est le drame : vous recevez un coup de fil : « tous les sites sont tombés ! il n’y a plus de mail, rien ne marche ». Alors vous cherchez, cherchez encore : « c’est pas possible, même le ssh a du mal ! Je me suis fais hacker ou quoi ?  » Aucun site ne répond, le ftp rame comme jamais, le serveur de mail est tombé depuis longtemps : vous commencez à sentir une grosse boule dans le ventre…

Enfin, après quelques heures (ou quelques minutes pour les plus doués…) de moite angoisse devant votre terminal, vous avez l’idée -géniale- de regarder l’espace disque disponible : 0 octets ! Vous n’en croyez pas vos yeux… Alors vous cherchez, et soudain la lumière se fait enfin : les logs !!! Bon sang mais c’est bien sûr : les fameux log perso que vous avez fouré dans un coin, tout content d’avoir trouvé (il y a 4 ans) la commande pour faire des logs personnalisés !

Seul problème : si vous ne configurez pas une rotation de log, un jour (lointain certes, mais quand même) la bombe à retardement explose !

Bref, si toi aussi, tu as eu ces malheurs, tu sais quel est ton ami : « logrotate » : une config de 5 minutes chrono, et plus d’ennuis !

Pour rappel (et de ce que j’en ai compris) :  logrotate est installé sur la plupart des distrib linux et est exécuté par le crontab tout les jours par défaut. Un certain nombre de commandes permettent de le personnaliser. En gros et pour faire vite, en admettant que vous ayez un log apache perso (testé sur debian squeeze):

  1. Copier le fichier /etc/logrotate.d/apache2
  2. Changer la première ligne par votre chemin préféré de log, et éventuellement les droits et utilisateur sur les nouveaux fichiers créés (par défaut root:adm, 640)
  3. vérifier avec la commande logrotate -fv /etc/logrotate.conf que vos fichiers de log sont bien créés.

Et hop ! Tous vos log perso apache sont bien proprement compressés une fois par semaine, et votre serveur redémarrera à cette occasion. Franchement ça valait le coup quand même, non ?

Je vous invite à lire les commandes de logrotate : http://www.delafond.org/traducmanfr/man/man8/logrotate.8.html

bonne config 🙂

 

EDIT : pour ceux qui sont sous symfony, vous avez aussi une commande spécifique :

 php symfony log:rotate frontend prod --period=7 --history=10

A vous de voir 🙂
 

Ajouter un commentaire

Votre email n'est jamais partagé. Les champs obligatoires sont notés : *

*
*