Les fichiers journaux sont les plus importants pour la sécurité du système Linux. L'outil logrotate est spécialement conçu pour simplifier l'administration des fichiers journaux sur un système Linux qui permet la rotation, la compression, la suppression et l'envoi automatiques des fichiers journaux. Vous pouvez facilement configurer logrotate pour gérer un fichier journal quotidiennement, hebdomadairement, mensuellement. Le programme logrotate utilisé pour faire tourner les fichiers journaux en supprimant les plus anciens de votre système et en créant de nouveaux fichiers journaux.
Dans ce tutoriel, j'expliquerai comment utiliser logrotate pour gérer les journaux sur le serveur Ubuntu 18.04.
Exigences
- Un serveur exécutant le serveur Ubuntu 18.04.
- Un utilisateur non root avec des privilèges sudo.
Installer Logrotate
Par défaut, logrotate est disponible sur le serveur Ubuntu 18.04 LTS. Sinon, vous pouvez l'installer en exécutant la commande suivante :
sudo apt-get install logrotate -y
Une fois le logrotate installé, vous pouvez vérifier la version de logrotate en utilisant la commande suivante :
sudo logrotate
Sortie :
logrotate 3.11.0 - Copyright (C) 1995-2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command] [-s|--state=statefile] [-v|--verbose] [-l|--log=STRING] [--version] [-?|--help] [--usage] [OPTION...]
Configurer Logrotate
Par défaut, le fichier de configuration principal de logrotate, logrotate.conf, se trouve dans /etc/logrotate.conf. D'autres fichiers de configuration sont disponibles sur /etc/logrotate.d. Vous pouvez les lister avec la commande suivante :
ls /etc/logrotate.d
Sortie :
alternatives apport dpkg mysql-server rsyslog unattended-upgrades apache2 apt lxd openproject ufw
Les principales options de logrotate sont répertoriées ci-dessous :
manquantok :Ne génère pas d'erreur si le journal est manquant
hebdomadaire :fait tourner les fichiers journaux une fois par semaine
créer :L'ancien fichier est enregistré sous un nouveau nom et un nouveau fichier est créé
compresser :logrotate compresse les fichiers journaux en utilisant gzip pour économiser de l'espace
tourner 4 :logrotate fait pivoter un journal donné quatre fois avant de le supprimer, ce qui permet de conserver quatre semaines de journaux en ligne
notifiervide :Ne pas faire pivoter le fichier journal lorsqu'il est vide
Par défaut, logrotate s'exécute quotidiennement en exécutant le script shell /etc/cron.daily/logrotate. Testons la rotation de log apache en exécutant la commande suivante :
sudo logrotate -d /etc/logrotate.d/apache2
Sortie :
reading config file /etc/logrotate.d/apache2 Reading state from file: /var/lib/logrotate/status Allocating hash table for state file, size 64 entries Handling 1 logs rotating pattern: /var/log/apache2/*.log after 1 days (14 rotations) empty log files are not rotated, old logs are removed considering log /var/log/apache2/access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/error.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/other_vhosts_access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) not running prerotate script, since no logs will be rotated not running postrotate script, since no logs were rotated
Par défaut, logrotate est exécuté comme une tâche cron quotidienne. Vous pouvez consulter /etc/cron.daily/logrotate pour plus d'informations sur la tâche cron. Vous pouvez également configurer la tâche cron pour que logrotate s'exécute toutes les heures, toutes les semaines et tous les ans.