Rsyslog est un utilitaire de journalisation gratuit et open source qui existe par défaut sur CentOS 8 et RHEL 8 systèmes. Il fournit un moyen simple et efficace de centraliser les journaux des nœuds clients vers un serveur central unique. La centralisation des journaux est bénéfique à deux égards. Premièrement, cela simplifie l'affichage des journaux, car l'administrateur système peut afficher tous les journaux des serveurs distants à partir d'un point central sans se connecter à chaque système client pour vérifier les journaux. Ceci est très avantageux s'il y a plusieurs serveurs qui doivent être surveillés et deuxièmement, dans le cas où un client distant subit un crash, vous n'avez pas à vous soucier de perdre les journaux car tous les journaux seront enregistrés sur le rsyslog central serveur . Rsyslog a remplacé syslog qui ne supportait que UDP protocole. Il étend le protocole syslog de base avec des fonctionnalités supérieures telles que la prise en charge à la fois de UDP et TCP protocoles de transport des journaux, des capacités de filtrage accrues et des options de configuration flexibles. Cela dit, explorons comment configurer le serveur Rsyslog dans les systèmes CentOS 8 / RHEL 8.
Prérequis
Nous allons avoir la configuration de laboratoire suivante pour tester le processus de journalisation centralisée :
- Serveur Rsyslog Adresse IP minimale de CentOS 8 :10.128.0.47
- Système client RHEL 8 Minimal Adresse IP :10.128.0.48
À partir de la configuration ci-dessus, nous allons vous montrer comment configurer le serveur Rsyslog et configurer ultérieurement le système client pour envoyer les journaux au serveur Rsyslog pour surveillance.
Commençons !
Configuration du serveur Rsyslog sur CentOS 8
Par défaut, Rsyslog est installé sur les serveurs CentOS 8 / RHEL 8. Pour vérifier l'état de Rsyslog, connectez-vous via SSH et lancez la commande :
$ systemctl status rsyslog
Exemple de sortie
Si rsyslog n'est pas présent pour une raison quelconque, vous pouvez l'installer à l'aide de la commande :
$ sudo yum install rsyslog
Ensuite, vous devez modifier quelques paramètres dans le fichier de configuration Rsyslog. Ouvrez le fichier de configuration.
$ sudo vim /etc/rsyslog.conf
Faites défiler et décommentez les lignes ci-dessous pour permettre la réception des logs via le protocole UDP
module(load="imudp") # needs to be done just once input(type="imudp" port="514")
De même, si vous préférez activer la réception TCP rsyslog, décommentez les lignes :
module(load="imtcp") # needs to be done just once input(type="imtcp" port="514")
Enregistrez et quittez le fichier de configuration.
Pour recevoir les journaux du système client, nous devons ouvrir le port 514 par défaut de Rsyslog sur le pare-feu. Pour y parvenir, exécutez
# sudo firewall-cmd --add-port=514/tcp --zone=public --permanent
Ensuite, rechargez le pare-feu pour enregistrer les modifications
# sudo firewall-cmd --reload
Exemple de sortie
Ensuite, redémarrez le serveur Rsyslog
$ sudo systemctl restart rsyslog
Pour activer Rsyslog au démarrage, exécutez sous la commande
$ sudo systemctl enable rsyslog
Pour confirmer que le serveur Rsyslog écoute sur le port 514, utilisez la commande netstat comme suit :
$ sudo netstat -pnltu
Exemple de sortie
Parfait! nous avons configuré avec succès notre serveur Rsyslog pour recevoir les journaux du système client.
Pour afficher les messages du journal en temps réel, exécutez la commande :
$ tail -f /var/log/messages
Configurons maintenant le système client.
Configuration du système client sur RHEL 8
Comme le serveur Rsyslog, connectez-vous et vérifiez si le démon rsyslog est en cours d'exécution en lançant la commande :
$ sudo systemctl status rsyslog
Exemple de sortie
Ensuite, ouvrez le fichier de configuration rsyslog
$ sudo vim /etc/rsyslog.conf
A la fin du fichier, ajoutez la ligne suivante
*.* @10.128.0.47:514 # Use @ for UDP protocol *.* @@10.128.0.47:514 # Use @@ for TCP protocol
Enregistrez et quittez le fichier de configuration. Tout comme le serveur Rsyslog, ouvrez le port 514 qui est le port Rsyslog par défaut sur le pare-feu
$ sudo firewall-cmd --add-port=514/tcp --zone=public --permanent
Ensuite, rechargez le pare-feu pour enregistrer les modifications
$ sudo firewall-cmd --reload
Ensuite, redémarrez le service rsyslog
$ sudo systemctl restart rsyslog
Pour activer Rsyslog au démarrage, exécutez la commande suivante
$ sudo systemctl enable rsyslog
Tester l'opération de journalisation
Après avoir installé et configuré avec succès le serveur Rsyslog et le système client, il est temps de vérifier que votre configuration fonctionne comme prévu.
Sur le système client, lancez la commande :
# logger "Hello guys! This is our first log"
Dirigez-vous maintenant vers le serveur Rsyslog et exécutez la commande ci-dessous pour vérifier les messages des journaux en temps réel
# tail -f /var/log/messages
La sortie de la commande exécutée sur le système client doit s'inscrire dans les messages de journal du serveur Rsyslog pour impliquer que le serveur Rsyslog reçoit maintenant les journaux du système client.
Et voilà, les gars ! Nous avons configuré avec succès le serveur Rsyslog pour recevoir les messages de journal d'un système client.
Lisez aussi :Comment faire pivoter et compresser les fichiers journaux sous Linux avec Logrotate
Lire aussi :Comment installer Redis Server sur CentOS 8 / RHEL 8