Rsyslog
Rsyslog est une implémentation libre du protocole Syslog. Il permet une centralisation des journaux systèmes, qu'ils soient locaux ou en provenances d'une machine distante.
Installation
Rsyslog est présent par défaut dans de nombreuses distributions Linux et est, à défaut, présent dans les dépôts.
apt install rsyslog
Serveur de journaux
Nous allons voir comment configurer Rsyslog pour accepter les journaux en provenance des machines de notre réseau et automatiquement les ranger séparément dans des dossiers.
Configuration de l'écoute
Éditer le fichier de configuration
vim /etc/rsyslog.conf
Dé-commenter les lignes suivantes
module(load="imudp")
input(type="imudp" port="514")
pour écouter en TCP et
module(load="imtcp")
input(type="imtcp" port="514")
pour écouter en UDP.
Configuration du rangement
Dans /etc/rsyslog.conf
, et avant la ligne $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
, mettre ceci:
$template syslog,"/var/log/clients/%fromhost%/syslog.log" *.* ?syslog
Redémarrer le service
systemctl restart rsyslog.service
Partie cliente
Le serveur peut être utilisé par tout client communiquant via le protocole syslog tel que les équipements actifs Cisco ou les clients Linux avec la configuration Rsyslog suivante :
# Règle 1
$ActionQueueType LinkedList # Exécuter le traitement de façon asynchrone.
$ActionQueueFileName srvrfwd1 # Préfixe de nom unique pour les fichiers spool. Active également le mode disque.
$ActionQueueMaxDiskSpace 1g # Limite d'espace de 1 Go.
$ActionQueueSaveOnShutdown on # Enregistrer les données sur le disque si Rsyslog est arrêté.
$ActionResumeRetryCount -1 # Tentatives infinies en cas d'échec de connexion avec l'hôte.
# jouter les lignes suivantes dans la section RULES :
# Envoyer tous les messages sur le serveur de journalisation distant avec la commande suivante :
*.* @@Cible_IP_serveur_1_LogAnalayzer:514 # Où 514 est le port d'écoute qui a été défini dans la configuration. Il faut coller l'adresse IP du serveur aux "@@".
# Règle 2
# Reprendre les éléments de la première règle.
Un redémarrage du service doit être entrepris pour charger la configuration
systemctl restart rsyslog.service
Enfin, il est possible d'écrire dans le journal (depuis le client) en guise de test de bon fonctionnement
logger -s "--- Ceci est un client Rsyslog ---"
Le message doit-être visible sur le serveur dans le fichier /var/log/clients/IP.DU.CLIENT.SYSLOG/syslog.log
.