So richten Sie den zentralen Protokollierungsserver mit RSYSLog unter Linux ein

So richten Sie den zentralen Protokollierungsserver mit RSYSLog unter Linux ein

Protokolle sind eine kritische Komponente jeder Software oder eines Betriebssystems. Protokolle zeichnen normalerweise die Aktionen des Benutzers, Systemereignisse, Netzwerkaktivitäten und vieles mehr auf, je nachdem, wofür sie beabsichtigt sind. Eines der am häufigsten verwendeten Protokollierungssysteme auf Linux -Systemen ist rsyslog.

Rsyslog ist ein leistungsstarkes, sicheres und leistungsstarkes Protokollverarbeitungssystem, das Daten aus verschiedenen Quellentypen (Systeme/Anwendungen) akzeptiert und es in mehrere Formate ausgibt.

Es hat sich von einem regulären entwickelt Syslog Daemon zu einem vollwertigen Protokollierungssystem für Unternehmensebene. Es ist in einem Client/Server -Modell konzipiert und kann daher als Client und/oder als zentraler Protokollierungsserver für andere Server, Netzwerkgeräte und Remote -Anwendungen konfiguriert werden.

Testumgebung

Für diesen Leitfaden verwenden wir die folgenden Hosts:

  • Server: 192.168.241.140
  • Klient: 172.31.21.58

So installieren und konfigurieren Sie den Rsyslog -Server

Die meisten Linux -Verteilungen kommen mit dem rsyslog Paket vorinstalliert. Falls es nicht installiert ist, können Sie es mit Ihrem Linux -Paket -Manager -Tool wie gezeigt installieren.

$ sudo yum update && yum Installieren Sie Rsyslog #centos 7 $ sudo APT Update && APT Installieren Sie Rsyslog #ubuntu 16.04, 18.04 

Einmal rsyslog Installiert müssen Sie den Dienst vorerst starten, ihn aktivieren, um den Start automatisch zu starten, und überprüfen Sie den Status im Befehl systemctl.

$ sudo systemctl starten rsyslog $ sudo systemctl aktivieren rsyslog $ sudo systemctl Status rsyslog 

Die Haupt -RSYSLog -Konfigurationsdatei befindet sich unter /etc/rsyslog.Conf, Das lädt Module, definiert die globalen Anweisungen, enthält Regeln für die Verarbeitung von Protokollnachrichten und enthält auch alle Konfigurationsdateien in /etc/rsyslog.D/ Für verschiedene Anwendungen/Dienste.

$ sudo vim /etc /rsyslogog.Conf 

Standardmäßig, rsyslog verwendet die Imjournal Und Imusock Module zum Importieren strukturierter Protokollnachrichten von Systemd Journal und um Syslog -Nachrichten von Anwendungen zu akzeptieren, die auf dem lokalen System über Unix -Sockets ausgeführt werden.

Rsyslog -Module für die Protokollierung

Um rsyslog als Netzwerk-/zentraler Protokollierungsserver zu konfigurieren, müssen Sie das Protokoll festlegen (entweder UDP oder TCP oder beides) es wird für den Remote -Syslog -Empfang sowie für den Port, auf den er hört, verwendet.

Wenn Sie a verwenden möchten UDP Verbindung, die schneller, aber unzuverlässiger ist, suchen und kontrollieren Sie die folgenden Zeilen (ersetzen Sie 514 Mit dem Port, den Sie anhören möchten, sollte dies mit der Portadresse übereinstimmen, an die die Clients Nachrichten senden, werden wir dies mehr ansehen, wenn Sie einen RSYSlog -Client konfigurieren).

$ Modload iMUDP $ UDPSERVERRUN 514 

Benutzen TCP Verbindung (was langsamer, aber zuverlässiger ist), suchen und inkonkennt die folgenden Zeilen.

$ Modload IMTCP $ inputTCpServerrun 514 

In diesem Fall möchten wir gleichzeitig sowohl UDP- als auch TCP -Verbindungen verwenden.

Konfigurieren Sie den RSYSLog -Protokollierungsserver

Als nächstes müssen Sie die definieren Regelnsatz Zur Verarbeitung von Fernprotokollen im folgenden Format.

Einrichtung.Ziel des Sectority_Level (wo das Protokoll speichern) 

Wo:

  • Einrichtung: Ist eine Art von Prozess-/Anwendungsgenerierungsnachricht, sie enthalten Auth, Cron, Dämon, Kernel, Local0… Local77. Verwendung * bedeutet alle Einrichtungen.
  • Schweregrad: Ist Typ der Protokollnachricht: Emerg-0, Alert-1, Crit-2, ERR-3, Warn-4, Notno-5, Info-6, Debug-7. Verwendung * bedeutet alle Schweregradniveaus und keiner impliziert kein Schweregrad der Schwere.
  • Ziel: Ist entweder lokale Datei- oder Remote -RSYSLog -Server (definiert im Formular IP: Port).

Wir werden Folgendes verwenden Regelnsatz Zum Sammeln von Protokollen von Remote -Hosts die Verwendung der Remotelogien Vorlage. Beachten Sie, dass diese Regeln vor Regeln für die Verarbeitung lokaler Nachrichten erfolgen müssen, wie im Screenshot gezeigt.

$ template remotelogs "/var/log/%hostname%/%Programmname%.Protokoll" *.* ?Remotelogs & ~ 
Definieren

Betrachten Sie das oben genannte Regelnsatz, Die erste Regel ist "$ Template remotelogs",/var/log/%hostname%/%Programmname%.Protokoll"".

Die Richtlinie $ Vorlage sagt Rsyslog Daemon, alle empfangen /var/log, basierend auf Hostname (Client -Maschinenname) und Remote Client -Einrichtung (Programm/Anwendung), die die Nachrichten gemäß den in der Vorlage vorhandenen Einstellungen generiert haben Remotelogien.

Die zweite Zeile **.* ?Remotelogien “ bedeutet, Nachrichten aus allen Einrichtungen auf allen Schweregradniveaus aufzunehmen, indem sie die Remotelogien Vorlagenkonfiguration.

Die letzte Zeile "& ~" Weisen Sie Rsyslog an, die Verarbeitung der Nachrichten zu verhindern, sobald sie in eine Datei geschrieben wurden. Wenn Sie nicht einschließen "& ~", stattdessen werden Nachrichten in die lokalen Dateien geschrieben.

Es gibt viele andere Vorlagen, die Sie verwenden können. Weitere Informationen finden Sie auf der Seite rsyslog -Konfiguration (SeiteMann Rsyslog.Conf) oder beziehen Sie sich auf die Online -Dokumentation von Rsyslog.

Das ist es mit der Konfiguration des Rsyslog -Servers. Speichern und schließen Sie die Konfigurationsdatei. Um die jüngsten Änderungen anzuwenden, starten Sie Rsyslog -Daemon mit dem folgenden Befehl neu.

$ sudo systemctl starten rsyslog neu starten 

Überprüfen Sie nun die Rsyslog -Netzwerk -Sockets. Verwenden Sie das SS -Befehl (oder Netstat mit denselben Flags) Befehl und die Ausgabe in Grep übergeben, um Rsyslogd -Verbindungen herauszufiltern.

$ sudo ss -tulnp | Grep "Rsyslog" 
Überprüfen Sie den Status des Rsyslog -Netzwerks

Als nächstes auf Centos 7, Wenn Sie haben Selinux Aktivieren Sie die folgenden Befehle, um den Rsyslog -Datenverkehr basierend auf dem Netzwerk -Socket -Typ zu ermöglichen.

$ sudo semanage -a -t syslogd_port_t -p udp 514 $ sudo semanage -a -t syslogd_port_t -p tcp 514 

Wenn das System Firewall aktiviert ist, müssen Sie den Port öffnen 514 beides zulassen UDP/TCP Verbindungen zum Rsyslog -Server durch Ausführen.

------------- Auf Centos ------------- $ sudo firewall-cmd --permanent --add-port = 514/UDP $ sudo Firewall-cmd --permanent --add-port = 514/tcp $ sudo firewall-cmd--Reload ------------- Auf Ubuntu ------------- $ sudo ufw erlauben 514/udp $ sudo ufw erlauben 514/tcp $ sudo ufw reload 

So konfigurieren Sie den Rsyslog -Client zum Senden von Protokollen an Rsyslog Server

Überprüfen Sie nun im Client -System, ob der RSYSLog -Dienst ausgeführt wird oder nicht mit dem folgenden Befehl.

$ sudo systemctl Status Rsyslog 

Wenn es nicht installiert ist, installieren Sie ihn und starten Sie den Dienst wie zuvor gezeigt auf.

$ sudo yum update && yum Installieren Sie Rsyslog #centos 7 $ sudo APT Update && APT Installieren Sie Rsyslog #ubuntu 16.04, 18.04 $ sudo systemctl starten rsyslog $ sudo systemctl aktivieren rsyslog $ sudo systemctl Status rsyslog 

Wenn der RSYSLog -Dienst in Betrieb ist, öffnen Sie die Hauptkonfigurationsdatei, in der Sie Änderungen an der Standardkonfiguration durchführen.

$ sudo vim /etc /rsyslogog.Conf 

Fügen Sie diese Weiterleitungsregel am Ende der Datei hinzu, wie im folgenden Screenshot gezeigt, um den Rsyslog -Daemon zu zwingen und alle lokal generierten Protokollnachrichten an den Remote Rsyslog -Server weiterzuleiten.

*. * @@ 192.168.100.10: 514 
Konfigurieren Sie den Rsyslog -Client

Die obige Regel sendet Nachrichten aus allen Einrichtungen und auf allen Schweregradniveaus. Zum Beispiel Nachrichten aus einer bestimmten Einrichtung senden Auth, Verwenden Sie die folgende Regel.

Auth. * @@ 192.168.100.10: 514 

Speichern Sie die Änderungen und schließen Sie die Konfigurationsdatei. Um die obigen Einstellungen anzuwenden, starten Sie den Rsyslog -Daemon neu.

$ sudo systemctl starten rsyslog neu starten 

So überwachen Sie die Remote -Protokollierung auf dem Rsyslog -Server

Der letzte Schritt besteht darin, zu überprüfen /var/log, in der Form Hostname/Programmname.Protokoll.

Führen Sie einen LS -Befehl in die lange Auflistung des übergeordneten Protokollverzeichnisses aus und prüfen Sie, ob ein Verzeichnis aufgerufen wird IP-172.31.21.58 (oder was auch immer der Hostname Ihres Kundenautomats ist).

 $ ls -l/var/log/ 
Überprüfen Sie die Rsyslog -Client -Protokollierung

Wenn das Verzeichnis existiert, überprüfen Sie die darin enthaltenen Protokolldateien, indem Sie ausführen.

$ sudo ls -l/var/log/ip-172-31-21-58/ 
Überprüfen Sie die Rsyslog -Client -Protokolle
Zusammenfassung

Rsyslog ist ein leistungsstarkes Protokollverarbeitungssystem, das in einer Client/Server-Architektur entwickelt wurde. Wir hoffen, Sie können installieren und konfigurieren Rsyslog Als zentraler/Netzwerk -Protokollierungsserver und als Client, wie in diesem Handbuch gezeigt.

Möglicherweise möchten Sie auch auf relevante Rsyslog -Handbuchseiten verweisen, um mehr Hilfe zu erhalten. Fühlen Sie sich frei, uns Feedback zu geben oder Fragen zu stellen.