Comment configurer le serveur Rsyslog sur Ubuntu 18.04 LTS

Les journaux sont très utiles pour analyser et résoudre tous les problèmes liés au système et aux applications sous Linux. Par défaut, tous les fichiers journaux sont situés dans le répertoire /var/log dans les systèmes d’exploitation basés sur Linux. Il existe plusieurs types de fichiers journaux, notamment, cron, noyau, utilisateurs, sécurité et la plupart de ces fichiers sont contrôlés par le service Rsyslog.

Rsyslog est un système puissant et sécurisé pour le traitement des journaux. Le serveur Rsyslog reçoit des journaux sur le réseau depuis plusieurs serveurs physiques ou virtualisés et surveille la santé de différents services. Avec le serveur Rsyslog, tu peux surveiller les journaux d’autres serveurs, de périphériques réseau et d’applications distantes depuis un emplacement centralisé.

Dans ce tutoriel, nous allons expliquer comment configurer le serveur Rsyslog sur le serveur Ubuntu 18.04.

Conditions préalables

  • Deux serveurs fonctionnant sous Ubuntu 18.04.
  • Une adresse IP statique 192.168.0.101 est configurée sur la machine du serveur Rsyslog et 192.168.0.102 est configurée sur la machine du client Rsyslog.
  • Un mot de passe root est configuré sur les deux serveurs.

Installer Rsyslog

Par défaut, Rsyslog est installé sur le serveur Ubuntu 18.04. S’il n’est pas installé, tu peux l’installer en exécutant la commande suivante :

apt-get install rsyslog -y

Après avoir installé Rsyslog, tu peux vérifier la version de Rsyslog avec la commande suivante :

rsyslogd -v

Tu devrais obtenir la sortie suivante :

rsyslogd 8.32.0, compiled with:
	PLATFORM:				x86_64-pc-linux-gnu
	PLATFORM (lsb_release -d):		
	FEATURE_REGEXP:				Yes
	GSSAPI Kerberos 5 support:		Yes
	FEATURE_DEBUG (debug build, slow code):	No
	32bit Atomic operations supported:	Yes
	64bit Atomic operations supported:	Yes
	memory allocator:			system default
	Runtime Instrumentation (slow code):	No
	uuid support:				Yes
	systemd support:			Yes
	Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

Tu peux aussi vérifier l’état de Rsyslog avec la commande suivante :

systemctl status rsyslog

Tu devrais voir la sortie suivante :

? rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago
     Docs: man:rsyslogd(8)
           http://www.rsyslog.com/doc/
 Main PID: 724 (rsyslogd)
    Tasks: 4 (limit: 1114)
   CGroup: /system.slice/rsyslog.service
           ??724 /usr/sbin/rsyslogd -n

Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service...
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd.  [v8.32.0]
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102
Oct 22 04:28:54 ubuntu1804 rsyslogd[724]:  [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start
Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.

Configurer le serveur Rsyslog

Rsyslog est maintenant installé et fonctionne. Ensuite, tu devras le configurer pour qu’il fonctionne en mode serveur. Tu peux le faire en modifiant le fichier /etc/rsyslog.conf.

nano /etc/rsyslog.conf

Tout d’abord, tu devras définir le protocole, soit UDP, soit TCP, soit les deux.

Pour utiliser les connexions UDP et TCP en même temps, recherche et décommente les lignes ci-dessous :

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

Ensuite, définis le sous-réseau, l’IP ou le domaine spécifique pour limiter l’accès comme indiqué ci-dessous :

$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com

Ensuite, tu devras créer un modèle pour indiquer au serveur Rsyslog comment stocker les messages syslog entrants. Ajoute les lignes suivantes juste avant la section DIRECTIVES GLOBALES :

$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, vérifie que la configuration de Rsyslog ne contient pas d’erreur de syntaxe à l’aide de la commande suivante :

rsyslogd -f /etc/rsyslog.conf -N1

Tu devrais voir la sortie suivante :

rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

Enfin, redémarre le service Rsyslog avec la commande suivante :

systemctl restart rsyslog

Maintenant, vérifie que Rsyslog écoute sur TCP/UDP avec la commande suivante :

netstat -4altunp | grep 514

Tu devrais obtenir la sortie suivante :

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      1332/rsyslogd       
udp        0      0 0.0.0.0:514             0.0.0.0:*                           1332/rsyslogd       

Configurer le client Rsyslog

Le serveur Rsyslog est installé et configuré pour recevoir les journaux des hôtes distants.

Maintenant, tu dois configurer le client Rsyslog pour envoyer des messages syslog au serveur Rsyslog distant.

Connecte-toi à la machine du client et ouvre le fichier de configuration Rsyslog comme indiqué ci-dessous :

nano /etc/rsyslog.conf

Ajoute les lignes suivantes à la fin du fichier :

##Enable sending of logs over UDP add the following line:

*.* @192.168.0.101:514


##Enable sending of logs over TCP add the following line:

*.* @@192.168.0.101:514

##Set disk queue when rsyslog server will be down:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Enregistre et ferme le fichier. Ensuite, redémarre le serveur Rsyslog pour appliquer les changements de configuration :

systemtcl restart rsyslog

Voir le journal du client

À ce stade, le client Rsyslog est configuré pour envoyer son journal au serveur Rsyslog.

Maintenant, connecte-toi au serveur Rsyslog et vérifie le répertoire /var/log. Tu devrais voir l’entrée avec le nom d’hôte de tes machines clientes, y compris plusieurs fichiers journaux :

ls /var/log/rsyslog-client/

Sortie :

CRON.log  kernel.log  rsyslogd-2039.log  rsyslogd.log  sudo.log  wpa_supplicant.log

Conclusion

Dans l’article ci-dessus, nous avons appris à installer et à configurer le serveur Rsyslog sur le serveur Ubuntu 18.04. Nous avons également appris à configurer le client Rsyslog pour envoyer des journaux au serveur Rsyslog. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...