From 7d85f264e74d463b836ce5925e90d133bed570c1 Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Fri, 30 Jun 2017 14:51:29 +0200 Subject: [PATCH] Relecture / ajouts --- HowtoRsyslog.md | 69 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 10 deletions(-) diff --git a/HowtoRsyslog.md b/HowtoRsyslog.md index ff67dd20..1338b574 100644 --- a/HowtoRsyslog.md +++ b/HowtoRsyslog.md @@ -118,36 +118,75 @@ local5.* -/var/log/haproxy.log local7.* -/var/log/dhcp.log ~~~ -**Rsyslog** supporte une configuration plus avancée, notamment avec des notions d'input, filtre et output. Cela passe notamment par utiliser le nouveau format RainerScript pour la configuration. + +## Configuration avancée + +**Rsyslog** supporte une configuration plus avancée, notamment avec des notions d'input, filtre et output. + +### Input + + + +Exemple avec l'input [Text File](http://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html) qui permet à Rsyslog d'avaler des logs à partir d'un fichier, et par exemple de les renvoyer vers un serveur Syslog distant (Rsyslog ou [Logstash](HowtoELK#logstash)) : + +~~~ +$InputFileName /home/log/foo.log +$InputFileTag foo: +$InputFileStateFile foo +$InputFileSeverity info +$InputFileFacility local0 +$InputRunFileMonitor + +local0.* @192.0.2.42 +~~~ + +### Filtre + + + +Voici un exemple de filtre sur _$programname_ (ce qui pratique car le protocole Syslog a un nombre limité de _facility_ personnalisables : local0, local1 ... jusqu'à local9) : + +~~~ +if $programname startswith 'haproxy' then /var/log/haproxy.log +~~~ ## Administration -### Rotation dynamique des logs +### Rotation automatique des logs -Cela permet d'écrire automatiquement dans un fichier dont le nom est fonction de la date par exemple. -Du coup il n'est plus utile de gérer sa rotation (uniquement la compression). +On peut écrire des noms de fichier avec des variables comme la date par exemple. +Cela permet notamment de gérer une rotation automatique (sans compression). +En général on fait cela en définissant un template, que l'on utilise avec _?template_ : ~~~ $template DailyPerHostLogs,"/var/log/local2-%$YEAR%-%$MONTH%-%$DAY%.log" -local2.* -?DailyPerHostLogs + +local2.* ?DailyPerHostLogs ~~~ ### Activation en réseau -Il est possible de centraliser les logs de plusieurs serveurs si le port 514 écoute sur le réseau en UDP. +Il est d'activer Rsyslog en écoute sur le réseau (port UDP/514) ainsi : ~~~ module(load="imudp") input(type="imudp" port="514") ~~~ -En Debian 7, il fallait faire : +> *Note* Pour Debian 7 et 8, il fallait faire : +> +> ~~~ +> # provides UDP syslog reception +> $ModLoad imudp +> $UDPServerRun 514 +> ~~~ + +Il est ainsi possible d'envoyer des logs à un serveur Rsyslog (ou [Logstash](HowtoELK#logstash) !) via le réseau en spécifiant : ~~~ -# provides UDP syslog reception -$ModLoad imudp -$UDPServerRun 514 +*.* @192.0.2.42 +local0.* @192.0.2.42 ~~~ ## FAQ @@ -174,3 +213,13 @@ Pour envoyer des informations à Syslog en ligne de commande on peut utiliser _l $ logger test $ logger -p local0.notice test ~~~ + +### format de configuration RainerScript + +Rsyslog utilise le nouveau format _RainerScript_ pour sa configuration. +Pour rester avec le format de configuration « legacy » on utilise : + +~~~ +$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat +~~~ +