Richard Bruno
navigation
Home
admin









TP - rsyslogd
June 20th, 2017

Rappels


Niveaux d'alerte

0 Emerg (emergency)
1 Alert
2 Crit (critical)
3 Err (error)
4 Warning
5 Notice
6 Info (informational)
7 Debug
8 none

Catégories (facilities)

Comme il n'est pas possible de disposer d'un codage pour chaque programme générant des logs, les programmes ont été groupés en catégories :

0 kern : kernel messages
1 user : user-level messages
2 mail : mail system
3 daemon : system daemons
4 auth : security/authorization messages
5 syslog : messages generated internally by syslogd
6 lpr line : printer subsystem
7 news : network news subsystem
8 uucp : UUCP subsystem
9 cron : clock daemon
10 security : security/authorization messages
11 ftp FTP : daemon
12 ntp NTP : subsystem
13 logaudit : log audit
14 logalert : log alert
15 clock : clock daemon (note 2)
16 local0 : local use 0 (local0)
[...]
23 local7 : local use 7 (local7)

Exemples

Redirection vers /var/log/syslog de tous les messages quelles que soient leur sévérité et leur catégorie.

*.* -/var/log/syslog



Redirection vers /var/log/critical des messages ayant, au minimum, le niveau d'alerte "crit"
*.crit -/var/log/critical

Redirection vers /var/log/messages des messages qui n'appartiennent pas aux catégories mail, authpriv et cron
mail.none;authpriv.none;cron.none -/var/log/messages

Principales commandes
Arrêt, lancement, redémarrage...

/etc/init.d/rsyslog stop


/etc/init.d/rsyslog start


/etc/init.d/rsyslog restart



Surveillance des fichiers

tail -f /var/log...



Précisions
Le tiret ("-") devant les fichiers de log indique au système de ne pas écrire immédiatement dans les fichiers. Les données sont conservées en mémoire et écrites régulièrement des les fichiers.
Il y a donc moins d'écriture sur le disque
En cas de plantage du système les données sont perdues.

L'astérisk indique que l'on désire prendre en compte toutes les catégories ou tous les niveaux de priorité.
Le mot clé "none" indique que l'on ne désire pas prendre en compte la catégorie ou le niveau de priorité concerné.
La virgule permet de séparer des catégories :

uucp,news.crit -/var/log/spooler


Le point virgule permet de séparer les sélecteurs :

*.info;mail.none;authpriv.none;cron.none -/var/log/messages


Le signe égal ("=") indique que l'on désire prendre en compte le niveau de priorité concerné (sans inclure les niveaux en dessus, comme c'est le cas par défaut).
Le point d'exclamation indique que l'on ne désire pas prendre en compte le niveau de priorité concerné.
Le tilde ("~") indique la suppression des messages :

cron.* ~


Les messages de cron seront supprimés.


Tests

La commande logger permet de générer des messages pour tester sa configuration :

# logger -p local1.err test
# tail -1f /var/log/app1/app1.err
Jun 3 15:33:46 alfa root: test



Docs
http://www.rsyslog.com/doc
http://fr.wikipedia.org/wiki/Syslog
http://en.gentoo-wiki.com/wiki/Rsyslog
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Viewing_and_Managing_Log_Files.html

Exercice 1



Enoncé
Soit une application produisant des logs sur la facility local1.
Modifiez syslog pour récupérer ces logs dans le répertoire /var/log/app1
et dans des fichiers (l'extension concernant au niveau de sécurité minimum) :
/var/log/app1/app1.err
/var/log/app1/app1.log
/var/log/app1/app1.debug

Solution 1

# cat /etc/rsyslog.d/app1.conf
local1.debug /var/log/app1/app1.debug
local1.info /var/log/app1/app1.log
local1.err /var/log/app1/app1.err



Solution 2
Répartition plus précise entre les fichiers pour éviter de doublonner les infos.

# cat /etc/rsyslog.d/app1.conf
local1.=debug /var/log/app1/app1.debug
local1.=info;local1.=notice;local1.=warning /var/log/app1/app1.log
local1.err /var/log/app1/app1.err



Exercice 2


Modifiez de nouveau syslog pour que les logs soient exportés vers un serveur de logs (à installer).

Solution

Config du serveur
On autorise les connexions entrantes.
Modifiez le fichier rsyslog.conf (les lignes en gras sont à décommenter) :

# cat /etc/rsyslog.conf
# /etc/rsyslog.conf Configuration file for rsyslog.
[...]
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514


# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

[...]



Rajoutez le fichier de config fait précédemment :

# cat /etc/rsyslog.d/app1.conf
local1.=debug /var/log/app1/app1.debug
local1.=info;local1.=notice;local1.=warning /var/log/app1/app1.log
local1.err /var/log/app1/app1.err




et relancez du daemon :

/etc/init.d/rsyslog restart



Config du client

Modifiez votre fichier de config pour envoyer les infos vers le serveur de log :

# cat /etc/rsyslog.d/app1.conf
local1.* @mon_serveur



et relancez du daemon :

/etc/init.d/rsyslog restart



rsyslogd server - TCP vs UDP



In general, we suggest to use TCP syslog. It is way more reliable than UDP syslog and still pretty fast. The main reason is, that UDP might suffer of message loss. This happens when the syslog server must receive large bursts of messages. If the system buffer for UDP is full, all other messages will be dropped. With TCP, this will not happen. But sometimes it might be good to have a UDP server configured as well. That is, because some devices (like routers) are not able to send TCP syslog by design. In that case, you would need both syslog server types to have everything covered. If you need both syslog server types configured, please make sure they run on proper ports. By default UDP syslog is received on port 514. TCP syslog needs a different port because often the RPC service is using this port as well.

http://www.rsyslog.com/tag/tcp/

Can TCP and UDP sockets use the same port?

Yes, you can use the same port number for both TCP and UDP.
Many protocols already do this, for example DNS works on udp/53 and tcp/53.

Its like living in two different apartment buildings but the same room number...

http://stackoverflow.com/questions/6437383/can-tcp-and-udp-sockets-use-the-same-port
answers.yahoo.com/question/index?qid=20110817054531AAqtR1E

Quelle est la différence entre @ et @@ ?

# Provides UDP forwarding. The IP is the server's IP address
*.* @192.168.1.1:514

# Provides TCP forwarding. But the current server runs on UDP
# *.* @@192.168.1.1:514





Dernières modifs
Systemd (October 24th, 2020)
TP - rsyslogd (June 20th, 2017)
Gestion de la memoire (June 20th, 2017)
Ansible (November 10th, 2016)
Fichiers et systèmes de fichiers (November 8th, 2016)
X (October 20th, 2016)
Obtenir des informations sur le système (October 19th, 2016)

Contact
Pour m'envoyer un mail,
Pour me laisser un commentaire :
richard.brunooo
chez
gmail.com


powered by kure, modified by Bruno