Rsyslog

De Wiki doc

Révision datée du 12 avril 2022 à 10:10 par Ycharbi (discussion | contributions) (Ajout d'une configuration Rsyslog client + mise à jour de la syntaxe de la section "Configuration de l'écoute" + changement des balises sources en syntaxhighlight)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)


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.