Frage Was ist der Unterschied zwischen syslog, rsyslog und syslog-ng?


Ich bin ein wenig verwirrt in Syslog, Rsyslog und Syslog-ng.

Woher bekomme ich den Quellcode? syslog()?

Gibt es einen Unterschied zwischen rsyslog und rsyslogd?


44
2018-05-15 14:18


Ursprung


Rsyslogd mit dem D-Buchstaben ist der Rsyslogd-Daemon - c4f4t0r
Der Vollständigkeit halber füge ich einen Unterschied hinzu, den ich gefunden habe, der dich beeinflussen kann oder nicht. syslog-ng verwendet fopen, während rsyslog fappend verwendet. Das ist wichtig, wenn Sie chattr +a Ihre Syslog-Dateien. Die meisten Leute tun das nicht, ich hatte nur einen speziellen Anwendungsfall und so habe ich es herausgefunden. Ich habe gerade eine Menge Leute dazu gebracht, zusammenzucken. - Aaron


Antworten:


Grundsätzlich sind sie alle gleich, da sie alle das Protokollieren von Daten verschiedener Systemtypen in einem zentralen Repository ermöglichen.

Aber es sind drei verschiedene Projekte, wobei jedes Projekt versucht, das vorherige mit mehr Zuverlässigkeit und Funktionalität zu verbessern.

Das Syslog Projekt war das allererste Projekt. Es begann im Jahr 1980. Es ist das Root-Projekt zu Syslog Protokoll. Zu diesem Zeitpunkt ist Syslog ein sehr einfaches Protokoll. Zu Beginn unterstützt es nur UDP für den Transport, so dass es die Zustellung der Nachrichten nicht garantiert.

Als nächstes kam syslog-ng 1998. Es erweitert sich grundlegend syslog Protokoll mit neuen Funktionen wie:

  • Inhaltsbasierte Filterung
  • Direkt in eine Datenbank einloggen
  • TCP für den Transport
  • TLS-Verschlüsselung

Als nächstes kam Rsyslog im Jahr 2004. Es erstreckt sich syslog Protokoll mit neuen Funktionen wie:

  • Unterstützung des RELP-Protokolls
  • Gepufferte Operationsunterstützung

Nehmen wir an, dass es sich heute um drei gleichlaufende Projekte handelt, die getrennt nach Versionen wachsen, aber auch parallel dazu wachsen, was die Nachbarn tun.

Ich persönlich denke das heute syslog-ng ist in den meisten Fällen die Referenz, da es das ausgereifteste Projekt ist, das neben einer einfachen und umfassenden Einrichtung und Konfiguration die Hauptfunktionen bietet, die Sie möglicherweise benötigen.


39
2018-05-15 15:35



Für den Eintrag kann OpenBSD Syslog TCP und TLS (und UDP) tun - Neil McGuigan


Dies sind drei verschiedene Arten von Protokollmanagern: Sie ermöglichen Ihrem System, Filter zu erfassen und Protokolle zu übertragen / speichern.

  • Syslog (Daemon auch benannt sysklogd) ist das Standard-LM in gängigen Linux-Distributionen. Leicht, aber nicht sehr flexibel, können Sie den Protokollfluss nach Funktion und Schweregrad in Dateien und über das Netzwerk (TCP, UDP) umleiten.
  • rsyslog ist eine "erweiterte" Version von sysklogd wo die Konfigurationsdatei gleich bleibt (Sie können ein syslog.conf Datei direkt in rsyslog.conf und es funktioniert) ; aber du hast eine Menge neuer cooler Sachen dabei:

    • Sie können TCP / UDP / ... Verbindungen mit Einschränkungen (Ports, Source IPs) abhören
    • Sie können viele Module laden
    • Sie können die Protokollfilterung nach Programm, Quelle, Nachricht, PID usw. unterscheiden (z. B. jede Nachricht, die mit der Nachricht "connexion closed" mit der Datei closed.log versehen ist)
    • Sie können Nachrichten nach einer oder mehreren Regeln verwerfen Besuch http://www.rsyslog.com Das ist wirklich sehr gut
  • Syslog-ng ist "Next-Gen". Ich denke, es ist der beste Weg, um Logs zu verwalten: Alles ist Objekt (Quelle, Ziel, Filter und die Regel für die Weiterleitung) und die Syntax ist klar. Ich bezweifle in Bezug auf Funktionalität, dass rsyslog und syslog-ng sind anders.


26
2018-05-15 15:21



Ich würde argumentieren, dass sowohl syslog-ng als auch rsyslog "next gen" oder zumindest der neuere Ersatz für das ältere syslog sind. Beide sind hinsichtlich der Merkmale vergleichbar, aber die Syntax für beide ist sehr unterschiedlich. syslog-ng hat eine eigene Syntax, während rsyslogs Syntax eher der älteren syslog-Syntax entspricht. - Stefan Lasiewski
Und dann ist da journalctl/journald - Mausy5043


Woher bekomme ich den Quellcode für syslog ()

Dies wird durch zur Verfügung gestellt glibc oder die libc-Implementierungen in anderen Unix-Varianten. Bei diesem Aufruf wird Ihre Nachricht im Grunde an die Syslog-Unix-Domain-Socket / dev / log gesendet. Dieser Socket wird normalerweise von der Systemprotokollfunktion erstellt (z. B. rsyslog, syslog-ng, nxlog usw.).


6
2018-06-07 15:17





Sie sind alle syslog-Dämonen, wobei rsyslog und syslog-ng schnellere und funktionsreichere Ersetzungen für den (meist nicht gepflegten) traditionellen syslogd sind. syslog-ng wurde von Grund auf neu gestartet (mit einem anderen Konfigurationsformat), während rsyslog ursprünglich eine Abzweigung von syslogd war und seine Syntax unterstützte und erweiterte. In den letzten Jahren hat rsyslog begonnen, auch ein neueres Konfigurationsformat zu unterstützen. Inzwischen ist es wirklich schwierig, die beiden zu vergleichen, ohne in die Einzelheiten zu gehen und Feuerkriege zu beginnen.

Syslog im Allgemeinen ist ziemlich verwirrend, da es mehrere Dinge sein können. Ich hatte eine Chance hier zu disambiguieren: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/


1
2018-06-26 10:22