Der Vollständigkeit halber möchte ich einen Unterschied hinzufügen, der sich auf Sie auswirken kann oder nicht. syslog-ng benutzt fopen, während rsyslog fappend benutzt. Dies ist wichtig, wenn Sie chattr +aIhre Syslog-Dateien. Die meisten Leute machen das nicht, ich hatte nur einen speziellen Anwendungsfall und so habe ich es herausgefunden. Ich habe gerade viele Leute erschaudern lassen.
Aaron
Antworten:
52
Grundsätzlich sind sie alle gleich, da sie alle die Protokollierung von Daten verschiedener Systemtypen in einem zentralen Repository ermöglichen.
Es handelt sich jedoch um drei verschiedene Projekte, bei denen jedes Projekt versucht, das vorherige mit mehr Zuverlässigkeit und Funktionalität zu verbessern.
Das SyslogProjekt war das allererste Projekt. Es begann 1980. Es ist das Stammprojekt zum SyslogProtokollieren. Derzeit ist Syslog ein sehr einfaches Protokoll. Anfangs wird nur UDP für den Transport unterstützt, so dass die Zustellung der Nachrichten nicht garantiert wird.
Als nächstes kam syslog-ng1998. Es erweitert das Basisprotokoll syslogmit neuen Funktionen wie:
inhaltsbasiertes Filtern
Direkt in eine Datenbank einloggen
TCP für den Transport
TLS-Verschlüsselung
Das nächste kam Rsyslogim Jahr 2004. Es erweitert das syslogProtokoll mit neuen Funktionen wie:
Unterstützung des RELP-Protokolls
Unterstützung für gepufferte Operationen
Nehmen wir an, es handelt sich heute um drei gleichzeitig laufende Projekte, die nach Versionen getrennt gewachsen sind, aber auch parallel zu den Aktivitäten der Nachbarn gewachsen sind.
Ich persönlich denke, dass heute syslog-ngin den meisten Fällen die Referenz ist, da es sich um das ausgereifteste Projekt handelt, das neben einer einfachen und umfassenden Einrichtung und Konfiguration die wichtigsten Funktionen bietet, die Sie möglicherweise benötigen.
Hierbei handelt es sich um drei verschiedene Arten von Protokollmanagern: Ihr System kann Filter erfassen und Protokolle ü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 Einrichtung und Schweregrad in Dateien und über das Netzwerk (TCP, UDP) umleiten.
rsyslogist eine "erweiterte" Version, in der sysklogddie Konfigurationsdatei unverändert bleibt (Sie können eine syslog.confDatei direkt in die Datei kopieren, rsyslog.confund sie funktioniert). Aber du hast eine Menge neuer cooler Sachen dabei:
Sie können TCP / UDP / ... -Verbindungen mit Einschränkungen (Ports, Quell-IPs) überwachen.
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" für die Datei closed.log gekennzeichnet ist).
Sie können Nachrichten nach einer oder mehreren Regeln verwerfen. Besuchen Sie http://www.rsyslog.com, was in der Tat sehr gut ist
Syslog-ng ist "Next-Gen". Ich denke, es ist der beste Weg, um Protokolle zu verwalten: Alles ist ein Objekt (Quelle, Ziel, Filter und die Weiterleitungsregel) und die Syntax ist klar. Ich bezweifle in Bezug auf die Funktionalität, dass rsyslogund syslog-ngsind unterschiedlich.
Ich würde argumentieren, dass sowohl syslog-ng als auch rsyslog 'next gen' sind, oder zumindest der neuere Ersatz für das ältere Syslog. Beide sind in Bezug auf die Funktionen vergleichbar, aber die Syntax für beide ist sehr unterschiedlich. syslog-ng hat eine eigene eindeutige Syntax, während die Syntax von rsyslog eher der älteren Syslog-Syntax entspricht.
Stefan Lasiewski
9
Und dann gibt es journalctl/journald
Mausy5043
9
Woher bekomme ich den Quellcode für syslog ()
Dies wird von glibc oder den libc-Implementierungen auf anderen Unix-Versionen bereitgestellt . Dieser Aufruf sendet Ihre Nachricht im Grunde genommen an die Syslog-Unix-Domain Socket / dev / log. Dieser Socket wird normalerweise vom Systemlogger erstellt (z. B. rsyslog, syslog-ng, nxlog usw.).
Sie sind alle Syslog-Daemons, bei denen rsyslog und syslog-ng schneller und funktionsreicher sind als das (meist nicht gewartete) traditionelle Syslogd. syslog-ng wurde von Grund auf neu gestartet (mit einem anderen Konfigurationsformat), während rsyslog ursprünglich ein Zweig von syslogd war und dessen 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 sich auf die Einzelheiten einzulassen und Flammenkriege auszulösen.
chattr +a
Ihre Syslog-Dateien. Die meisten Leute machen das nicht, ich hatte nur einen speziellen Anwendungsfall und so habe ich es herausgefunden. Ich habe gerade viele Leute erschaudern lassen.Antworten:
Grundsätzlich sind sie alle gleich, da sie alle die Protokollierung von Daten verschiedener Systemtypen in einem zentralen Repository ermöglichen.
Es handelt sich jedoch um drei verschiedene Projekte, bei denen jedes Projekt versucht, das vorherige mit mehr Zuverlässigkeit und Funktionalität zu verbessern.
Das
Syslog
Projekt war das allererste Projekt. Es begann 1980. Es ist das Stammprojekt zumSyslog
Protokollieren. Derzeit ist Syslog ein sehr einfaches Protokoll. Anfangs wird nur UDP für den Transport unterstützt, so dass die Zustellung der Nachrichten nicht garantiert wird.Als nächstes kam
syslog-ng
1998. Es erweitert das Basisprotokollsyslog
mit neuen Funktionen wie:Das nächste kam
Rsyslog
im Jahr 2004. Es erweitert dassyslog
Protokoll mit neuen Funktionen wie:Nehmen wir an, es handelt sich heute um drei gleichzeitig laufende Projekte, die nach Versionen getrennt gewachsen sind, aber auch parallel zu den Aktivitäten der Nachbarn gewachsen sind.
Ich persönlich denke, dass heute
syslog-ng
in den meisten Fällen die Referenz ist, da es sich um das ausgereifteste Projekt handelt, das neben einer einfachen und umfassenden Einrichtung und Konfiguration die wichtigsten Funktionen bietet, die Sie möglicherweise benötigen.quelle
Hierbei handelt es sich um drei verschiedene Arten von Protokollmanagern: Ihr System kann Filter erfassen und Protokolle übertragen / speichern.
Syslog
(Daemon auch benanntsysklogd
) ist das Standard-LM in gängigen Linux-Distributionen. Leicht, aber nicht sehr flexibel, können Sie den Protokollfluss nach Einrichtung und Schweregrad in Dateien und über das Netzwerk (TCP, UDP) umleiten.rsyslog
ist eine "erweiterte" Version, in dersysklogd
die Konfigurationsdatei unverändert bleibt (Sie können einesyslog.conf
Datei direkt in die Datei kopieren,rsyslog.conf
und sie funktioniert). Aber du hast eine Menge neuer cooler Sachen dabei:Syslog-ng ist "Next-Gen". Ich denke, es ist der beste Weg, um Protokolle zu verwalten: Alles ist ein Objekt (Quelle, Ziel, Filter und die Weiterleitungsregel) und die Syntax ist klar. Ich bezweifle in Bezug auf die Funktionalität, dass
rsyslog
undsyslog-ng
sind unterschiedlich.quelle
journalctl
/journald
Dies wird von glibc oder den libc-Implementierungen auf anderen Unix-Versionen bereitgestellt . Dieser Aufruf sendet Ihre Nachricht im Grunde genommen an die Syslog-Unix-Domain Socket / dev / log. Dieser Socket wird normalerweise vom Systemlogger erstellt (z. B. rsyslog, syslog-ng, nxlog usw.).
quelle
Sie sind alle Syslog-Daemons, bei denen rsyslog und syslog-ng schneller und funktionsreicher sind als das (meist nicht gewartete) traditionelle Syslogd. syslog-ng wurde von Grund auf neu gestartet (mit einem anderen Konfigurationsformat), während rsyslog ursprünglich ein Zweig von syslogd war und dessen 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 sich auf die Einzelheiten einzulassen und Flammenkriege auszulösen.
Syslog ist im Allgemeinen ziemlich verwirrend, da es sich um mehrere Dinge handeln kann. Ich hatte einen Versuch, hier zu disambiguieren: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/
quelle