Les fichiers journaux sont cruciaux pour détecter et résoudre les erreurs. Ce sont les premiers fichiers que les administrateurs système examinent afin de déterminer la cause probable d'une erreur et, ce faisant, de proposer des solutions pour résoudre le problème. Dans une infrastructure avec des dizaines ou des centaines de serveurs et d'autres appareils, la gestion des fichiers journaux peut être un défi. Et c'est là qu'intervient rsyslog.
Rsyslog est un programme de journalisation open source qui facilite le transfert des fichiers journaux vers un serveur de journalisation centralisé dans un réseau IP. Grâce à la journalisation centralisée, les administrateurs peuvent facilement garder un œil sur les fichiers journaux de plusieurs systèmes à partir d'un point central. Dans cet article, nous vous expliquerons l'installation et la configuration de Rsyslog Server sur Debian 11.
Configuration du laboratoire
Pour démontrer comment Rsyslog peut être utilisé pour envoyer des fichiers journaux d'un système client au serveur Rsyslog, nous allons avoir une configuration Lab simple comme indiqué
- Serveur Rsyslog : Debian 11 IP :192.168.1.151
- Client Rsyslog : IP Ubuntu 20.04 :10.20.0.170
Étape 1) Configurer Rsyslog sur le serveur
Comme mentionné précédemment, Rsyslog fonctionne dans un modèle client-serveur et nous commencerons par configurer Rsyslog sur le serveur Debian 11. Sur Debian 11, Rsyslog est installé par défaut. Si pour une raison quelconque Rsyslog n'est pas présent, vous pouvez l'installer en utilisant la commande :
$ sudo apt install -y rsyslog
Lors de l'installation, vous pouvez vérifier son état de fonctionnement comme suit :
$ sudo systemctl status rsyslog
Ensuite, nous allons configurer rsyslog pour qu'il s'exécute en mode serveur. Le fichier de configuration est le fichier /etc/rsyslog.conf. Modifiez-le donc à l'aide de votre éditeur de texte préféré.
$ sudo vi /etc/rsyslog.conf
Continuez et décommentez les lignes suivantes qui permettent la réception de syslog UDP et TCP à partir de clients distants.
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
Ensuite, collez les lignes suivantes pour définir le modèle que le démon Rsyslog utilisera pour stocker les journaux entrants des systèmes clients.
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Les fichiers journaux utiliseront la convention de dénomination suivante :
- /%HOSTNAME%/ – Il s'agit du nom d'hôte du système client.
- /%PROGRAMNAME%/ – Ceci identifie le programme client qui a créé le fichier journal.
Pour appliquer les modifications, redémarrez le démon rsyslog.
$ sudo systemctl restart rsyslog
Par défaut, rsyslog écoute le port 514. Vous pouvez confirmer qu'il s'agit du port sur lequel le démon rsyslog écoute en exécutant la commande ss.
$ sudo ss -tunlp | grep 514
Étape 2) Configurer les règles de pare-feu pour rsyslog
Le démon Rsyslog s'exécute sur le serveur comme prévu. Si vous utilisez un pare-feu UFW, assurez-vous d'autoriser le port 514 afin d'autoriser les messages de journal entrants entrants.
$ sudo ufw allow 514/tcp $ sudo ufw allow 514/udp
Rechargez ensuite le pare-feu pour appliquer la règle de pare-feu comme suit.
$ sudo ufw reload
La prochaine étape consistera à configurer le système client Ubuntu pour envoyer les fichiers journaux au serveur rsyslog.
Étape 3) Configurer le système client rsyslog
La dernière étape consiste à configurer le système client pour envoyer les fichiers journaux au serveur rsyslog. Connectez-vous au client et encore une fois, assurez-vous que le démon rsyslog est installé et en cours d'exécution.
Ensuite, modifiez le fichier de configuration rsyslog.
$ sudo vi /etc/rsyslog.conf
Accédez à la toute fin du fichier et ajoutez ces lignes.
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-ip-address:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-ip-address:514
Ces lignes indiquent au client d'envoyer les fichiers journaux via les protocoles UDP et TCP au serveur rsyslog. Notez que la première ligne comporte un seul symbole @ qui signifie UDP et que la deuxième ligne comporte deux symboles @@ pour signifier le protocole TCP.
Si le serveur distant subit un temps d'arrêt et que vous souhaitez conserver vos journaux, vous pouvez définir le tampon de file d'attente du disque en ajoutant les lignes affichées.
##Définir la file d'attente du disque lorsque le serveur rsyslog sera en panne :
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Vous trouverez ci-dessous un récapitulatif de toutes les modifications apportées à la configuration du client.
Enregistrez et quittez le fichier. Redémarrez maintenant le service rsyslog pour que les modifications prennent effet.
$ sudo systemctl restart rsyslog
À ce stade, le système client doit envoyer les fichiers journaux au serveur rsyslog. Retournons au serveur et découvrons.
Étape 4) Afficher les fichiers journaux du client
Tous les fichiers journaux (y compris les serveurs) sont stockés dans le répertoire /var/log/. Pour afficher les journaux du client, exécutez la commande suivante :
$ ls /var/log/
Les fichiers journaux du client seront enregistrés dans un répertoire qui correspond au nom d'hôte du système client, comme illustré ci-dessous.
Vous pouvez également afficher les fichiers journaux contenus dans le répertoire principal des journaux.
$ sudo ls -l /var/log/ubuntu-20-04/
Pour afficher les journaux en temps réel, utilisez la commande tail comme indiqué. Ici, nous consultons les journaux de l'utilisateur sudo.
$ sudo tail -f /var/log/ubuntu-20-04/sudo.log
Nous avons installé avec succès rsyslog et l'avons configuré pour permettre l'envoi de fichiers journaux au serveur rsyslog à partir du système client. Vous pouvez désormais configurer autant de systèmes clients que vous le souhaitez pour envoyer des journaux au serveur rsyslog afin d'obtenir une structure de gestion centralisée des journaux.
C'est tout de ce post, j'espère que vous l'avez trouvé informatif. Veuillez partager vos questions et vos commentaires dans la section des commentaires ci-dessous.
Lire aussi :Comment faire pivoter et compresser les fichiers journaux sous Linux avec Logrotate