Connecter Linux à un serveur syslog distant

Dans ce tutoriel, nous allons voir comment utiliser le daemon RSyslog pour envoyer les événements envoyés par les applications à un serveur syslog distant.

Pour une introduction à Syslog et Rsyslog, je vous invite à lire mon précédent billet: Connecter Windows à un serveur syslog distant.

J’utilise ici une machine virtuelle sous Ubuntu Server 14.04 LTS mais la manipulation est sensiblement identique avec d’autres distributions.

Regardons un instant le contenu du fichier /etc/rsyslog.d/50-default.conf (/etc/rsyslog.conf sous CentOS):

#
# First some standard log files.  Log by facility.
#
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
(...)

Syntaxe du fichier

La syntaxe est assez simple à comprendre:

auth, cron, daemon, kern, etc. sont des facilités (facilities). La liste exhaustive des valeurs est la suivante: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, syslog, user, uucp et local0 à local7.

Ce qui suit derrière la facilité et le point est la priorité. Là encore, la documentation est très claire et indique les valeurs acceptées: debug, info, notice, warning, warn, err, error, crit, alert, emerg et panic. C’est à l’application émettrice de décider du niveau de priorité.

Les sélecteurs (facilité + . + priorité) peuvent être séparées par un point virgule (;). Une virgule permet de séparer plusieurs facilités avec un même priorité:

  • auth,authpriv.* revient à écrire auth.*;authpriv.*
  • auth,authpriv.none revient à écrire auth.none;authpriv.none

Il est également possible d’utiliser les opérateurs <, <=, =, >, >= et ! sachant que la valeur numérique d’une priorité est inversée (0=EMERGENCY, 7=DEBUG). Par exemple:

  • Pour ne récupérer que les erreurs et plus urgent: mail.<=error
  • Pour ne récupérer que les erreurs: mail.=error

En face de ces sélecteurs se trouve l’action à effectuer. La plupart du temps, elle se résume à l’enregistrement dans un fichier. Le tiret à l’avant du nom de fichier indique que le fichier ne doit pas écrit immédiatement (omit syncing the file after every logging). Il est également possible de rediriger vers un autre processus en préfixant le chemin de l’exécutable par un pipe (exemple: |/usr/local/bin/mon_process).

Pour ignorer certains événements, il suffit de définir l’action associée à ~ (le tilde).

Envoyer vers un serveur

Maintenant que la syntaxe est introduite, passons au vif du sujet: l’envoi des événements vers un serveur syslog distant. Le fonctionnement est très simple: nous avons vu qu’il était possible d’enregistrer dans un fichier et de rediriger vers un autre processus à travers l’action associé à un sélecteur. Nous allons donc utiliser une action:

*.<=error @10.252.1.101

La syntaxe de l’action est la suivante:

  • Un @ devant l’IP / le nom d’hôte pour de l’UDP (ex: @1.2.3.4)
    Deux pour du TCP (ex: @@1.2.3.4)
  • Les IPv6 se mettent entre crochets (comme d’habitude) (ex: @[2001::1])
  • Pour utiliser un port personnalisé, on ajoute :PORT à la fin (ex: @1.2.3.4:1234)

Il est également possible de compresser les données sur le réseau à l’aide de la librairie zlib en ajoutant (z9) entre le(s) @ et l’IP/nom d’hôte. Exemple: @(z8)1.2.3.4. Le chiffre suivant la lettre ‘z’ peut varier entre 0 (compression faible) et 9 (compression maximale).

Source

rsyslog.conf(5) – http://man7.org/linux/man-pages/man5/rsyslog.conf.5.html

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s