GNU/Linux >> LINUX-Kenntnisse >  >> Linux

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

Lösung 1:

Grundsätzlich sind sie alle gleich, da sie alle das Protokollieren von Daten aus verschiedenen Arten von Systemen in einem zentralen Repository ermöglichen.

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

Der Syslog Projekt war das allererste Projekt. Es begann 1980. Es ist das Stammprojekt von Syslog Protokoll. Derzeit ist Syslog ein sehr einfaches Protokoll. Es unterstützt anfangs nur UDP für den Transport, garantiert also nicht die Zustellung der Nachrichten.

Als nächstes kam syslog-ng im Jahr 1998. Es erweitert grundlegende syslog Protokoll mit neuen Features wie:

  • inhaltsbasierte Filterung
  • Direktes Einloggen in eine Datenbank
  • TCP für den Transport
  • TLS-Verschlüsselung

Als nächstes kam Rsyslog im Jahr 2004. Es erweitert syslog Protokoll mit neuen Features wie:

  • Unterstützung des RELP-Protokolls
  • Unterstützung für gepufferten Betrieb

Nehmen wir an, dass es sich heute um drei gleichzeitig laufende Projekte handelt, die separat mit Versionen gewachsen sind, aber auch parallel gewachsen sind in Bezug auf das, was die Nachbarn taten.

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

Lösung 2:

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

  • Syslog (Daemon auch mit dem Namen sysklogd ) ist das 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 von sysklogd wobei die Konfigurationsdatei dieselbe bleibt (Sie können eine 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 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. diskriminieren (zB jede Nachricht, die mit der Nachricht "Verbindung geschlossen" zur Datei closed.log getaggt ist)
    • Sie können die Nachricht 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, Protokolle zu verwalten:Alles ist Objekt (Quelle, Ziel, Filter und die eigentliche Weiterleitungsregel) und die Syntax ist klar. Ich bezweifle in Bezug auf die Funktionalität, dass rsyslog und syslog-ng sind unterschiedlich.

Lösung 3:

Woher bekomme ich den Quellcode für syslog()

Dies wird von glibc oder den libc-Implementierungen auf anderen Unix-Varianten bereitgestellt. Dieser Aufruf übermittelt Ihre Nachricht grundsätzlich an den Syslog-Unix-Domain-Socket /dev/log. Dieser Socket wird normalerweise vom System-Logger erstellt (z. B. rsyslog, syslog-ng, nxlog usw.).

Lösung 4:

Sie alle sind Syslog-Daemons, wobei rsyslog und syslog-ng schnellere und funktionsreichere Ersetzungen für das (größtenteils ungepflegte) traditionelle syslogd sind. syslog-ng wurde von Grund auf neu gestartet (mit einem anderen Konfigurationsformat), während rsyslog ursprünglich ein Fork von syslogd war, der seine Syntax unterstützt und erweitert. In den letzten Jahren hat rsyslog begonnen, auch ein neueres Konfigurationsformat zu unterstützen. Inzwischen ist es wirklich schwierig, die beiden zu vergleichen, ohne auf die genauen Einzelheiten einzugehen und Flammenkriege zu beginnen.

Syslog im Allgemeinen ist ziemlich verwirrend, da es mehrere Dinge sein kann. Ich hatte hier einen Versuch zur Begriffsklärung:https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/


Linux
  1. Der Unterschied zwischen [[ $a ==Z* ]] und [ $a ==Z* ]?

  2. Was ist der Unterschied zwischen Redhat und CentOS?

  3. Was ist der Unterschied zwischen insmod und modprobe

  4. Was ist der Unterschied zwischen Mutex und kritischem Abschnitt?

  5. Was ist der Unterschied zwischen strtok_r und strtok_s in C?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen $(CC) und $CC?