Die /var/log/syslog füllt sich unter Debian Linux sehr schnell mit viel nichtssagendem Ballast, weshalb ich mich heute dazu entschied, mal ein wenig aufzuräumen. Die Meldungen von cron (läuft bei mir jede Minute mit irgendwelchen Befehlen), dhcpd (im Netzwerk gibt es ein Gerät, dass jede Sekunde einen DHCP-Request sendet) sowie snmpd (cacti frägt den Systemzustand in jeder Minute ab) sollten neu aus der /var/log/syslog in eigene Log-Dateien ausgelagert werden.
Folgende Anpassungen an /etc/syslog-ng/syslog-ng.conf taten den Trick.
Als erstes legt man neue Destinationen fest:
destination df_cron { file("/var/log/cron.log"); }; destination df_dhcpd { file("/var/log/dhcpd.log"); }; destination df_snmpd { file("/var/log/snmpd.log"); };
Anschliessend legt man vier neue Filter fest:
filter f_cron { facility(cron); }; filter f_dhcpd { program(dhcpd); }; filter f_snmpd { program(snmpd); }; filter f_noise { not filter(f_snmpd) and not filter(f_dhcpd) and not filter(f_cron); };
Schlussendlich baut man diese als Log-Anweisungen zusammen:
log { source(s_all); filter(f_syslog); filter(f_noise); destination(df_syslog); }; log { source(s_all); filter(f_cron); destination(df_cron); }; log { source(s_all); filter(f_dhcpd); destination(df_dhcpd); }; log { source(s_all); filter(f_snmpd); destination(df_snmpd); };
Nachdem man die Konfigurationsdatei gespeichert hat, startet man syslog-ng neu und erfreut sich über die Ruhe, die nun einkehrt:
# /etc/init.d/syslog-ng restart $ tail -f /var/log/syslog
Nachtrag
Natürlich wollte ich mir noch ein Bild machen, wie die Situation vor diesen neuen Umleitungen aussah. Erschreckend:
# cat syslog | cut -d " " -f 6 | sort | cut -d "[" -f 1 | sort | uniq -c | sort -r -n 2534 dhcpd: 2215 /USR/SBIN/CRON 1688 snmpd 392 kernel: 98 mt-daapd 55 syslog-ng 40 postfix/qmgr 36 avahi-daemon 31 smartd 26 ovpn-server 23 named 21 postfix/smtp 19 postfix/cleanup 18 postfix/pickup 9 mysqld 8 apcupsd 6 ntpdate 6 /etc/mysql/debian-start 4 /usr/sbin/cron 4 postfix/tlsmgr 3 arpwatch: 2 postfix/master 2 mysqld_safe 1 shutdown 1 postfix/local 1 mdadm 1 init:
Mein Gefühl hat sich bestätigt: Ich habe die richtigen „Übeltäter“ in eigene Dateien ausgelagert.