22
0
Fork 0

Relecture / ajouts

This commit is contained in:
Gregory Colpart 2017-06-30 14:51:29 +02:00
parent 95f47bf6c4
commit 7d85f264e7
1 changed files with 59 additions and 10 deletions

View File

@ -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
<http://www.rsyslog.com/doc/v8-stable/configuration/modules/idx_input.html>
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
<http://www.rsyslog.com/doc/v8-stable/configuration/filters.html>
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
~~~