Gérer ses logs avec rsyslog sous Linux
Paramétrer différents fichiers de logs avec rsyslog
De base, si rsyslog est installé, vous devriez pouvoir voir son fichier de configuration avec la commande ci-dessous :
cat /etc/rsyslog.conf
Lien vers le fichier : cliquez ici
On y voit comment les messages sont dispatchés dans différents fichiers. Exemple :
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
Lien vers le fichier : cliquez ici
Typiquement on peut en déduire que les logs courants peuvent se voir en temps réel avec
tail -f /var/log/messages
Lien vers le fichier : cliquez ici
On y voit que le service prend en compte tous les fichiers .conf qui sont dans /etc/rsyslog.d/
via cette commande
$IncludeConfig /etc/rsyslog.d/*.conf
Lien vers le fichier : cliquez ici
De même le service de syslog devrait répondre à cette commande :
systemctl status rsyslog.service
Lien vers le fichier : cliquez ici
Exemple de retour positif :
On a vu plus haut que de base les logs courants sont dans /var/log/messages ou /var/log/syslog suivant les distribution.
Pour l'exemple on va prendre le cas un peu complexe d'iptables qui déverse de base ses logs dans /var/log/messages ou /var/log/syslog.
Le but ici est de les mettre dans un fichier à part. Pour cela il faut pouvoir les isoler facilement, aussi dans les règles FW que vous allez créer pour iptables on va expressément demander à ajouter le préfix 'iptables:'
Cela se fait en créant une 'chain' nommée ici 'LOGACCEPT'
Exemple de création
#Création d'une new user-defined chain pour pouvoir autoriser ET logger un flux avec le préfixe IPTABLES
iptables -N LOGACCEPT
iptables -A LOGACCEPT -j LOG --log-prefix 'iptables:' -m limit --limit 2/min
iptables -A LOGACCEPT -j ACCEPT
Lien vers le fichier : cliquez ici
Ensuite, vous aller utiliser cette chain dans vos règles.
Exemple :
iptables -t filter -A INPUT -p tcp --dport 22 -j LOGACCEPT
Lien vers le fichier : cliquez ici
Au niveau de rsyslog, on va maintenant créer un fichier de configuration pour iptables avec la commande
sudo nano /etc/rsyslog.d/iptables.conf
Lien vers le fichier : cliquez ici
Placez y ces instructions et enregistrez le fichier
:msg, contains, "iptables:" -/var/log/iptables.log
& ~
Lien vers le fichier : cliquez ici
La commande précédente demande à enregistrer tous les messages qui contiennent "iptables:" dans un fichier /var/log/iptables.log
La seconde ligne signifie qu'on arrête le traitement pour ce message, cad qu'il ne sera pas écrit dans un autre fichier de log.
A la place de & ~ on aurait aussi pu avoir l'instruction & stop
Rechargez la configuration de rsyslog en redémarrant le service avec
systemctl restart rsyslog.service
Lien vers le fichier : cliquez ici
Je n'ai pas vérifié la commande ci-dessous mais elle pourrait permettre d'éviter de relancer le service rsyslog :
/etc/init.d/rsyslog force-reload
Lien vers le fichier : cliquez ici
Maintenant consultez iptables.log avec la commande
tail -f /var/log/iptables.log
Lien vers le fichier : cliquez ici
En note je me suis mis de côté le contenu ci-dessous trouvé sur https://blog.stalkr.net/2009/10/logging-iptables-messages-with-rsyslog.html
Il pourrait permettre d'être plus précis pour ne prendre en compte que les lignes de log du type "xxx.xxx.xxx.xxx iptables:" où xxx.xxx.xxx.xxx, vous l'aurez compris, est une adresse ip
:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log
& ~
Lien vers le fichier : cliquez ici
Sachant que par défaut les logs se regardent avec :
tail -f /var/log/syslog
#ou
tail -f /var/log/messages
Lien vers le fichier : cliquez ici
Pour archiver régulièrement le contenu de /var/log/iptables.log je vous invite à regarder l'article sur logrotate indiqué plus bas.
De même vous verrez aussi des exemples concernant haproxy pour isoler ses logs comme avec iptables.
Pages Web
| Site Web | Description |
|---|---|
| Rsyslog.com | Site de rsyslog |
| Kb.monitorware.com | Forum officiel pour le support de rsyslog |
| Blog.shadypixel.com | Log iptables Messages to a Separate File with rsyslog |
Article(s) suivant(s)