Montag, 6. April 2009

syslog von Ballast befreien

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.

Liked this post? Follow this blog to get more. 

Tags:
Labels: IT, Linux

Kommentar erfassen