Les journaux sont très utiles pour analyser et résoudre les problèmes liés au système et aux applications sous Linux. Par défaut, tous les fichiers journaux se trouvent dans le répertoire /var/log des 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 les journaux sur le réseau de plusieurs serveurs physiques ou virtualisés et surveille la santé des différents services. Avec le serveur Rsyslog, vous pouvez surveiller les journaux d'autres serveurs, périphériques réseau et applications distantes à partir d'un emplacement centralisé.
Dans ce tutoriel, nous expliquerons comment configurer le serveur Rsyslog sur le serveur Ubuntu 18.04.
Prérequis
- Deux serveurs exécutant Ubuntu 18.04.
- Une adresse IP statique 192.168.0.101 est configurée sur la machine serveur Rsyslog et 192.168.0.102 est configurée sur la machine 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é, vous pouvez l'installer en exécutant la commande suivante :
apt-get install rsyslog -y
Après avoir installé Rsyslog, vous pouvez vérifier la version de Rsyslog avec la commande suivante :
rsyslogd -v
Vous devriez obtenir le résultat suivant :
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.
Vous pouvez également vérifier l'état de Rsyslog avec la commande suivante :
systemctl status rsyslog
Vous devriez voir le résultat suivant :
? 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 en cours d'exécution. Ensuite, vous devrez le configurer pour qu'il s'exécute en mode serveur. Vous pouvez le faire en éditant le fichier /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Tout d'abord, vous devrez définir le protocole soit UDP, soit TCP, soit les deux.
Pour utiliser les connexions UDP et TCP en même temps, recherchez et décommentez les lignes ci-dessous :
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
Ensuite, définissez le sous-réseau, l'adresse 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, vous devrez créer un modèle pour indiquer au serveur Rsyslog comment stocker les messages syslog entrants. Ajoutez les lignes suivantes juste avant la section GLOBAL DIRECTIVES :
$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez la configuration de Rsyslog pour toute erreur de syntaxe avec la commande suivante :
rsyslogd -f /etc/rsyslog.conf -N1
Vous devriez voir le résultat suivant :
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Enfin, redémarrez le service Rsyslog avec la commande suivante :
systemctl restart rsyslog
Maintenant, vérifiez que Rsyslog écoute sur TCP/UDP avec la commande suivante :
netstat -4altunp | grep 514
Vous devriez obtenir le résultat suivant :
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, vous devrez configurer le client Rsyslog pour envoyer des messages syslog au serveur Rsyslog distant.
Connectez-vous à la machine cliente et ouvrez le fichier de configuration Rsyslog comme indiqué ci-dessous :
nano /etc/rsyslog.conf
Ajoutez 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
Enregistrez et fermez le fichier. Ensuite, redémarrez le serveur Rsyslog pour appliquer les modifications de configuration :
systemtcl restart rsyslog
Afficher le journal du client
À ce stade, le client Rsyslog est configuré pour envoyer son journal au serveur Rsyslog.
Maintenant, connectez-vous au serveur Rsyslog et vérifiez le répertoire /var/log. Vous devriez voir l'entrée avec le nom d'hôte de vos 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 comment 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ésitez pas à me demander si vous avez des questions.