Août 29 2008
Centralisation des logs avec Cacti
J’ai cherché pendant longtemps un bon outil permettant de gérer les messages envoyés vers un serveur central de logs. Logwatch envoie des rapports par email contenant des tonnes de messages, ou alors trop axés sur certaine applications. Les logs ne sont plus passés en revue en général puis oubliés. J’ai ensuite trouvé un module Cacti qui fait exactement ce que je cherchais, rapidement et facilement.
Installation
Les étapes d’installation sont clairement décrites sur le forum cacti.
Je devrais mentionner que le module ne supporte que syslog-ng, et non pas syslog.
Configuration
J’ai filtré uniquement les messages à en ne gardant que les erreurs et les critiques. Il suffit de modifier la configuration de syslog-ng:
filter f_cacti { level(error..emerg) and not (facility(mail) or facility(authpriv) or facility(cron)); }; source net { udp(); }; destination d_mysql { pipe("/tmp/mysql.pipe" template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message) VALUES ( '$HOST', '$ FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG' );\n") template-escape(yes) ); }; log { source(net); filter(f_cacti); destination(d_mysql); }; log { source(s_sys); filter(f_cacti); destination(d_mysql); };
Il est ensuite possible de filtre les logs en utilisant des « patterns », les trier par serveur, criticité ou date, ou recevoir des alertes, comme montré sur la capture d’écran:
Un seul regret: Il n’y a pas d’option pour marquer un log comme « En cours de traitement » ou « traité » par exemple.