====== rsyslog ======
Pour la conf, cf http://www.rsyslog.com/doc-rsyslog_conf.html
===== Syntaxe =====
Toutes les lignes sont de la forme \\
filtre action
où action peut être un fichier (si préfixé par -, ça évite un sync à chaque écriture, important pour les logs fréquemment ouverts) ou un user.
Un même filtre peut avoir plusieurs actions, par ex
*.crit /var/log/critical.log
& root
loggue dans un fichier et envoie à root.
facility : auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (idem auth), syslog, user, uucp, local0 -> local7
priority : debug, info, notice, warning, warn (idem warning), err, error (idem err), crit, alert, emerg, panic (idem emerg).
Pour le filtre, on peut en mettre plusieurs, par ex
* ''*.err;mail.none'' => tous les messages d'erreur (ou supérieurs, donc crit alert et emerg compris) sauf mail.err
* ''kern.=warn'' => les warnings du kernel (mais pas les priority sup)
* ''mail.*;mail.!=info /var/log/mail_but_info.log'' => tous les mail sauf info (idem ''mail.=debug;mail.notice'')
# on peut s'étaler sur plusieurs lignes
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
# ça sélectionne les info, notice et warning sauf pour auth, etc.
==== Expressions ====
On peut aussi utiliser des expressions pour filtrer d'après le contenu du message, par exemple
*.err /var/log/error.log
:msg, contains, "on s'en fout" ~
*.* /var/log/almost_all_errors.log
le ~ en fin de ligne vire les lignes concernées (pour toutes les directives qui suivront), ne pas mettre ce ~ ne garderait que les lignes concernées par le filtre (messages qui contiendraient la chaine "on s'en fout").