Gestion des journaux · 12 min read · Dec 12, 2025

Comment configurer rsyslog pour la gestion centralisée des journaux

Ce tutoriel expliquera comment configurer rsyslog en tant que serveur de gestion centralisée des journaux. La gestion centralisée des journaux signifie collecter toutes sortes de journaux provenant de plusieurs serveurs physiques ou virtualisés sur un serveur de journaux pour surveiller la santé et la sécurité des services serveur. Nous utilisons rsyslog dans ce tutoriel car il offre des performances élevées, une grande sécurité et un design modulaire. Il est également capable de stocker des journaux dans de nombreuses solutions de base de données comme MySQL, Oracle, Hadoop et d’autres pour une meilleure consolidation.

1. Remarque préliminaire

Pour ce tutoriel, j’utilise Oracle Linux 6.4 dans la version 32 bits. Veuillez noter que même si la configuration est faite sous Oracle Linux, les mêmes étapes fonctionneront sur CentOS et Red Hat OS Linux. Dans ce tutoriel, nous utiliserons 2 serveurs. Le premier agira en tant que serveur rsyslog et l’autre agira en tant que station de travail / serveur client pour le client rsyslog. À la fin de ce tutoriel, nous verrons qu’une fois qu’un utilisateur se connecte au serveur client, le serveur rsyslog enregistrera automatiquement l’activité effectuée par lui.

2. Installation de Rsyslog

Pour la phase d’installation, nous devons simplement avoir les paquets rsyslog et ses dépendances installés. Tout d’abord, confirmons notre version du système d’exploitation.

[root@RSYS01 ~]# cat /etc/issue  
Oracle Linux Server release 6.4  
Kernel \r on an \m
[root@RSYS01 ~]# arch  
i686
[root@RSYS01 ~]# uname -a  
Linux RSYS01 2.6.32-358.el6.i686 #1 SMP Fri Feb 22 13:37:29 PST 2013 i686 i686 i386 GNU/Linux

Ensuite, je vais configurer un nouveau dépôt pour installer les paquets rsyslog via l’utilitaire yum.


[root@RSYS01 ~]# cd /etc/yum.repos.d/  
[root@RSYS01 yum.repos.d]# vi rsyslog.repo  
[rsyslog-v7-devel]  
name=Adiscon Rsyslog v7-devel pour CentOS-$releasever-$basearch  
baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch  
enabled=0  
gpgcheck=0  
protect=1
[rsyslog-v7-stable]  
name=Adiscon Rsyslog v7-stable pour CentOS-$releasever-$basearch  
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch  
enabled=1  
gpgcheck=0  
protect=1

[root@RSYS01 yum.repos.d]# yum list rsyslog  
Loaded plugins: refresh-packagekit, security  
rsyslog-v7-stable | 2.5 kB 00:00  
rsyslog-v7-stable/primary_db | 188 kB 00:01  
Paquets disponibles  
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

Fait, maintenant commençons à installer la nouvelle version de rsyslog. Les étapes sont montrées ci-dessous :


[root@RSYS01 yum.repos.d]# yum install rsyslog -y  
Loaded plugins: refresh-packagekit, security  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed  
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Running transaction check  
---> Package json-c.i686 0:0.11-3.el6 will be installed  
---> Package libestr.i686 0:0.1.9-1.el6 will be installed  
---> Package libgt.i686 0:0.3.11-1.el6 will be installed  
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed  
--> Finished Dependency Resolution   
Dépendances résolues   
===============================================================================================================  
Paquet Arch Version Dépôt Taille  
===============================================================================================================  
Installation :  
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k  
Installation pour dépendances :  
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k  
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k  
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k  
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k   
Résumé de la transaction   
===============================================================================================================  
Installer 5 Paquet(s)   
Taille totale du téléchargement : 1.0 M  
Taille installée : 3.2 M  
Téléchargement des paquets :  
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00  
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00  
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00  
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00  
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03  
---------------------------------------------------------------------------------------------------------------  
Total 114 kB/s | 1.0 MB 00:09  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : libgt-0.3.11-1.el6.i686 1/5  
Installing : liblogging-1.0.4-1.el6.i686 2/5  
Installing : libestr-0.1.9-1.el6.i686 3/5  
Installing : json-c-0.11-3.el6.i686 4/5  
Installing : rsyslog-7.6.7-1.el6.i686 5/5  
Verifying : json-c-0.11-3.el6.i686 1/5  
Verifying : libestr-0.1.9-1.el6.i686 2/5  
Verifying : liblogging-1.0.4-1.el6.i686 3/5  
Verifying : libgt-0.3.11-1.el6.i686 4/5  
Verifying : rsyslog-7.6.7-1.el6.i686 5/5   
   
Installé :  
rsyslog.i686 0:7.6.7-1.el6   
   
Dépendance installée :  
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6   
   
Terminé !
[root@RSYS01 yum.repos.d]# rsyslogd -v  
rsyslogd 7.6.7, compilé avec :  
FEATURE_REGEXP: Oui  
GSSAPI Kerberos 5 support: Oui  
FEATURE_DEBUG (debug build, slow code): Non  
32bit Atomic operations supported: Oui  
64bit Atomic operations supported: Oui  
Runtime Instrumentation (slow code): Non  
uuid support: Oui  
Number of Bits in RainerScript integers: 64   
   
Voir http://www.rsyslog.com pour plus d'informations.
[root@RSYS01 ~]# rpm -qa|grep rsyslog  
rsyslog-7.6.7-1.el6.i686

Ensuite, procédons à la phase d’installation. Pour ce tutoriel, nous allons ignorer la couche de sécurité pour simplifier les choses. Nous allons désactiver SELINUX pour nous assurer qu’il n’y a pas de problème lié à la sécurité pendant le processus. Soyez conscient que vous ne devez pas désactiver SELinux et le pare-feu sur une configuration en direct. Voici les étapes :

Tout d’abord, vérifiez quel est l’état actuel de notre politique SELINUX.

[root@RSYS01 ~]# getenforce  
Enforcing

Pour le désactiver de manière permanente, suivez l’étape ci-dessous :

[root@RSYS01 ~]# cd /etc/sysconfig/  
[root@RSYS01 ~]# vi selinux   
   
# Ce fichier contrôle l'état de SELinux sur le système.  
# SELINUX= peut prendre l'une de ces trois valeurs :  
# enforcing - La politique de sécurité SELinux est appliquée.  
# permissive - SELinux imprime des avertissements au lieu d'appliquer.  
# disabled - Aucune politique SELinux n'est chargée.  
SELINUX=disabled  
# SELINUXTYPE= peut prendre l'une de ces deux valeurs :  
# targeted - Les processus ciblés sont protégés,  
# mls - Protection multi-niveaux de sécurité.  
SELINUXTYPE=targeted

Après cela, assurons-nous d’avoir désactivé le pare-feu pour éviter tout blocage entre la connexion serveur et client.

[root@RSYS01 ~]# iptables -nL  
Chain INPUT (policy ACCEPT)  
target prot opt source destination   
   
Chain FORWARD (policy ACCEPT)  
target prot opt source destination   
   
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination
[root@RSYS01 ~]# /etc/init.d/iptables stop  
iptables: Flushing firewall rules: [ OK ]  
iptables: Setting chains to policy ACCEPT: filter [ OK ]  
iptables: Unloading modules: [ OK ]
[root@RSYS01 ~]# /etc/init.d/iptables status  
Table: filter  
Chain INPUT (policy ACCEPT)  
num target prot opt source destination   
   
Chain FORWARD (policy ACCEPT)  
num target prot opt source destination   
   
Chain OUTPUT (policy ACCEPT)  
num target prot opt source destination

Fait, maintenant que la phase d’installation a réussi. Passons à la phase de configuration.

3. Configuration de Rsyslog

Toutes les dépendances des paquets ont déjà été installées, concentrons-nous sur la configuration de rsyslog. Entrons dans le fichier de configuration et apportons les modifications comme ci-dessous :

[root@RSYS01 ~]# vi /etc/rsyslog.conf   
   
module(load="imudp") # doit être fait une seule fois  
input(type="imudp" port="514")   
   
$template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"  
$template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"  
authpriv.* ?Auditlog

Voici l’explication des modifications de configuration que nous avons apportées :

  • module(load=”imudp”) # doit être fait une seule fois ==> Nous allons fournir la capacité de recevoir des messages rsyslog entre le serveur et le client via le protocole UDP
  • input(type=”imudp” port=”514”) ==> Nous utiliserons le port 514 pour les services rsyslog
  • $template Auditlog, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> Pour chaque client connecté au serveur rsyslog, le système créera automatiquement le dossier du nom d’hôte du client et le nom de fichier des services associés
  • $template TmplMsg, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> Pour chaque client connecté au serveur rsyslog, le système créera automatiquement le dossier du nom d’hôte du client et le nom de fichier des services associés

Une fois la configuration terminée, démarrons le service rsyslog.

[root@RSYS01 yum.repos.d]# /etc/init.d/rsyslog restart  
Shutting down system logger: [FAILED]  
Starting system logger: [ OK ]

Utilisez netstat pour vous assurer que les services rsyslog sont en cours d’exécution :

[root@RSYS01 yum.repos.d]# netstat -uanp|grep rsyslog  
udp 0 0 0.0.0.0:514 0.0.0.0:* 2430/rsyslogd  
udp 0 0 :::514 :::* 2430/rsyslogd

Vous pouvez voir que notre service rsyslog fonctionne avec les affectations de port que nous avons faites. Par défaut, rsyslog audite également son propre accès serveur car il considère le serveur rsyslog comme un client. Pour s’assurer que cela fonctionne, nous pouvons jeter un œil dans le dossier /var/log. Vérifions si un dossier avec le nom RSYS01 (c’est le nom d’hôte du serveur) existe ou non.

[root@RSYS01 log]# cd /var/log/  
[root@RSYS01 log]# ls -l|grep rsyslog  
drwx------ 3 root root 4096 Oct 24 18:21 rsyslog_client
[root@RSYS01 log]# cd rsyslog_client  
[root@RSYS01 rsyslog_client]# ls  
RSYS01  
[root@RSYS01 rsyslog_client]# cd RSYS01/  
[root@RSYS01 RSYS01]# ls  
rsyslogd.log

Bien, tout semble fonctionner à merveille ! Passons maintenant à la phase de test pour conclure que toutes les configurations ont été effectuées comme prévu.

4. Phase de test

Comme le serveur qui exécute le service rsyslog fonctionne également comme un client, nous pouvons voir sur le serveur lui-même si la surveillance des connexions locales est surveillée. Pour s’assurer que c’est vrai, connectons-nous au serveur rsyslog avec une autre session en utilisant le service SSH. Pour cette étape, nous supposerons que le serveur lui-même est déjà configuré sans mot de passe. Voici les étapes :

[root@RSYS01 RSYS01]# ssh root@RSYS01  
Last login: Sat Oct 22 15:45:48 2016 from 172.20.181.70
[root@RSYS01 ~]# who  
root pts/0 2016-10-22 00:21 (172.20.181.11)  
root pts/1 2016-10-24 18:22 (127.0.0.1)
[root@RSYS01 ~]# exit  
logout  
Connection to RSYS01 closed.

Fait, aussi simple que cela. Nous venons de nous connecter au serveur rsyslog lui-même, puis une fois la nouvelle session créée, nous nous déconnectons simplement pour nous assurer que le service rsyslog a bien audité la session. Maintenant, vérifions si la session a été audité ou non. Voici les étapes :

[root@RSYS01 ~]# cd var/log/rsyslog_client/RSYS01  
[root@RSYS01 RSYS01]# ls  
rsyslogd.log sshd.log  
[root@RSYS01 RSYS01]# tail -f sshd.log  
Oct 24 18:22:46 RSYS01 sshd[2536]: Accepted password for root from 192.168.43.101 port 52862 ssh2  
Oct 24 18:22:46 RSYS01 sshd[2536]: pam_unix(sshd:session): session opened for user root by (uid=0)  
Oct 24 18:22:50 RSYS01 sshd[2536]: Received disconnect from 192.168.43.101: 11: disconnected by user  
Oct 24 18:22:50 RSYS01 sshd[2536]: pam_unix(sshd:session): session closed for user root  
^C

Excellent, le service rsyslog a automatiquement créé un fichier sshd.log lorsque la session a commencé sur le serveur. À l’intérieur du fichier journal, nous pouvons voir qu’il y a une liste de détails indiquant l’heure, le port et l’utilisateur créés sous la session.

Maintenant que tout fonctionne comme prévu. Configurons une station de travail pour que le client rsyslog soit audité par notre serveur rsyslog. Pour le client rsyslog, vous devez simplement installer les paquets rsyslog et apporter un simple changement dans le fichier de configuration pour le lier au serveur rsyslog. Voici les étapes :

[root@CLIENT01 ~]# cd /etc/yum.repos.d/  
[root@CLIENT01 yum.repos.d]# yum list rsyslog  
Loaded plugins: refresh-packagekit, security  
rsyslog-v7-stable | 2.5 kB 00:00  
rsyslog-v7-stable/primary_db | 188 kB 00:01  
Paquets disponibles  
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

[root@RSYS01 yum.repos.d]# yum install rsyslog -y  
Loaded plugins: refresh-packagekit, security  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed  
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Running transaction check  
---> Package json-c.i686 0:0.11-3.el6 will be installed  
---> Package libestr.i686 0:0.1.9-1.el6 will be installed  
---> Package libgt.i686 0:0.3.11-1.el6 will be installed  
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed  
--> Finished Dependency Resolution  
   
Dépendances résolues  
   
===============================================================================================================  
Paquet Arch Version Dépôt Taille  
===============================================================================================================  
Installation :  
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k  
Installation pour dépendances :  
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k  
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k  
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k  
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k  
   
Résumé de la transaction  
===============================================================================================================  
Installer 5 Paquet(s)  
   
Taille totale du téléchargement : 1.0 M  
Taille installée : 3.2 M  
Téléchargement des paquets :  
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00  
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00  
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00  
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00  
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03  
---------------------------------------------------------------------------------------------------------------  
Total 114 kB/s | 1.0 MB 00:09  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : libgt-0.3.11-1.el6.i686 1/5  
Installing : liblogging-1.0.4-1.el6.i686 2/5  
Installing : libestr-0.1.9-1.el6.i686 3/5  
Installing : json-c-0.11-3.el6.i686 4/5  
Installing : rsyslog-7.6.7-1.el6.i686 5/5  
Verifying : json-c-0.11-3.el6.i686 1/5  
Verifying : libestr-0.1.9-1.el6.i686 2/5  
Verifying : liblogging-1.0.4-1.el6.i686 3/5  
Verifying : libgt-0.3.11-1.el6.i686 4/5  
Verifying : rsyslog-7.6.7-1.el6.i686 5/5  
   
Installé :  
rsyslog.i686 0:7.6.7-1.el6   
   
Dépendance installée :  
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6   
   
Terminé !

Fait, maintenant nous avons installé le paquet rsyslog sur notre station de travail cliente. Maintenant, apportons une modification dans le fichier de configuration rsyslog. Pour la configuration du client, vous devez simplement modifier la configuration comme ci-dessous :

[root@CLIENT01 ~]# vi /etc/rsyslog.conf  
   
*.* @192.168.43.101:514

C’est tout, notez que nous avons inclus l’IP 192.168.43.101 avec le port 514 dans le fichier de configuration. Cette IP est celle du serveur rsyslog. Maintenant que tout est fait, redémarrons le service rsyslog sur la station de travail cliente pour charger les modifications. Voici les étapes :

[root@CLIENT01 ~]# /etc/init.d/rsyslog restart  
Shutting down system logger: [FAILED]  
Starting system logger: [ OK ]

Maintenant, retournons à notre serveur rsyslog et voyons si un dossier pour le nom d’hôte du client rsyslog a été créé dans le répertoire des journaux rsyslog. Voici les étapes :

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 rsyslog_client]# ls  
RSYS01 CLIENT01

Excellent, notez qu’un dossier avec le nom d’hôte du client rsyslog a été créé automatiquement. Cela confirme que notre configuration est correcte et que le client rsyslog est capable d’établir une connexion UDP au serveur rsyslog.

Pour la prochaine procédure de test, connectons-nous au client rsyslog en tant qu’autre utilisateur et voyons si le serveur rsyslog parvient à capturer l’activité ou non. Voici les étapes :

::CLIENT01::  
login as: shahril  
[email protected]'s password:  
Last login: Sun Oct 23 00:21:40 2016 from 172.20.181.11
[shahril@CLIENT01 ~]$ who  
shahril pts/0 2016-10-24 17:01 (192.168.43.80)
[shahril@CLIENT01 ~]$ exit

Maintenant, vérifions le répertoire des journaux à l’intérieur du serveur rsyslog pour voir si nous avons réussi à enregistrer l’activité créée depuis le client rsyslog ou non.

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 rsyslog_client]# cd CLIENT01/  
[root@RSYS01 CLIENT01]# ls  
rsyslogd.log sshd.log  
[root@RSYS01 CLIENT01]# tail -10 sshd.log  
Oct 24 17:01:47 CLIENT01 sshd[2102]: Accepted password for shahril from 192.168.43.80 port 17002 ssh2  
Oct 24 17:01:47 CLIENT01 sshd[2102]: pam_unix(sshd:session): session opened for user shahril by (uid=0)

Super, le résultat montre que le processus fonctionne comme prévu. Maintenant, pour le test final, reconnectons-nous au client rsyslog et installons un paquet pour tester si le service rsyslog parvient à enregistrer d’autres activités que la création de session. Voici les étapes :

::CLIENT01::  
login as: root  
[email protected]'s password:  
Last login: Sat Oct 22 10:21:40 2016 from 172.20.181.11
[root@CLIENT01 ~]# yum install firefox -y  
Loaded plugins: refresh-packagekit, security  
Repository 'OEL64' is missing name in configuration, using id  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package firefox.i686 0:10.0.12-1.0.1.el6_3 will be installed  
--> Finished Dependency Resolution  
   
Dépendances résolues  
   
================================================================================  
Paquet Arch Version Dépôt Taille  
================================================================================  
Installation :  
firefox i686 10.0.12-1.0.1.el6_3 OEL64 20 M  
   
Résumé de la transaction  
================================================================================  
Installer 1 Paquet(s)  
   
Taille totale du téléchargement : 20 M  
Taille installée : 23 M  
Téléchargement des paquets :  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : firefox-10.0.12-1.0.1.el6_3.i686 1/1  
Verifying : firefox-10.0.12-1.0.1.el6_3.i686 1/1  
   
Installé :  
firefox.i686 0:10.0.12-1.0.1.el6_3  
   
Terminé !

Ce qui précède montre que nous avons réussi à installer un installateur de navigateur firefox à l’intérieur de notre station de travail cliente rsyslog. Maintenant, retournons au serveur rsyslog et vérifions si rsyslog a pu enregistrer le processus d’installation d’un paquet tiers dans la station de travail. Voici les étapes :

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 CLIENT01]# ls  
rsyslogd.log sshd.log yum.log  
[root@RSYS01 CLIENT01]# tail -20 yum.log  
Oct 25 17:13:17 CLIENT01 yum[2319]: Installed: firefox-10.0.12-1.0.1.el6_3.i686

Excellent, le service rsyslog a réussi à auditer les informations de l’activité d’installation dans la station de travail cliente.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.