• Limites de syslog

On utilise tous syslog. On est tous habitué à aller consulter ses logs dans /var/log. La plupart des distributions Linux utilise le fichier messages comme le fichier fourre-tout. Sous CentOS par exemple, de base, seuls les logs en rapport les mails et les crons sont écrit dans des fichiers à part, le reste va dans /var/log/messages. Il faut s’y retrouver quand on cherche une information précise ! OK, à coup de tail -f, | (pipe), de grep et de grep -v, on peut s’en sortir déjà mieux. Mais ça reste fastidieux. Bien sûr, on peut aussi configurer la facility et priority dans le fichier syslog.conf.

kern.crit    /dev/console local4.err    /var/log/custom.log

Cependant, ça ne résout pas tous les problèmes. Comment faire que les logs de dhclient soient dans un fchier, ceux apache dans un autre, pareil pour ceux de pure-ftpd ? Impossible avec syslog !

 

  • Rsyslog

Heureusement la relève est là : rsyslog Il s’installe en replacement du démon syslog. Rsyslog permet de filtrer les logs suivants une multitude de critères (property) comme par exemple le nom du processus (programname dans la config) qui a fait l’appel syslog.

:programname, contains, "dhclient"    /var/log/dhclient.log

Consulter la documentation officielle pour connaître l’étendue des possibilités : rsyslog.conf

  • Stockage dans une base MySQL

Et la cerise sur le gâteau, on peut sauver les logs en base de données.

$ModLoad ommysql.so :programname, contains, "php"           :ommysql:localhost,db,user,password