| FOTO | AUTO | EDV | AUDIO |

CentOS 5: Logmeldungen des DHCP-Servers in eine eigene Logdatei umleiten

Wenn Sie einen DHCP-Server betreiben, kennen Sie sicher die folgenden Meldungen aus Ihrer /var/log/messages.

[root@centos5 ~]# tail -f /var/log/messages
Oct 28 16:26:21 centos5 dhcpd: DHCPREQUEST for 192.168.10.112 from 00:26:18:86:33:a1 (client1) via eth0
Oct 28 16:26:21 centos5 dhcpd: DHCPACK on 192.168.10.112 to 00:26:18:86:33:a1 (client1) via eth0
Oct 28 16:26:21 centos5 dhcpd: DHCPREQUEST for 192.168.10.118 from 00:08:0d:3a:18:33 (client2) via eth0
Oct 28 16:26:21 centos5 dhcpd: DHCPACK on 192.168.10.118 to 00:08:0d:3a:18:33 (client2) via eth0
Oct 28 16:26:24 centos5 dhcpd: DHCPINFORM from 192.168.10.112 via eth0
Oct 28 16:26:24 centos5 dhcpd: DHCPACK to 192.168.10.112 (00:26:18:86:33:a1) via eth0
Oct 28 16:27:58 centos5 dhcpd: DHCPREQUEST for 192.168.10.152 from 00:1c:7e:44:59:b3 (client3) via eth0
Oct 28 16:27:58 centos5 dhcpd: DHCPACK on 192.168.10.152 to 00:1c:7e:44:59:b3 (client3) via eth0
Bei einem DHCP-Server welcher relativ wenige DHCP-Anfragen bearbeitet stören diese Meldungen in der Logdatei /var/log/messages wohl keinen. Sobald aber die Anzahl der DHCP-Anfragen steigt, wird die /var/log/messages durch diese Meldungen sehr unübersichtlich. Die folgende Anleitung soll Ihnen deshalb zeigen, wie Sie die Logmeldungen des DHCP-Daemons in eine eigene Logdatei (hier /var/log/dhcpd) umleiten können.

Zuerst öffnen Sie die Syslog-Konfigurationsdatei mit einem Editor.

[root@centos5 ~]# vi /etc/syslog.conf
Fügen Sie am Ende der Datei den folgenden Abschnitt ein.
# Save dhcpd messaged to /var/log/dhcpd
local0.*                                                /var/log/dhcpd
Durch diesen Eintrag werden alle Meldungen der Facility local0 in die Logdatei /var/log/dhcpd geschrieben. Überprüfen Sie bitte unbedingt, ob die Facility local0 nicht bereits anderweitig in der Konfigurationsdatei verwendet wird. Sollte dies der Fall sein, verwenden Sie eine ungenutzte Facility. Es stehen Ihnen local0 bis local7 zur Verfügung.

Damit Syslog die Meldungen der Facility local0 nicht zusätzlich in der /var/log/messages protokolliert, erweitern Sie den Abschnitt für die /var/log/messages wie folgt.

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local0.none    /var/log/messages
Nachdem Sie die Konfigurationsdatei gespeichert haben, erstellen Sie die Logdatei /var/log/dhcpd, ändern deren Zugriffsberechtigungen und laden die Syslog-Konfiguration neu.
[root@centos5 ~]# touch /var/log/dhcpd
[root@centos5 ~]# chmod 600 /var/log/dhcpd
[root@centos5 ~]# service syslog reload
Damit der DHCP-Daemon die Meldungen mit der Facility local0 an den Syslog-Daemon übergibt, müssen Sie eine weitere Option in die /etc/dhcpd.conf eintragen.
[root@centos5 ~]# vi /etc/dhcpd.conf
Geben Sie hier mit der Option log-facility die Facility local0 an.
log-facility local0;
Nachdem Sie die Konfiguration des DHCP-Daemons angepasst haben, starten Sie diesen neu.
[root@centos5 ~]# service dhcpd restart
Mit dem folgenden Befehl können Sie überprüfen ob die Logmeldungen des DHCP-Servers jetzt in der /var/log/dhcpd protokolliert werden.
[root@centos5 ~]# tail -f /var/log/dhcpd
Damit die neue Logdatei /var/log/dhcpd mit der Zeit nicht zu groß wird, sollte man diese regelmäßig von Logrotate archivieren und löschen lassen. Am einfachsten ist es, wenn man die Logdatei in der Konfigurationsdatei /etc/logrotate.d/syslog hinzufügt. Dazu öffnen Sie die Datei /etc/logrotate.d/syslog mit einem Editor.
[root@centos5 ~]# vi /etc/logrotate.d/syslog
Fügen Sie hier wie folgt die Logdatei /var/log/dhcpd ein.
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/dhcpd {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
Wenn Sie die Logmeldungen des DHCP-Daemons nicht mit Logwatch auswerten wollen, sind Sie hier bereits mit der Arbeit fertig. Anderenfalls müssen Sie Logwatch über die neue Logdatei /var/log/dhcpd informieren.

Erstellen Sie deshalb die Datei /etc/logwatch/conf/logfiles/dhcpd.conf.

[root@centos5 ~]# vi /etc/logwatch/conf/logfiles/dhcpd.conf
Fügen Sie die folgenden Zeilen in diese Datei ein.
# What actual file?  Defaults to LogPath if not absolute path....
LogFile = dhcpd
 
#*ApplyUSDate
 
# vi: shiftwidth=3 tabstop=3 et
Dadurch wird Logwatch die Logdatei /var/log/dhcpd bekannt gemacht.

Anschließend kopieren Sie die Logwatch-Konfigurationsdatei für den DHCP-Daemon in das Verzeichnis /etc/logwatch/conf/services/ und öffnen diese mit einem Editor.

[root@centos5 ~]# cp /usr/share/logwatch/default.conf/services/dhcpd.conf /etc/logwatch/conf/services/
[root@centos5 ~]# vi /etc/logwatch/conf/services/dhcpd.conf
Erweitern Sie den folgenden Abschnitt durch die dritte Zeile.
# Which logfile group...
LogFile = messages
LogFile = dhcpd
Mit dem folgenden Befehl können Sie überprüfen ob Logwatch die Logdateien /var/log/messages und /var/log/dhcpd nach Logmeldungen des DHCP-Daemons auswertet. Dazu sollten natürlich bereits einige Logmeldungen, welche Logrotate beachtet, in der Logdatei /var/log/dhcpd enthalten sein.
[root@centos5 ~]# logwatch --print --service dhcpd --range today --detail 1