177 lines
5.1 KiB
Markdown
177 lines
5.1 KiB
Markdown
---
|
|
categories: sysadmin
|
|
title: Howto Rsyslog
|
|
...
|
|
|
|
* Documentation : <http://www.rsyslog.com/doc/v8-stable/>
|
|
|
|
[Rsyslog](http://www.rsyslog.com/) est le démon **Syslog** par défaut sous Debian. Le protocole [Syslog](https://fr.wikipedia.org/wiki/Syslog) permet de gérer la journalisation : les messages sont envoyés par diverses applications (messages kernel, user, daemon, mail, etc.) triés par _facility_ (LOG_KERN, LOG_CRON, LOG_DAEMON, LOG_MAIL, LOG_AUTH, etc.) et avec un niveau de _severity_ (LOG_EMERG, LOG_ALERT, LOG_ERR, LOG_WARNING, etc.) ; ils sont reçus par un démon qui les répartit dans différents fichiers situés dans le répertoire `/var/log/` ou par d'autres façons (serveur syslog distant, terminal, etc.)
|
|
|
|
## Installation
|
|
|
|
Le paquet **rsyslog** tourne normalement déjà :
|
|
|
|
~~~
|
|
# systemctl status rsyslog
|
|
● rsyslog.service - System Logging Service
|
|
Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
|
|
Docs: man:rsyslogd(8)
|
|
http://www.rsyslog.com/doc/
|
|
Main PID: 2815 (rsyslogd)
|
|
Tasks: 4
|
|
Memory: 2.9M
|
|
CPU: 1.604s
|
|
CGroup: /system.slice/rsyslog.service
|
|
└─2815 /usr/sbin/rsyslogd -n
|
|
|
|
# rsyslogd -v
|
|
rsyslogd 8.16.0, compiled with:
|
|
PLATFORM: x86_64-pc-linux-gnu
|
|
PLATFORM (lsb_release -d):
|
|
FEATURE_REGEXP: Yes
|
|
GSSAPI Kerberos 5 support: Yes
|
|
FEATURE_DEBUG (debug build, slow code): No
|
|
32bit Atomic operations supported: Yes
|
|
64bit Atomic operations supported: Yes
|
|
memory allocator: system default
|
|
Runtime Instrumentation (slow code): No
|
|
uuid support: Yes
|
|
Number of Bits in RainerScript integers: 64
|
|
~~~
|
|
|
|
## Configuration
|
|
|
|
Le fichier de configuration principal est `/etc/rsyslog.conf` :
|
|
|
|
~~~
|
|
module(load="imuxsock")
|
|
module(load="imklog")
|
|
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
|
|
$FileOwner root
|
|
$FileGroup adm
|
|
$FileCreateMode 0640
|
|
$DirCreateMode 0755
|
|
$Umask 0022
|
|
$WorkDirectory /var/spool/rsyslog
|
|
$IncludeConfig /etc/rsyslog.d/*.conf
|
|
|
|
auth,authpriv.* /var/log/auth.log
|
|
*.*;auth,authpriv.none -/var/log/syslog
|
|
#cron.* /var/log/cron.log
|
|
daemon.* -/var/log/daemon.log
|
|
kern.* -/var/log/kern.log
|
|
lpr.* -/var/log/lpr.log
|
|
mail.* -/var/log/mail.log
|
|
user.* -/var/log/user.log
|
|
|
|
mail.info -/var/log/mail.info
|
|
mail.warn -/var/log/mail.warn
|
|
mail.err /var/log/mail.err
|
|
|
|
*.=debug;\
|
|
auth,authpriv.none;\
|
|
news.none;mail.none -/var/log/debug
|
|
*.=info;*.=notice;*.=warn;\
|
|
auth,authpriv.none;\
|
|
cron,daemon.none;\
|
|
mail,news.none -/var/log/messages
|
|
*.emerg :omusrmsg:*
|
|
~~~
|
|
|
|
> *Note* : Pour Debian 7 et 8, la syntaxe pour charger les modules était différente :
|
|
>
|
|
> ~~~
|
|
> $ModLoad imuxsock
|
|
> $ModLoad imklog
|
|
> ~~~
|
|
|
|
Les journaux principaux sont :
|
|
|
|
* auth.log : authentification système (login, su, getty)
|
|
* daemon.log : relatif aux daemons
|
|
* mail.* : relatifs aux mails
|
|
* kern.log : générés par le noyau
|
|
* user.log : générés par des programmes utilisateur
|
|
* debug : messages de debug
|
|
* messages : messages d'infos
|
|
* syslog : tous les messages (sauf exceptions définies)
|
|
|
|
Nous conseillons d'ajouter ces paramètres :
|
|
|
|
* activer cron.log
|
|
* supprimer mail.info, mail.warn et mail.err
|
|
* réduire les infos en double envoyées à /var/log/syslog
|
|
* créer des entrées pour les services standard
|
|
|
|
À la suite du fichier de configuration nous pouvons ajouter :
|
|
|
|
~~~
|
|
*.*;auth,authpriv.none;cron,mail,local4,local5,local7.none -/var/log/syslog
|
|
cron.* /var/log/cron.log
|
|
#mail.info -/var/log/mail.info
|
|
#mail.warn -/var/log/mail.warn
|
|
#mail.err /var/log/mail.err
|
|
local0.* /var/log/postgresql.log
|
|
local1.* /var/log/sympa.log
|
|
local4.* -/var/log/openldap.log
|
|
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.
|
|
|
|
|
|
## Administration
|
|
|
|
### Rotation dynamique 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).
|
|
|
|
~~~
|
|
$template DailyPerHostLogs,"/var/log/local2-%$YEAR%-%$MONTH%-%$DAY%.log"
|
|
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.
|
|
|
|
~~~
|
|
module(load="imudp")
|
|
input(type="imudp" port="514")
|
|
~~~
|
|
|
|
En Debian 7, il fallait faire :
|
|
|
|
~~~
|
|
# provides UDP syslog reception
|
|
$ModLoad imudp
|
|
$UDPServerRun 514
|
|
~~~
|
|
|
|
## FAQ
|
|
|
|
### Stopper rsyslog
|
|
|
|
~~~
|
|
# systemctl stop syslog.socket
|
|
~~~
|
|
|
|
### Mode debug
|
|
|
|
Pour lancer rsyslog en ligne de commande en mode debug :
|
|
|
|
~~~
|
|
# rsyslogd -d -n
|
|
~~~
|
|
|
|
### logger
|
|
|
|
Pour envoyer des informations à Syslog en ligne de commande on peut utiliser _logger_ :
|
|
|
|
~~~
|
|
$ logger test
|
|
$ logger -p local0.notice test
|
|
~~~
|