Aug 29 2008
Central Logging with Cacti
I looked for a long time for a piece of software that allows to manage messages sent to a central syslog server. Logwatch sends email reports containing tons of messages, or focused on some applications. Logs are usually not being looked at and forgotten. I then found out a Cacti module could do the job, quick and easy.
Installation
Installation steps are clearly described on cacti forum.
I should mention this module only supports syslog-ng, not syslog.
Configuration
I only filtered out messages to be displayed restricting them to errors and criticals. This was achieved modifying the syslog-ng configuration:
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); };
It is then possible to filter logs out using patterns, sort by server, criticity or date, or receive alerts, as shown in the screenshot:

Only regret: there is no option to mark a log as “being processed” or “closed” for instance.