Der Syslog Server syslog-ng


1. Einleitung

Dies ist eine kurze technische Beschreibung, wie unter Red Hat Linux der Syslog Server syslog-ng installiert werden kann. Details finden Sie in der inkludierten Dokumentation sowie auf der Homepage der Software unter http://www.balabit.com/products/syslog_ng/.

Dieser Server wird von uns dem normalen Red Hat Linux Syslog Server vorgezogen, da er weit flexibler ist. Außerdem verhält er sich, wenn viele Log Einträge generiert werden, viel ressourcenschonender (v.a. in Bezug auf das I/O Verhalten).

2. Installation

Für Red Hat Linux angepasste Pakete finden sich unter ftp://zid-luxinst.uibk.ac.at/mirror/syslog-ng-uibk/. Von dort sind zumindest die Pakete libol und syslog-ng, eventuell auch libol-devel zu installieren.

Dort finden sich auch die Source RPM Pakete. Aus diesen können bei Bedarf die Binary RPMS neu erstellt werden (und warden dann unter /usr/src/redhat/RPMS/i386/ abgelegt):

rpmbuild --rebuild libol-*.src.rpm
rpmbuild --rebuild syslog-ng-*.src.rpm

Die Pakete werden wie folgt installiert:

rpm -ivh libol-*.i386.rpm syslog-ng-*.i386.rpm

3. Konfiguration

Die Konfigurationsdatei von syslog-ng ist /etc/syslog-ng/syslog-ng.conf. Sie ist standardmäßig so konfiguriert, dass unter /var/log/ für jede Facility (auth, authpriv, cron, daemon, ...) eine Log Datei angelegt wird:

/var/log/[facility].log

Die Beispielkonfiguration (sowie die unten erwähnte logrotate Datei) verwendet die Gruppe c102. Der Vorteil ist, dass damit jedes Mitglied dieser Gruppe Log Dateien ansehen kann. Diese muss, falls nicht vorhanden, noch angelegt oder entsprechend ersetzt werden:

/usr/sbin/groupadd -g 114 c102

Andere Konfigurationsbeispiele finden sich unter /usr/share/doc/syslog-ng-*/doc/.

Soll der Rechner die Logs zusätzlich an einen Log-Server abliefern, werden der Konfiguration folgende Zeilen hinzugefügt (die IP Adresse ist entsprechend anzupassen):

destination logserver   { udp("138.232.x.x"); };
log { source(s_local); destination(logserver); };

Im Verzeichnis /etc/logrotate.d/ wird die Datei syslog-ng abgelegt. Diese rotiert die Log Dateien von syslog-ng wenn notwendig. In diesem Verzeichnis finden sich weitere logrotate Dateien. Diese und die man page sollten als Hilfe reichen.

Da syslog in Zukunft nicht mehr verwendet wird, ist dessen logrotate Datei zu entfernen:

rm /etc/logrotate.d/syslog

Nun kann man auf syslog-ng umschalten:

/sbin/chkconfig syslog off
/sbin/chkconfig syslog-ng on
/sbin/service syslog stop
/sbin/service syslog-ng start

4. finally()

Das Dokumentationsverzeichnis /usr/share/doc/syslog-ng-*/doc/, man 8 syslog-ng, man 5 syslog-ng.conf und das Manual (im Dokumentationsverzeichnis im Unterverzeichnis sgml/) helfen weiter.