Richten Sie einen zentralisierten Protokollserver mit RSYSLog in CentOS/RHEL 8 ein

Richten Sie einen zentralisierten Protokollserver mit RSYSLog in CentOS/RHEL 8 ein

Damit ein Systemadministratoren Probleme auf a erkennen oder analysieren können Centos 8 oder Rhel 8 Der Server ist wichtig, die Ereignisse, die in einem bestimmten Zeitraum auf dem Server aufgetreten sind /var/log das Verzeichnis im System.

Der Syslog (Systemprotokollprotokoll) System auf dem Server kann als zentraler Protokollüberwachungspunkt über ein Netzwerk fungieren, in dem alle Server, Netzwerkgeräte, Switches, Router und interne Dienste, die Protokolle erstellen, unabhängig davon.

Auf einen CentOS/Rhel 8 Server, Rsyslog Daemon ist der wichtigste Protokollserver, der standardmäßig vorinstalliert wird, gefolgt von Systemd Journal Dämon (Journald).

Rsyslog ist ein Open-Source-Dienstprogramm, das als Client/Server-Architekturdienst entwickelt wurde und beide Rollen unabhängig voneinander erreichen kann. Es kann als Server ausgeführt werden und alle von anderen Geräten über das Netzwerk übertragenen Protokolle sammeln oder als Client ausgeführt werden, indem alle internen Systemereignisse an eine Remote gesendet werden Syslog Server.

Anforderungen

  1. Installation von “CentOS 8.0 "mit Screenshots
  2. Installation von RHEL 8 mit Screenshots

Um einen zentralen Protokollserver auf a einzurichten CentOS/Rhel 8 Server müssen Sie überprüfen, ob die bestätigt werden /var Die Partition verfügt über genügend Speicherplatz (ein paar GB -Minimum), um alle aufgezeichneten Protokolldateien auf dem System zu speichern, die von anderen Geräten im Netzwerk gesendet werden. Ich empfehle Ihnen, ein separates Laufwerk zu haben (LVM oder ÜBERFALLEN) um die zu montieren /var/log/log/ Verzeichnis.

So konfigurieren Sie den Rsyslog -Server in CentOS/RHEL 8

1. Wie ich sagte, Rsyslog Der Service wird installiert und automatisch ausgeführt in CentOS/Rhel 8 Server. Um zu überprüfen, ob der Daemon im System ausgeführt wird, führen Sie den folgenden Befehl aus.

# SystemCTL Status RsysLog.Service 
Überprüfen Sie den Rsyslog -Status in CentOS 8

Wenn der Dienst standardmäßig nicht ausgeführt wird, führen Sie den folgenden Befehl aus, um zu starten rsyslog Dämon.

# SystemCTL Start RsysLog.Service 

2. Wenn der Rsyslog Das Dienstprogramm ist standardmäßig nicht auf dem System installiert, das Sie als zentraler Protokollierungsserver verwenden möchten, den folgenden DNF -Befehl ausführen, um das RSYSLog -Paket zu installieren und den Daemon zu starten.

# DNF Installation RSYSLOG # SystemCTL Start Rsyslog.Service 

3. Einmal Rsyslog Das für das Dienstprogramm installierte Dienstprogramm können nun RsysLog als zentralisierten Protokollierungsserver konfigurieren, indem Sie die Hauptkonfigurationsdatei öffnen /etc/rsyslog.Conf, Um Protokollnachrichten für externe Clients zu erhalten.

# vi /etc /rsyslog.Conf 

Im /etc/rsyslog.Conf Konfigurationsdatei, finden und in Überzeugung die folgenden Zeilen, um den UDP -Transportempfang an die zu gewähren Rsyslog Server via 514 Hafen. Rsyslog verwendet den Standard UDP Protokoll für die Protokollübertragung.

Modul (Load = "IMUDP") # muss nur einmal eingegeben werden (Typ = "IMUDP" port = "514") 
Konfigurieren Sie den Rsyslog -Server in CentOS 8

4. Das UDP -Protokoll hat das nicht TCP Overhead, und es macht die Datenübertragung schneller als die TCP Protokoll. Andererseits die UDP Das Protokoll garantiert nicht die Zuverlässigkeit übertragener Daten.

Wenn Sie jedoch verwenden möchten TCP Protokoll für den Protokollempfang Sie müssen die folgenden Zeilen in der finden und sichtbar machen /etc/rsyslog.Conf Die Konfigurationsdatei, um Rsyslog -Daemon so zu konfigurieren, dass sie einen TCP -Socket anbinden und anhören 514 Hafen.

Modul (Load = "IMTCP") # muss nur einmal eingegeben werden (Typ = "IMTCP" port = "514") 

5. Erstellen Sie nun eine neue Vorlage zum Empfangen von Remote -Nachrichten, da diese Vorlage den lokalen RSYSLog -Server leitet, wo die empfangenen Nachrichten von Syslog -Netzwerkclients gesendet werden sollen.

$ template remotelogs "/var/log/%hostname%/%Programmname%.Protokoll" *.* ?Remotelogien 
Erstellen Sie Vorlage für den RSYSLog -Server

Der $ template remotelogs Direktive Guides rsyslog -Daemon zum Sammeln und Schreiben aller übertragenen Protokollnachrichten in verschiedene Dateien, basierend auf dem Client -Namen und der Remote -Client -Anwendung, die die Nachrichten basierend auf den in der Vorlagenkonfiguration hinzugefügten Eigenschaften erstellt haben: %Hostname%und%Programmname%.

Alle empfangenen Protokolldateien werden in das lokale Dateisystem in eine zugewiesene Datei geschrieben /var/log/log/ Verzeichnis.

Der & ~ Umleitungsregel leitet den lokalen RSYSLog -Server so, dass die empfangene Protokollnachricht weiter verarbeitet und die Nachrichten entfernen (schreiben Sie sie nicht in interne Protokolldateien).

Der Remotelogien ist ein willkürlicher Name, der dieser Vorlagenanweisung gegeben wird. Sie können den Namen verwenden, den Sie für Ihre Vorlage am besten geeignet sind.

Um komplexere RSYSLog -Vorlagen zu konfigurieren Mann Rsyslog.Conf Befehl oder konsultieren Sie Rsyslog Online -Dokumentation.

# Mann Rsyslog.Conf 

6. Nachdem Sie die oben genannten Konfigurationsänderungen vorgenommen haben, können Sie den Rsyslog -Daemon neu starten, um die jüngsten Änderungen anzuwenden, indem Sie den folgenden Befehl ausführen.

# Service Rsyslog Neustart 

7. Sobald Sie das neu gestartet haben Rsyslog Server sollte nun als zentraler Protokollserver fungieren und Nachrichten von Syslog -Clients aufzeichnen. Um die RSYSLog -Netzwerkhöhlen zu bestätigen, führen Sie den Befehl netstat aus und verwenden.

# netstat -tulpn | Grep Rsyslog 

Wenn Netstat -Befehl nicht intallieren Centos 8, Sie können es über den folgenden Befehl installieren.

# DNF Was stellt Netstat # DNF ein 
Überprüfen Sie Rsyslog -Hörstecke

8. Wenn Sie haben Selinux aktiv in CentOS/Rhel 8, Führen Sie den folgenden Befehl aus, um den RSYSLog -Verkehr je nach Netzwerk -Socket -Typ zu ermöglichen.

# Semanage Port -a -t syslogd_port_t -p udp 514 # semanage port -a -t syslogd_t_t -p tcp 514 

Wenn Semanage Command nicht installieren Centos 8, Sie können es über den folgenden Befehl installieren.

# DNF What Provides Semanage # DNF Installation PolicyCoreutils-Python-Utils 

9. Wenn Sie über eine Firewall auf dem System aktiv sind, führen Sie den folgenden Befehl aus, um die erforderlichen Regeln für die Ermöglichung des Rsyslog -Datenverkehrs auf Ports in Firewall hinzuzufügen.

# Firewall-CMD --permanent --add-Port = 514/TCP # Firewall-CMD --Permanent --add-Port = 514/UDP # Firewall-CMD--Reload 

Sie können auch eingehende Verbindungen am Port einschränken 514 von Whitelisted IP -Bereichen wie gezeigt.

# Firewall-CMD --permanent --add-Rich-Rule 'Rule Family = "IPv4" Quelladress = "123.123.123.0/21"port port =" 514 "protocol =" tcp "akzeptieren ' # firewall-cmd --permanent --add-reichen RULE' Rule Family =" ipv4 "Source Address ="123.123.123.0/21"port port =" 514 "protocol =" udp "akzeptieren ' # Firewall-cmd-Reload 

Das ist alles! Rsyslog ist jetzt als zentralisierter Protokollserver konfiguriert und kann Protokolle von Remote -Clients sammeln. Im nächsten Artikel werden wir sehen, wie der Rsyslog -Client auf konfiguriert wird CentOS/Rhel 8 Server.