Ich bin etwas verwirrt bezüglich Syslog, Rsyslog und Syslog-ng.
Woher bekomme ich den Quellcode dafür syslog()
?
Gibt es einen Unterschied zwischen rsyslog und rsyslogd?
Antwort1
Im Grunde sind sie alle gleich, da sie alle die Protokollierung von Daten aus unterschiedlichen Systemtypen in einem zentralen Repository ermöglichen.
Es handelt sich jedoch um drei unterschiedliche Projekte, wobei jedes Projekt versucht, das vorherige durch mehr Zuverlässigkeit und Funktionalität zu verbessern.
Das Syslog
Projekt war das allererste. Es begann 1980. Es ist das Stammprojekt des Syslog
Protokolls. Zu dieser Zeit ist Syslog ein sehr einfaches Protokoll. Zu Beginn unterstützt es nur UDP für den Transport, sodass die Zustellung der Nachrichten nicht garantiert ist.
Das nächste kam syslog-ng
1998. Es erweitert das Basisprotokoll syslog
um neue Funktionen wie:
- Inhaltsbasierte Filterung
- Direktes Anmelden bei einer Datenbank
- TCP für den Transport
- TLS-Verschlüsselung
Das nächste kam Rsyslog
im Jahr 2004. Es erweitert syslog
das Protokoll um neue Funktionen wie:
- Unterstützung des RELP-Protokolls
- Unterstützung für gepufferte Operationen
Nehmen wir an, dass es sich heute um drei parallel laufende Projekte handelt, die in Bezug auf die Versionen getrennt voneinander gewachsen sind, sich aber auch im Hinblick auf die Aktivitäten der Nachbarn parallel entwickelt haben.
Ich persönlich denke, dass die heutige Version syslog-ng
in den meisten Fällen die Referenz darstellt, da es sich um das ausgereifteste Projekt handelt, das die wichtigsten Funktionen bietet, die Sie möglicherweise benötigen, sowie eine einfache und umfassende Einrichtung und Konfiguration.
Antwort2
Dies sind drei verschiedene Arten von Protokollmanagern: Sie ermöglichen Ihrem System, Protokolle zu sammeln, zu filtern und zu übertragen/speichern.
Syslog
(Daemon, auch genanntsysklogd
) ist der Standard-LM in gängigen Linux-Distributionen. Leicht, aber nicht sehr flexibel. Sie können den Protokollfluss sortiert nach Einrichtung und Schweregrad in Dateien und über das Netzwerk (TCP, UDP) umleiten.rsyslog
ist eine „erweiterte“ Version,sysklogd
bei der die Konfigurationsdatei gleich bleibt (Sie können einesyslog.conf
Datei direkt hineinkopierenrsyslog.conf
und es funktioniert); aber es kommen viele coole neue Sachen damit:- Sie können TCP/UDP/...-Verbindungen abhören, mit Einschränkungen (Ports, Quell-IPs)
- Sie können viele Module laden
- Sie können die Protokollfilterung nach Programm, Quelle, Nachricht, PID usw. unterscheiden (zum Beispiel wird jede Nachricht, die mit der Meldung „Verbindung geschlossen“ markiert ist, in die Datei „closed.log“ geschrieben).
- Sie können Nachrichten nach einer oder mehreren Regeln verwerfen. Besuchenhttp://www.rsyslog.comwas wirklich sehr gut ist
Syslog-ng ist „Next-Gen“. Ich denke, es ist die beste Möglichkeit, Protokolle zu verwalten: alles ist Objekt (Quelle, Ziel, Filter und die Weiterleitungsregel selbst) und die Syntax ist klar. Ich bezweifle, dass es in Bezug auf die Funktionalität Unterschiede zwischen
rsyslog
undsyslog-ng
gibt.
Antwort3
Woher bekomme ich den Quellcode für syslog()
Dies wird bereitgestellt durchglibcoder die libc-Implementierungen auf anderen Unix-Varianten. Dieser Aufruf sendet Ihre Nachricht grundsätzlich an den Syslog-Unix-Domänen-Socket /dev/log. Dieser Socket wird normalerweise vom Systemlogger erstellt (z. B. rsyslog, syslog-ng, nxlog usw.).
Antwort4
Sie alle sind Syslog-Daemons, wobei rsyslog und syslog-ng schnellere und funktionsreichere Ersatzprogramme für das (meist nicht mehr gepflegte) traditionelle syslogd sind. syslog-ng begann von Grund auf (mit einem anderen Konfigurationsformat), während rsyslog ursprünglich ein Fork von syslogd war und dessen Syntax unterstützte und erweiterte. In den letzten Jahren begann rsyslog auch, ein neueres Konfigurationsformat zu unterstützen. Mittlerweile ist es wirklich schwierig, die beiden zu vergleichen, ohne in die Einzelheiten zu gehen und Flame-Wars auszulösen.
Syslog ist im Allgemeinen ziemlich verwirrend, da es mehrere Dinge sein kann. Ich habe versucht, es hier klarzustellen:https://sematext.com/blog/2017/01/30/was-ist-syslog-daemons-message-formats-and-protocols/