SelfLinux Systemverwaltung syslog-ng Abschnitt 2 | SelfLinux-0.13.0

| syslog-ng | Autor Formatierung GFDL

#### 2 Ein Anwendungsfall

Als ich anfing, mir ein Logfile-Analyse-Werkzeug zu bauen, merkte ich, dass der Standard syslog Dämon von Linux und vielen Unix-Systemen doch erhebliche Einschränkungen mit sich bringt. Ich wollte ein Logfile in einer ähnlichen Form, wie es moderne Anwendungen wie cups, samba oder Apache machen. Das Datum sollte mit Jahresangabe sein, Priorität, Facility und das Programm, was loggt, sollten ebenfalls auftauchen. Eine Zeile sollte etwa so aussehen:

    [2003/10/13 12:00:42] info mail fetchmail fetchmail[30924]: No mail for ...

Zuerst das Datum in einer samba-like Form, dann die Log-Priorität, die Facility (also der Systembereich, der loggt), das Programm und die Message. Alle erzeugten Logs des Systems, die über syslog laufen, sollten in einer Logdatei landen. Hierzu fügte ich in der syslog-ng.conf folgende Zeilen hinzu:

    destination mysyslog {
      file("/var/log/mysyslog"
      owner("root")
      group("adm")
      perm(0640)
      template( "[$YEAR/$MONTH/$DAY $HOUR:$MIN:$SEC] $PRIORITY
                 $FACILITY $PROGRAM $MESSAGE\n")); };

    log { source(src);  destination(mysyslog); };

Mit destination wird ein destination-Objekt festgelegt, welches mysyslog heißt und mit der Datei /var/log/mysyslog verbunden wird. Das Ausgabe-Format beschreibt ein Template. Über die Zeile log wird dann ein zuvor definiertes source-Objekt und mein destination-Objekt zu einer Log-Aktion zusammengefügt.