Post bonus venant compléter l’article sur la centralisation des journaux d’événements dans une base de données sous Linux avec le logiciel Rsyslog.

L’accumulation des logs peut rapidement provoquer une saturation des bases de données, il est donc important de régulièrement purger ses tables.

Le script décrit dans ce post va archiver les logs et purger la table de données concernée.


Purger la table SystemEvents de sa base de données Syslog avec un script Bash

Utiliser un serveur dédié pour centraliser les logs de son infrastructure est une très bonne pratique puisque la centralisation permet la gestion de tous les événements en un point unique.

Info + : pour voir le tuto sur la centralisation des logs sous Linux, c’est par ici : Centraliser ses logs Linux avec Rsyslog et LogAnalyzer

Le souci étant que les fichiers de journaux d’événements peuvent rapidement devenir très lourds.

Dans le cas où l’on choisit de stocker ses logs en base de données avec le logiciel Rsyslog, le problème est le même.

En effet, en fonction du nombre de données à traiter, la table “SystemEvents de la base de données “Syslog” deviendra plus ou moins rapidement très volumineuse. Il est important de purger régulièrement cette table afin de libérer de l’espace. Vous trouverez ci-dessous une adaptation d’un script trouvé sur wiki.debian que vous pouvez appliquer automatiquement grâce à une tâche Cron.

Le script a été très largement commenté (#) afin d’être plus explicite.

Le script (par défaut) va archiver les enregistrements vieux de plus de 7 jours et les placer dans le dossier /var/backups/syslog du serveur de logs. Puis il va supprimer ces mêmes enregistrements directement de la base de données.

Le script est disponible au lien suivant : purge-logs.sh

Pour l’utiliser depuis son serveur Linux en ligne de commandes, voici les étapes à suivre :

Télécharger le script :

wget https://raw.githubusercontent.com/NeptunetFR/rsyslog-purge/master/purge-logs.sh

Le modifier pour remplir les parties “déclarations” selon son infrastructure :

nano purge-logs.sh

Le rendre exécutable :

chmod a+x purge-logs.sh

Exécuter le script :

./purge-logs.sh

 

Vous voilà maintenant parez ! A bientôt hi

Purger sa base de données Syslog en bash

Articles pouvant vous intéresser