Rsyslog
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 stop
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