wiki/HowtoRsyslog.md

176 lines
5.1 KiB
Markdown
Raw Normal View History

2017-06-19 16:24:20 +02:00
---
categories: sysadmin
title: Howto Rsyslog
...
2016-12-29 11:25:39 +01:00
2017-06-19 16:24:20 +02:00
* Documentation : <http://www.rsyslog.com/doc/v8-stable/>
2016-12-29 11:25:39 +01:00
2017-06-30 09:14:14 +02:00
[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.)
2017-06-19 16:24:20 +02:00
## Installation
2017-06-30 12:01:07 +02:00
Le paquet **rsyslog** tourne normalement déjà :
2017-06-19 16:24:20 +02:00
~~~
# 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
2017-06-19 23:45:55 +02:00
Le fichier de configuration principal est `/etc/rsyslog.conf` :
2017-06-19 16:24:20 +02:00
~~~
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:*
~~~
2017-06-30 12:30:33 +02:00
> *Note* : Pour Debian 7 et 8, la syntaxe pour charger les modules étaient différentes :
> ~~~
> $ModLoad imuxsock
> $ModLoad imklog
> ~~~
2017-06-30 12:01:07 +02:00
Les journaux principaux sont :
2017-06-19 23:45:55 +02:00
* 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)
2017-06-30 12:01:07 +02:00
Nous conseillons d'ajouter ces paramètres :
2017-06-19 16:24:20 +02:00
2017-06-30 12:01:07 +02:00
* 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
2017-06-19 16:24:20 +02:00
2017-06-30 12:01:07 +02:00
À la suite du fichier de configuration nous pouvons ajouter :
2017-06-30 12:01:57 +02:00
2017-06-19 16:24:20 +02:00
~~~
*.*;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
2016-12-29 11:25:39 +01:00
### 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
~~~
2017-06-19 16:24:20 +02:00
### Activation en réseau
2016-12-29 11:25:39 +01:00
2017-06-30 12:01:07 +02:00
Il est possible de centraliser les logs de plusieurs serveurs si le port 514 écoute sur le réseau en UDP.
2017-06-30 12:01:57 +02:00
2017-06-30 09:14:14 +02:00
~~~
module(load="imudp")
input(type="imudp" port="514")
~~~
En Debian 7, il fallait faire :
2016-12-29 11:25:39 +01:00
~~~
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
~~~
2017-06-30 09:14:14 +02:00
## 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
~~~