Archiv/syslog-ng

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein Terminal öffnen

  3. Root-Rechte

  4. Einen Editor öffnen

Inhaltsverzeichnis
  1. Installation
  2. Pfad zu den Log-Dateien
  3. Konfiguration
  4. Links

Anwendungen und insbesondere Serverdienste schreiben Protokolldateien, um bestimmte Systemzustände, Ereignisse oder Schwellwerte zu protokollieren. Nicht nur in Testphasen kann es sinnvoll sein, diese Protokolle zu sammeln und auszuwerten. Syslog ist faktisch ein Standard zur Übermittlung von Protokoll-Meldungen in einem Netzwerk. Syslog-ng 🇬🇧 ist eine weit verbreitete, freie Implementierung eines Syslog-Servers unter Linux oder Unix und bietet weitere Funktionen im Vergleich zu syslog. Zusätzlich wurden mit syslog-ng einige Schwachstellen beseitigt.

Installation

Um syslog-ng zu installieren[1], benötigt man das Paket

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install syslog-ng 

sudo aptitude install syslog-ng 

Hinweis:

Die Installation von syslog-ng entfernt rsyslog.

Pfad zu den Log-Dateien

Die Log-Dateien liegen dann unter /var/log. Standardmäßig loggt syslog-ng in die Datei /var/log/syslog

Konfiguration

Die Einstellungen für die Logs findet man in der Datei /etc/syslog-ng/syslog-ng.conf. Hier sind einige Logs voreingestellt. Will man weitere Logs definieren, muss man in dieser Konfigurationsdatei eine Quelle, einen Filter und ein Ziel (Englisch: source, filter, destination) definieren. So kann man syslog-ng auch als Syslog-Server im Netzwerk einrichten. Die Konfiguration kann anschließend mit dem Befehl

syslog-ng --syntax-only 

überprüft werde.

Beispiel: Log-Dateien des Routers

Um das Prinzip zu verdeutlichen, sei nachfolgend beschrieben, wie man syslog-ng dazu bringt, die Log-Dateien des heimischen Netzwerkrouters zu verwalten. Die Benutzung von syslog-ng bietet sich an, da zwar auch ein normaler syslogd diese Daten empfangen und in eine gemeinsame Log-Datei schreiben kann, es jedoch nur mit syslog-ng möglich ist, die Daten anhand der Absenderadresse (der IP-Adresse des Routers) in eine separate Log-Datei zu schreiben.

Angenommen der Router hat die IP-Adresse 192.168.0.1 und ist in der Lage, die Logfiles über UDP-Port 514 an einen Syslog-Server zu übermitteln (das ist Standard). Dann muss man zunächst dem Router mitteilen, dass er seine Logs an den Server zu richten hat. Das kann man bei gängigen Routern über eine Web-Oberfläche machen (siehe Router-Handbuch). Das setzt natürlich voraus, dass der Router seine Logs an einen syslog-Server richten kann.

In Datei /etc/syslog-ng/syslog-ng.conf müssen nun für diese Logs Quelle, Ziel und Filter eingetragen werden. Hierzu öffnet man die Datei mit Rootechten [3] in einem Editor[4] und fügt die folgenden Zeilen ein:

source s_udp
{
    udp(port(514));
};

Der obige Befehl fügt die Quelle zu. Das Quellen-Tag kennt auch noch den Parameter ip. Dieser Parameter ist optional. Hier kann die IP-Adresse des Hosts (nicht der Logging-Gäste) angegeben werden. Da das nur der Syslog-Server sein kann, kann man hier auch mit

source s_udp
{
    udp(ip(127.0.0.1) port(514));
};

die Loopback-Adresse des Servers eingeben oder

source s_udp
{
    udp(ip(<IP-Adresse des Servers>) port(514));
};

die IP-Adresse des Servers eingeben oder eben diesen Parameter weglassen.

Nun muss noch ein Ziel für die Logs eingegeben werden. Dazu dient der Eintrag destination:

destination d_router { 
	file("/var/log/router.log");
 };

Der Name des Zieleintrags (hier d_router) kann frei vergeben werden.

Außerdem muss ein Filter definiert werden. Das passiert mit dem Eintrag

filter f_router { 
	host("192.168.0.1");
 };

Der Name des Filters (hier f_router) kann frei vergeben werden. Als Host wird die IP-Adresse des Routers eingetragen.

Quelle, Ziel und Filter müssen schließlich noch im Log-Tag zusammengeführt werden:

log { 
      source(s_udp); 
      filter(f_router);
      destination(d_router); 
}; 

Nachdem die Datei /etc/syslog-ng/syslog-ng.conf gespeichert wurde, muss der Syslog-Dienst im Terminal[2] neu gestartet werden:

sudo /etc/init.d/syslog-ng restart 

Wenn nun keine Fehlermeldung erscheint, lauscht der Syslog-Server auf Port 514 auf syslogs vom Router und schreibt sie in die Datei /var/log/router.log.

An diesem Beispiel soll nur das Prinzip erläutert werden. Weitergehende Informationen sind der offiziellen Dokumentation 🇬🇧 zu entnehmen.