« Rsyslog » : différence entre les versions

De wiki jackbot
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
mAucun résumé des modifications
Ligne 1 : Ligne 1 :
[[Category:Informatique]][[Category:Administration Informatique]]
[[Category:Informatique]][[Category:Administration]]


Rsyslog permet de gérer les journaux d’événements, capable d'agir comme un serveur afin de récupérer les journaux des machines sur le réseau.
Rsyslog permet de gérer les journaux d’événements, capable d'agir comme un serveur afin de récupérer les journaux des machines sur le réseau.

Version du 3 avril 2021 à 15:26


Rsyslog permet de gérer les journaux d’événements, capable d'agir comme un serveur afin de récupérer les journaux des machines sur le réseau.

Configuration du mode serveur

Configuration des protocoles et écoute des ports

Afin de pouvoir recevoir les messages provenant du réseau, il faut configurer le protocole utilisé ainsi que le port. Pour ce faire il faut éditer le fichier : /etc/rsyslog.conf et repérer ce passage :

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

Assez explicite, mais je vais tout de même détailler

module(load="imudp")

Active le module permettant d'écouter avec le protocole UDP

input(type="imudp" port="514")

Configure l'entrée pour utiliser le protocole UDP sur le port 514. Les autres lignes font la même chose pour le protocole TCP. Une fois ces lignes décommentées/ajoutées et rsyslog rechargé/redémarré, il écoutera sur le port 514 en UDP et TCP.

Configuration et traitement des logs entrants

Il ne suffit pas d'écouter les ports pour que le serveur traite les logs, il faut également lui indiquer quels sont les logs à prendre en compte et où les enregistrer, il va falloir ajouter quelques lignes au fichier : /etc/rsyslog.conf. Il va cependant falloir ajouter quelques lignes

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs 
& ~

La directive $template va permettre de définir le chemin vers lequel les logs distants seront enregistrés.

La deuxième ligne *.* ?RemoteLogs va quant à elle permettre de définir quels logs seront traités. Le modèle de cette ligne est le suivant :

facility.severity_level	destination

facility = le programme qui va envoyer les logs severity_level = le type de logs 0 emergency, 1 alert, 2 critical, 3 error, 4 warning, 5 info, 6 debug, 7 using

Le fait d'utiliser *.* va donc permettre d'accepter et de traiter tous les logs entrants.

destination = simplement la destination, ici on va rediriger ça vers RemoteLogs, qui seront après dispatchés suivant la machine et le programme comme décrit dans la première ligne.

La dernière ligne quant à elle permet d'arrêter le traitement une fois que les informations ont été écrites dans un fichier et éviter ainsi qu'ils soit également écrit dans les fichiers locaux.

Une fois ces lignes ajoutées et rsyslog rechargé/redémarré, il enregistrera les logs dans des dossiers spécifiques correspondant au hostname des clients.


Configuration coté client

Ici ça va être facile et rapide, il suffira d'ajouter au fichier : /etc/rsyslog.conf

*.*  @@192.168.100.10:514

Lui indiquant ainsi que tous ses logs doivent être envoyés vers l'adresse et le port indiqué. Il est cependant tout à fait possible de restreindre les logs envoyés en utilisant une syntaxe du type :

auth.*  @@192.168.100.10:514

Source

https://www.tecmint.com/install-rsyslog-centralized-logging-in-centos-ubuntu/