Rsyslog ist ein kostenloses und Open-Source-Protokollierungsdienstprogramm, das standardmäßig auf CentOS vorhanden ist 8 und RHEL 8 Systeme. Es bietet eine einfache und effektive Methode zum Zentralisieren von Protokollen von Client-Knoten zu einem einzigen zentralen Server. Die Zentralisierung von Protokollen ist in zweierlei Hinsicht vorteilhaft. Erstens vereinfacht es die Anzeige von Protokollen, da der Systemadministrator alle Protokolle von Remote-Servern von einem zentralen Punkt aus anzeigen kann, ohne sich bei jedem Clientsystem anzumelden, um die Protokolle zu überprüfen. Dies ist sehr vorteilhaft, wenn mehrere Server überwacht werden müssen, und zweitens müssen Sie sich im Falle eines Absturzes eines Remote-Clients keine Gedanken über den Verlust der Protokolle machen, da alle Protokolle auf dem zentralen rsyslog gespeichert werden Server . Rsyslog hat Syslog ersetzt, das nur UDP unterstützte Protokoll. Es erweitert das grundlegende Syslog-Protokoll um überlegene Funktionen wie die Unterstützung für beide UDP und TCP Protokolle beim Transport von Protokollen, erweiterte Filterfähigkeiten und flexible Konfigurationsoptionen. Lassen Sie uns jedoch untersuchen, wie der Rsyslog-Server in CentOS 8 / RHEL 8-Systemen konfiguriert wird.
Voraussetzungen
Wir werden den folgenden Laboraufbau haben, um den zentralisierten Protokollierungsprozess zu testen:
- Rsyslog-Server CentOS 8 Minimale IP-Adresse:10.128.0.47
- Client-System RHEL 8 Minimale IP-Adresse:10.128.0.48
Anhand des obigen Setups demonstrieren wir, wie Sie den Rsyslog-Server einrichten und später das Client-System konfigurieren können, um Protokolle zur Überwachung an den Rsyslog-Server zu senden.
Fangen wir an!
Konfigurieren des Rsyslog-Servers auf CentOS 8
Standardmäßig wird Rsyslog auf CentOS 8 / RHEL 8-Servern installiert. Um den Status von Rsyslog zu überprüfen, melden Sie sich über SSH an und geben Sie den Befehl ein:
$ systemctl status rsyslog
Beispielausgabe
Wenn rsyslog aus irgendeinem Grund nicht vorhanden ist, können Sie es mit dem folgenden Befehl installieren:
$ sudo yum install rsyslog
Als nächstes müssen Sie einige Einstellungen in der Rsyslog-Konfigurationsdatei ändern. Öffnen Sie die Konfigurationsdatei.
$ sudo vim /etc/rsyslog.conf
Scrollen Sie in den unten gezeigten Zeilen und kommentieren Sie sie aus, um den Empfang von Protokollen über das UDP-Protokoll zu ermöglichen
module(load="imudp") # needs to be done just once input(type="imudp" port="514")
Wenn Sie es vorziehen, den TCP-rsyslog-Empfang zu aktivieren, kommentieren Sie die Zeilen ebenfalls aus:
module(load="imtcp") # needs to be done just once input(type="imtcp" port="514")
Speichern und beenden Sie die Konfigurationsdatei.
Um die Protokolle vom Clientsystem zu erhalten, müssen wir den Rsyslog-Standardport 514 in der Firewall öffnen. Führen Sie dazu
aus# sudo firewall-cmd --add-port=514/tcp --zone=public --permanent
Laden Sie als Nächstes die Firewall neu, um die Änderungen zu speichern
# sudo firewall-cmd --reload
Beispielausgabe
Starten Sie als Nächstes den Rsyslog-Server neu
$ sudo systemctl restart rsyslog
Um Rsyslog beim Booten zu aktivieren, führen Sie den folgenden Befehl aus
$ sudo systemctl enable rsyslog
Um zu bestätigen, dass der Rsyslog-Server Port 514 abhört, verwenden Sie den netstat-Befehl wie folgt:
$ sudo netstat -pnltu
Beispielausgabe
Perfekt! Wir haben unseren Rsyslog-Server erfolgreich so konfiguriert, dass er Protokolle vom Client-System empfängt.
Führen Sie den folgenden Befehl aus, um Protokollmeldungen in Echtzeit anzuzeigen:
$ tail -f /var/log/messages
Lassen Sie uns nun das Client-System konfigurieren.
Konfigurieren des Client-Systems auf RHEL 8
Melden Sie sich wie beim Rsyslog-Server an und prüfen Sie, ob der rsyslog-Daemon läuft, indem Sie den folgenden Befehl ausgeben:
$ sudo systemctl status rsyslog
Beispielausgabe
Als nächstes öffnen Sie die rsyslog-Konfigurationsdatei
$ sudo vim /etc/rsyslog.conf
Fügen Sie am Ende der Datei die folgende Zeile an
*.* @10.128.0.47:514 # Use @ for UDP protocol *.* @@10.128.0.47:514 # Use @@ for TCP protocol
Speichern und beenden Sie die Konfigurationsdatei. Öffnen Sie genau wie beim Rsyslog-Server Port 514, der der Standard-Rsyslog-Port auf der Firewall ist
$ sudo firewall-cmd --add-port=514/tcp --zone=public --permanent
Laden Sie als Nächstes die Firewall neu, um die Änderungen zu speichern
$ sudo firewall-cmd --reload
Starten Sie als Nächstes den rsyslog-Dienst neu
$ sudo systemctl restart rsyslog
Führen Sie den folgenden Befehl aus, um Rsyslog beim Booten zu aktivieren
$ sudo systemctl enable rsyslog
Testen des Protokollierungsvorgangs
Nachdem Sie den Rsyslog-Server und das Client-System erfolgreich eingerichtet und konfiguriert haben, ist es an der Zeit zu überprüfen, ob Ihre Konfiguration wie beabsichtigt funktioniert.
Geben Sie auf dem Client-System den folgenden Befehl aus:
# logger "Hello guys! This is our first log"
Gehen Sie jetzt zum Rsyslog-Server und führen Sie den folgenden Befehl aus, um die Protokollnachrichten in Echtzeit zu überprüfen
# tail -f /var/log/messages
Die Ausgabe des auf dem Clientsystem ausgeführten Befehls sollte in den Protokollmeldungen des Rsyslog-Servers registriert werden, um zu implizieren, dass der Rsyslog-Server jetzt Protokolle vom Clientsystem empfängt.
Und das ist es, Leute! Wir haben den Rsyslog-Server erfolgreich eingerichtet, um Protokollnachrichten von einem Client-System zu empfangen.
Lesen Sie auch:Wie man Protokolldateien unter Linux mit Logrotate rotiert und komprimiert
Lesen Sie auch:So installieren Sie Redis Server auf CentOS 8 / RHEL 8