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/LinuxEnsuite, 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-stableFait, 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.i686Ensuite, 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
EnforcingPour 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=targetedAprè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 destinationFait, 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.* ?AuditlogVoici 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/rsyslogdVous 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.logBien, 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
^CExcellent, 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:514C’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 CLIENT01Excellent, 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 ~]$ exitMaintenant, 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.i686Excellent, le service rsyslog a réussi à auditer les informations de l’activité d’installation dans la station de travail cliente.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.