« Rsyslog » : différence entre les versions

De Wiki doc

(Ajout de la section "Partie cliente".)
(Ajout d'une configuration Rsyslog client + mise à jour de la syntaxe de la section "Configuration de l'écoute" + changement des balises sources en syntaxhighlight)
 
Ligne 15 : Ligne 15 :


'''Dé-commenter les lignes suivantes'''
'''Dé-commenter les lignes suivantes'''
<source lang="bash">
<syntaxhighlight lang="bash">
$ModLoad imudp
module(load="imudp")
$UDPServerRun 514
input(type="imudp" port="514")
</source>
</syntaxhighlight>


pour écouter en UDP et
pour écouter en ''TCP'' et


<source lang="bash">
<syntaxhighlight lang="bash">
$ModLoad imtcp
module(load="imtcp")
$InputTCPServerRun 514
input(type="imtcp" port="514")
</source>
</syntaxhighlight>


pour écouter en TCP.
pour écouter en ''UDP''.


==Configuration du rangement==
==Configuration du rangement==
Dans <source lang="bash" inline>/etc/rsyslog.conf</source>, et avant la ligne <source lang="bash" inline>$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat</source>, mettre ceci:
Dans <syntaxhighlight lang="bash" inline>/etc/rsyslog.conf</syntaxhighlight>, et avant la ligne <syntaxhighlight lang="bash" inline>$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat</syntaxhighlight>, mettre ceci:
  $template syslog,"/var/log/clients/%fromhost%/syslog.log"
  $template syslog,"/var/log/clients/%fromhost%/syslog.log"
  *.* ?syslog
  *.* ?syslog
Ligne 38 : Ligne 38 :


=Partie cliente=
=Partie cliente=
Le serveur peut être utilisé par tout client communiquant via le protocole ''syslog'' tel que:
Le serveur peut être utilisé par tout client communiquant via le protocole ''syslog'' tel que les [[Syslog - cisco|équipements actifs Cisco]] ou les clients Linux avec la [https://wiki.debian.org/Rsyslog configuration Rsyslog] suivante :
* les [[Syslog - cisco|équipements actifs Cisco]]
 
<syntaxhighlight lang="bash">
# 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.
</syntaxhighlight>
 
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 <syntaxhighlight inline lang="bash">/var/log/clients/IP.DU.CLIENT.SYSLOG/syslog.log</syntaxhighlight>.

Dernière version du 12 avril 2022 à 11:10


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.