Netzwerk-Protokollierung: Einführung in das Syslog-Protokoll

Wenn Sie Dutzende oder Hunderte von Servern betreiben, wird die Überwachung jeder einzelnen separat unmöglich. Die Lösung ist die zentralisierte Protokollsammlung mithilfe des Syslog-Protokolls. In diesem Artikel werfen wir einen detaillierten Blick darauf, wie es funktioniert und wie man es konfiguriert.

Was ist Syslog?

Syslog ist ein Standardprotokoll für die Übertragung von systembezogenen Protokollmeldungen über ein Netzwerk. Es ermöglicht die Sammlung von Protokollen verschiedener Geräte und Systeme auf einem einzigen zentralen Server. Dies ist besonders wichtig für:

  • Unternehmensnetzwerke
  • Verteilte Systeme
  • Cloud-Infrastrukturen
  • Sicherheitsüberwachung

Geschichte von Syslog

Das Syslog-Protokoll wurde in den 1980er Jahren von Eric Allman für BSD Unix entwickelt. Seitdem ist es der De-facto-Standard für die Übertragung von Protokollmeldungen in IP-Netzwerken geworden. Im Jahr 2009 wurde RFC 5424 angenommen, welches die moderne Version des Protokolls definiert.

Syslog-Architektur

Ein Syslog-System besteht aus drei Hauptkomponenten:

  1. Syslog-Client (Ursprung) — Gerät oder Anwendung, die Meldungen generiert
  2. Syslog-Server (Sammler) — Meldungsempfänger
  3. Netzwerk — Übertragungskanal (normalerweise UDP oder TCP)

Syslog-Nachrichtenformat

Jede Syslog-Nachricht besteht aus drei Teilen:

PRI (Priorität)

Enthält Informationen über die Nachrichtenpriorität: <PRI> PRI wird mit der Formel berechnet: facility * 8 + severity, wobei: - facility — Nachrichtenquelle (0-23) - severity — Nachrichtenwichtigkeit (0-7)

HEADER

Enthält: - TIMESTAMP — Ereigniszeit - HOSTNAME — Sender-Hostname - APP-NAME — Anwendungsname - PROCID — Prozess-ID - MSGID — Nachrichten-ID

MSG

Enthält: - STRUCTURED-DATA — strukturierte Parameter - MESSAGE — Nachrichtentext

Beispiel einer vollständigen Nachricht: <34>1 2026-03-03T15:00:00.123Z myserver app 12345 ID47 [exampleSD@32473 iut="3" event="start"] Starte...

Schweregrade

Syslog definiert 8 Schweregrade:

  • 0 — Emergency (Notfallsituation)
  • 1 — Alert (erfordert sofortiges Eingreifen)
  • 2 — Critical (kritischer Fehler)
  • 3 — Error (Fehler)
  • 4 — Warning (Warnung)
  • 5 — Notice (normales, aber bedeutendes Ereignis)
  • 6 — Informational (informative Meldung)
  • 7 — Debug (Debug-Meldung)

Facility-Codes

Facility definiert die Quelle der Meldung:

  • 0 — Kernel-Meldungen
  • 1 — Benutzerebene Meldungen
  • 2 — Mail-System
  • 3 — System-Daemons
  • 4 — Sicherheits-/Autorisierungsmeldungen
  • 5 — interne Meldungen von syslogd
  • 6 — Zeilendruckersubsystem
  • 7 — Netzwerk-News-Subsystem
  • 8 — UUCP-Subsystem
  • 9 — Uhr-Daemon
  • 10 — Sicherheits-/Autorisierungsmeldungen
  • 11 — FTP-Daemon
  • 12 — NTP-Subsystem
  • 13 — Protokoll-Audit
  • 14 — Protokoll-Alarm
  • 15 — Uhr-Daemon
  • 16-23 — lokale Nutzungs-Facilities

Konfiguration des Syslog-Servers

In Linux

rsyslog

Rsyslog ist eine verbesserte Version des klassischen Syslog. Installieren Sie es:

```bash

Ubuntu/Debian

sudo apt-get install rsyslog

CentOS/RHEL

sudo yum install rsyslog ```

Aktivieren Sie den Empfang von Netzwerknachrichten durch Bearbeiten von /etc/rsyslog.conf:

```

UDP-Modul aktivieren

module(load="imudp") input(type="imudp" port="514")

TCP-Modul aktivieren

module(load="imtcp") input(type="imtcp" port="514") ```

Erstellen Sie eine separate Datei für Netzwerknachrichten: ```

Alle Netzwerknachrichten in separate Datei

. @remote-server-ip:514 ```

Starten Sie den Dienst neu: bash sudo systemctl restart rsyslog

syslog-ng

Alternative Option:

bash sudo apt-get install syslog-ng

Konfigurationsdatei /etc/syslog-ng/syslog-ng.conf:

``` source s_network { udp(port(514)); tcp(port(514)); };

destination d_remote_logs { file("/var/log/remote/${FULLHOST}/messages.log"); };

log { source(s_network); destination(d_remote_logs); }; ```

In Windows

Windows unterstützt Syslog nicht standardmäßig, aber es gibt mehrere Lösungen:

NXLog Community Edition

  1. Laden Sie NXLog herunter und installieren Sie es
  2. Konfigurieren Sie die Konfigurationsdatei /conf/nxlog.conf:

``` Module im_udp Host 0.0.0.0 Port 514 Protocol udp ParseFormat syslog

Module om_file File "/var/log/syslog.log"

Path in_syslog => out_file ```

Kiwi Syslog Server

Beliebte kommerzielle Lösung mit grafischer Benutzeroberfläche.

Konfiguration der Clients

Linux-Clients

Um Nachrichten an einen entfernten Server zu senden, fügen Sie eine Zeile zu /etc/rsyslog.conf hinzu:

```

Alle Nachrichten an entfernten Server senden

. @@remote-server-ip:514 ```

Für bestimmte Nachrichtentypen: ```

Nur Fehler

*.err @@remote-server-ip:514

Nur Kernel-Nachrichten

kern.* @@remote-server-ip:514 ```

Konfiguration von Anwendungen

Viele Anwendungen können Protokolle über Syslog senden. Beispiel für Apache:

```

In der Apache-Konfigurationsdatei

LogLevel warn ErrorLog "| /usr/bin/logger -t httpd -p local6.error" ```

Windows-Clients

Um Protokolle von Windows-Rechnern zu senden, können Sie Folgendes verwenden:

  1. NXLog — Senden von Ereignissen aus dem Ereignisprotokoll
  2. SolarWinds Free Syslog Sender
  3. Benutzerdefinierte PowerShell-Skripte

Syslog-Sicherheit

Traditionelles Syslog verwendet UDP ohne Verschlüsselung, was Risiken birgt:

  • Nachrichtenabfangen
  • Quellentäuschung
  • Verletzung der Datenintegrität

Um diese Probleme zu beheben:

  • Verwenden Sie TCP statt UDP
  • Implementieren Sie TLS-Verschlüsselung (RFC 5425)
  • Wenden Sie Quellauthentifizierung an
  • Verwenden Sie VPN für die Protokollübertragung

Praktische Empfehlungen

Auswahl der richtigen Lösung

  1. Für kleine Netzwerke: rsyslog oder syslog-ng
  2. Für Unternehmensumgebungen: Splunk, ELK Stack, Graylog
  3. Für Cloud: Cloud-Protokollmanagement-Lösungen

Leistungsüberwachung

  • Überwachen Sie das Volumen der übertragenen Daten
  • Überwachen Sie die Netzwerkschnittstellenbelastung
  • Prüfen Sie die Leistung des Protokollservers

Hochverfügbarkeitsarchitektur

  • Konfigurieren Sie mehrere Protokollserver
  • Verwenden Sie Lastverteilung
  • Implementieren Sie Protokollsicherung

Fazit

Syslog ist ein leistungsfähiges Werkzeug für die zentralisierte Protokollsammlung. Durch ordnungsgemäße Konfiguration dieses Systems können Sie Ereignisse in Ihrer Infrastruktur effektiv überwachen und analysieren. Denken Sie an Sicherheit und Skalierbarkeit, wenn Sie Ihre Protokollsystemarchitektur planen.