Richten Sie einen zentralen Protokollserver mit Rsyslog in CentOS / RHEL 8 ein

Damit ein Systemadministrator Probleme auf einem erkennen oder analysieren kann CentOS 8 oder RHEL 8 Server ist es wichtig, die Ereignisse, die in einem bestimmten Zeitraum auf dem Server aufgetreten sind, anhand der in gefundenen Protokolldateien zu kennen und anzuzeigen /var/log das Verzeichnis im System.

Das Syslog (Systemprotokollierungsprotokoll) Das System auf dem Server kann als zentraler Protokollüberwachungspunkt über ein Netzwerk fungieren, an dem alle Server, Netzwerkgeräte, Switches, Router und internen Dienste, die Protokolle erstellen, unabhängig davon, ob sie mit dem jeweiligen internen Problem verknüpft sind oder nur informative Nachrichten, ihre Protokolle senden können.

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

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

Bedarf

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

Um einen zentralen Protokollserver auf einem einzurichten CentOS / RHEL 8 Server müssen Sie überprüfen und bestätigen, dass die /var Die Partition verfügt über genügend Speicherplatz (mindestens einige GB), 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 RAID), um die zu montieren /var/log/ Verzeichnis.

So konfigurieren Sie Rsyslog Server in CentOS / RHEL 8


1. Wie ich sagte, Rsyslog Dienst wird installiert und läuft automatisch in CentOS / RHEL 8 Server. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Dämon im System ausgeführt wird.

# systemctl status rsyslog.service
Überprüfen Sie den Rsyslog-Status in CentOS 8
Überprüfen Sie den Rsyslog-Status in CentOS 8

Wenn der Dienst nicht standardmäßig ausgeführt wird, führen Sie zum Starten den folgenden Befehl aus rsyslog Daemon.

# systemctl start rsyslog.service

2. Wenn die Rsyslog Das Dienstprogramm ist standardmäßig nicht auf dem System installiert, das Sie als zentraler Protokollierungsserver verwenden möchten. Führen Sie den folgenden Befehl dnf aus, um das Paket rsyslog zu installieren und den Dämon zu starten.

# dnf install rsyslog
# systemctl start rsyslog.service

3. Einmal Rsyslog Wenn Sie das Dienstprogramm installiert haben, können Sie rsyslog jetzt als zentralen Protokollierungsserver konfigurieren, indem Sie die Hauptkonfigurationsdatei öffnen /etc/rsyslog.conf, um Protokollnachrichten für externe Clients zu empfangen.

# vi /etc/rsyslog.conf

In dem /etc/rsyslog.conf In der Konfigurationsdatei finden und kommentieren Sie die folgenden Zeilen, um dem UDP-Transportempfang zu gewähren Rsyslog Server über 514 Hafen. Rsyslog verwendet den Standard UDP Protokoll für die Protokollübertragung.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
Konfigurieren Sie Rsyslog Server in CentOS 8
Konfigurieren Sie 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. Auf der anderen Seite die UDP Das Protokoll garantiert nicht die Zuverlässigkeit der übertragenen Daten.

Wenn Sie jedoch verwenden möchten TCP Protokoll für den Protokollempfang Sie müssen die folgenden Zeilen im finden und auskommentieren /etc/rsyslog.conf die Konfigurationsdatei, um den Rsyslog-Daemon so zu konfigurieren, dass er einen TCP-Socket bindet und abhört 514 Hafen.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Erstellen Sie jetzt eine neue Vorlage für den Empfang von Remote-Nachrichten, da diese Vorlage den lokalen Rsyslog-Server anleitet, auf dem die von Syslog-Netzwerkclients gesendeten empfangenen Nachrichten gespeichert werden.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs
Vorlage für Rsyslog Server erstellen
Vorlage für Rsyslog Server erstellen

Das $template RemoteLogs Die Direktive führt den Rsyslog-Dämon zum Sammeln und Schreiben aller übertragenen Protokollnachrichten in verschiedene Dateien, basierend auf dem Clientnamen und der Remoteclientanwendung, die die Nachrichten basierend auf den in der Vorlagenkonfiguration hinzugefügten Eigenschaften erstellt haben: %HOSTNAME% and %PROGRAMNAME%.

Alle empfangenen Protokolldateien werden in eine zugewiesene Datei, die nach dem Hostnamen des Clientcomputers benannt ist, in das lokale Dateisystem geschrieben und dort gespeichert / Var / log / Verzeichnis.

Das & ~ Die Umleitungsregel weist den lokalen Rsyslog-Server an, die Verarbeitung der empfangenen Protokollnachricht weiter zu beenden und die Nachrichten zu entfernen (nicht in interne Protokolldateien zu schreiben).

Das RemoteLogs ist ein beliebiger Name für diese Vorlagenanweisung. Sie können einen beliebigen Namen verwenden, der für Ihre Vorlage am besten geeignet ist.

Um komplexere Rsyslog-Vorlagen zu konfigurieren, lesen Sie das Handbuch zur Rsyslog-Konfigurationsdatei, indem Sie das ausführen man rsyslog.conf befehlen oder konsultieren Rsyslog Online-Dokumentation.

# man rsyslog.conf

6. Nachdem Sie die obigen Konfigurationsänderungen vorgenommen haben, können Sie den Rsyslog-Daemon neu starten, um die letzten Änderungen zu übernehmen, indem Sie den folgenden Befehl ausführen.

# service rsyslog restart

7. Sobald Sie das neu gestartet haben Rsyslog Server sollte es nun als zentraler Protokollserver fungieren und Nachrichten von Syslog-Clients aufzeichnen. Führen Sie zum Bestätigen der Rsyslog-Netzwerksockets den Befehl netstat aus und filtern Sie mit dem Dienstprogramm grep die rsyslog-Zeichenfolge.

# netstat -tulpn | grep rsyslog 

Wenn Befehl netstat nicht installiert CentOS 8können Sie es mit dem folgenden Befehl installieren.

# dnf whatprovides netstat
# dnf install net-tools
Überprüfen Sie Rsyslog Listening Sockets
Überprüfen Sie Rsyslog Listening Sockets

8. Wenn Sie haben SELinux aktiv in CentOS / RHEL 8Führen Sie den folgenden Befehl aus, um den rsyslog-Verkehr abhängig vom Netzwerk-Socket-Typ zuzulassen.

# semanage port -a -t syslogd_port_t -p udp 514
# semanage port -a -t syslogd_port_t -p tcp 514

Wenn Semanage-Befehl nicht installieren auf CentOS 8können Sie es mit dem folgenden Befehl installieren.

# dnf whatprovides semanage
# dnf install policycoreutils-python-utils

9. Wenn auf dem System eine Firewall aktiv ist, führen Sie den folgenden Befehl aus, um die erforderlichen Regeln für das Zulassen von rsyslog-Datenverkehr an Ports in Firewalld 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 begrenzen 514 aus IP-Bereichen auf der Whitelist wie gezeigt.

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
# firewall-cmd --reload

Das ist alles! Rsyslog ist jetzt als zentraler Protokollserver konfiguriert und kann Protokolle von Remoteclients sammeln. Im nächsten Artikel erfahren Sie, wie Sie den Rsyslog-Client konfigurieren CentOS / RHEL 8 Server.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *