Rsyslog – Rediriger les Journaux des Serveurs Distant vers des Fichiers Différents
Après la réinstallation d’un nouveau serveur linux Redhat 8 où nous avons installé rsyslog, j’ai cherché comment collecter et écrire les journaux des serveurs distants dans des fichiers différents.
Le premier modèle que j’ai trouvé sur différents forums ne répondait que partiellement à ma recherche, car les évènements des serveurs distants étaient écrits simultanément dans le fichier « message » et dans le fichier portant le nom du serveur.
1 2 3 4 5 6 |
. $template DynamicFile,"/var/log/%HOSTNAME%/forwarded-logs.log" *.* -?DynamicFile . |
https://www.redhat.com/sysadmin/log-aggregation-rsyslog
Aprés quelques recherches supplémentaire, je suis tombé sur un forum ou un template repondait à mes attentes….ce modèle collecte les évènements reçus par udp et les ecrit dans un fichier portant le nom du serveur qui les a transmis.
1 2 3 4 5 6 7 8 9 10 11 |
. # Log remote hosts to separate log file $template PerHostLog,"/var/log/remote-hosts/%HOSTNAME%.log" $template RemoteHostFileFormat,"%TIMESTAMP% %HOSTNAME% %syslogfacility-text% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::space-cc,drop-last-lf%\n" :inputname, isequal, "imudp" ?PerHostLog;RemoteHostFileFormat & ~ . |
Ce modèle doit être placé dans le fichier /etc/rsyslog.conf et précéder les informations « GLOBAL DIRECTIVES »