Comment gérer les journaux de fichiers Linux avec Achieve

Les distributions Linux sont idéales pour tout type d'environnement d'entreprise grâce à leur capacité d'adaptation à de nouvelles fonctions et de nouveaux rôles et, surtout, gratuitement grâce au code ouvert.

Nous avons des milliers d'applications ou d'utilitaires conçus pour un contrôle centralisé de tous les aspects du système et de cette manière, en tant qu'administrateurs ou personnel informatique, sachez avec certitude quand une panne se produit et sachez comment la résoudre.

Dans ce large éventail de possibilités, nous trouvons Logrotate, qui est un utilitaire de la distribution et sa fonction est la rotation et la compression des fichiers journaux.

Cette tâche est importante car, en ne prenant aucune mesure sur ces fichiers, l'espace sur le disque dur peut être affecté, entraînant d'autres types d'erreurs générales.

Dans ce cas, nous utiliserons Ubuntu 17.10 et Logrotate est installé par défaut et est déjà configuré pour gérer les tâches de rotation des journaux de tous les packages installés, y compris rsyslog, le processeur de journal système par défaut.

Ensuite, nous verrons comment installer et utiliser ce précieux utilitaire.

1. Identifier la version de Logrotate installée Linux


La première étape à franchir est de savoir en détail quelle version de Logrotate nous avons, dans ce cas, Ubuntu 17.10. Pour ce faire, nous exécutons la commande suivante :
 logrotate -version
Le résultat sera le suivant :

AGRANDIR

Si Logrotate n'est pas installé, nous obtiendrons une erreur. Nous pouvons installer l'outil en utilisant le gestionnaire de paquets de la distribution Linux utilisée.

Si Logrotate est installé mais que le numéro de version est très différent, nous pouvons avoir des problèmes avec certains des paramètres de l'utilitaire. On peut consulter la documentation de la version spécifique de Logrotate directement dans sa page de manuel :

 homme logrotate
Nous pouvons voir la structure de configuration par défaut de Logrotate dans la distribution Linux :

AGRANDIR

2. Logroter la configuration Linux


Les informations de configuration de Logrotate peuvent généralement être trouvées à deux endroits dans le cas d'Ubuntu :

etc / logrotate.confCe fichier contient certains paramètres par défaut et définit la rotation de certains journaux qui n'appartiennent à aucun package système. Il utilise également une instruction include pour obtenir les paramètres de n'importe quel fichier du répertoire /etc/logrotate.d.

/etc/logrotate.d/Ce répertoire est l'endroit où tout package que nous installons et qui a besoin d'aide pour la rotation des journaux placera sa configuration Logrotate. Dans une installation standard, les fichiers doivent déjà exister ici pour les outils système de base, tels que apt, dpkg, rsyslog, etc.

Par défaut, logrotate.conf configurera des rotations hebdomadaires des journaux (hebdomadairement), avec des fichiers journaux appartenant à l'utilisateur root et au groupe syslog (su root syslog), avec quatre fichiers journaux qui sont conservés (rotation 4) et de nouveaux fichiers sont créés vides enregistrements. créé après la rotation du courant (créer).

Nous pouvons accéder au fichier de configuration Logrotate d'un paquet dans /etc/logrotate.d en utilisant l'utilitaire cat :

 cat /etc/logrotate.d/apt

AGRANDIR

Ce fichier contient des blocs de configuration pour deux fichiers journaux différents dans le répertoire /var/log/apt/ : term.log et history.log. Ils ont tous les deux les mêmes options.

Toute option non définie dans ces blocs de configuration héritera des valeurs par défaut ou de celles définies dans /etc/logrotate.conf. Les options configurées pour les journaux apt sont :

tourner 12Conserve douze anciens fichiers journaux.

MensuelRotation une fois par mois.

CompresseIl se charge de compresser les fichiers pivotés. Cela utilise gzip par défaut et génère des fichiers se terminant par l'extension .gz. La commande de compression peut être modifiée à l'aide de l'option compresscmd.

manque d'accordIl n'écrit pas de message d'erreur si le fichier journal est manquant.

notifierIl ne fait pas pivoter le fichier journal s'il est vide.

De nombreuses autres options de configuration sont disponibles.

3. Configurez un service Linux Logrotate et ajoutez la configuration à /etc/logrotate.d/


Ensuite, nous allons configurer un fichier de configuration pour gérer les journaux d'un service que nous allons créer.

Pour gérer les fichiers journaux des applications en dehors des services système préemballés et préconfigurés, nous avons deux options :

  • Créez un nouveau fichier de configuration Logrotate et placez-le dans le chemin /etc/logrotate.d/. Cela s'exécutera quotidiennement en tant qu'utilisateur root avec toutes les autres tâches Logrotate standard.
  • Créez un nouveau fichier de configuration et exécutez-le en dehors de la configuration Logrotate par défaut d'Ubuntu. Ceci n'est nécessaire que si nous devons exécuter Logrotate en tant qu'utilisateur non root, ou si vous souhaitez effectuer une rotation des journaux plus fréquemment que quotidiennement (un paramètre horaire dans /etc/logrotate.d/ ne serait pas efficace, car le paramètre Logrotate du système ne fonctionne qu'une fois par jour).

Dans ce cas, nous souhaitons configurer la rotation des journaux pour un serveur Web qui place un access.log et un error.log dans le chemin / var / log / solvetic-app /. Il s'exécutera en tant qu'utilisateur et groupe www-data.

Pour ajouter une configuration à /etc/logrotate.d/, nous devons d'abord ouvrir un nouveau fichier comme suit :

 sudo nano /etc/logrotate.d/solvetic-app
là, nous allons ajouter les lignes suivantes:
 /var/log/solvetic-app/*.log {daily missingok rotation 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate systemctl recharger solvetic-app endscript}

AGRANDIR

Nous pouvons enregistrer les modifications en utilisant la combinaison de touches Ctrl + O et nous sortons de l'éditeur en utilisant Ctrl + X.

Certaines des nouvelles directives de configuration dans ce fichier sont :

créer 0640 www-données www-donnéesCe paramètre crée un nouveau fichier journal vide après la rotation, avec les autorisations spécifiées (0640), le propriétaire (www-data) et le groupe (également www-data).

scripts partagésCet indicateur indique que les scripts ajoutés à la configuration ne s'exécutent qu'une seule fois par exécution, plutôt que pour chaque fichier pivoté.

postrotation en endscriptCe bloc contient un script à exécuter après la rotation du fichier journal. Dans ce cas, nous pouvons recharger notre application solvetic. Cela est parfois nécessaire pour que l'application bascule vers le fichier journal nouvellement créé.

Nous devons tenir compte des exécutions de postrotation avant que les journaux ne soient vérifiés. La compression peut prendre beaucoup de temps et le logiciel doit basculer immédiatement vers le nouveau fichier journal. Pour les tâches qui doivent s'exécuter après la compression des enregistrements, utilisez plutôt le bloc lastaction.

Après avoir personnalisé la configuration qui correspond le mieux à nos besoins et qu'ils ont été enregistrés dans /etc/logrotate.d, nous pouvons le vérifier en exécutant la ligne suivante.

 sudo logrotate /etc/logrotate.conf -debug
Cela appelle logrotate, pointe vers le fichier de configuration standard et active le mode de débogage :

AGRANDIR

Les informations sur les fichiers journaux que Logrotate gère et ce qui s'exécute sur eux seront imprimées. Si tout semble bon, nous avons terminé. La tâche Logrotate standard s'exécutera une fois par jour et inclura vos nouveaux paramètres.

4. Comment créer une configuration de journalisation autonome Lograte Linux


Tout d'abord, nous allons créer un fichier de configuration dans notre répertoire personnel. Nous pouvons l'ouvrir avec un éditeur de texte :
 sudo nano /home/solvetic/logrotate.conf
Dans le nouveau fichier, nous collerons les éléments suivants :
 /home/solvetic/logs/*.log {hourly missingok rotation 24 compress create}

AGRANDIR

Nous pouvons enregistrer les modifications et quitter le fichier.

Ce paramètre fera pivoter les fichiers toutes les heures, compressant et préservant vingt-quatre anciens enregistrements et créant un nouveau fichier journal pour remplacer le fichier pivoté. Pour tester son bon fonctionnement, nous pouvons créer un fichier journal en exécutant les lignes suivantes :

 cd ~ sudo mkdir journaux sudo touch journaux / access.log

AGRANDIR

Maintenant que nous avons un fichier journal vierge au bon endroit, nous allons exécuter la commande logrotate.
Nous exécuterons ce qui suit :

 logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state -verbose

AGRANDIR

Le paramètre --verbose imprimera des informations détaillées sur ce que nous exécutons avec Logrotate. Dans ce cas, nous verrons que rien n'a tourné. C'est la première fois que Logrotate voit ce fichier journal, et comme nous le savons, le fichier date de zéro heure et ne doit pas être tourné.

Si nous regardons le fichier d'état, nous verrons que Logrotate a enregistré certaines informations sur l'exécution que nous avons effectuée :

 cat / home / solvetic / logrotate-state
Nous verrons ce qui suit :

AGRANDIR

Logrotate a noté les enregistrements qu'il a analysés et la dernière fois qu'il les a examinés pour la rotation. Si nous exécutons cette même commande une heure plus tard, l'enregistrement sera tourné comme prévu. Si vous souhaitez forcer Logrotate à faire pivoter le fichier journal alors qu'il ne le devrait pas autrement, nous pouvons utiliser l'indicateur --force :

 sudo logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state --verbose -force

5. Création d'une tâche planifiée sur Achieve Linux


Enfin, nous devons configurer une tâche cron pour exécuter Logrotate toutes les heures. Pour ce faire, nous ouvrons la crontab de notre utilisateur en exécutant ce qui suit :
 crontab -e
Dans le fichier ouvert, nous ajouterons la ligne suivante :
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state

AGRANDIR

Cette tâche s'exécutera à la 14e minute de chaque heure, chaque jour. Cela fonctionne essentiellement avec la même commande logrotate que nous avons exécutée précédemment, bien que nous ayons étendu logrotate au chemin complet de / usr / sbin / logrotate. Nous pouvons enregistrer le fichier en utilisant la combinaison de touches Ctrl + O et le quitter en utilisant Ctrl + X.

Ainsi, nous avons vu comment Logrotate est un utilitaire simple mais efficace lorsqu'il s'agit de gérer et de contrôler les enregistrements dans n'importe quelle distribution Linux.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave