So richten Sie den Rsyslog -Client ein, um Protokolle an Rsyslog Server in CentOS 7 zu senden
- 3451
- 512
- Levke Harnapp
Die Protokollverwaltung ist eine der kritischsten Komponenten in einer Netzwerkinfrastruktur. Protokollnachrichten werden ständig von zahlreichen Systemsoftware wie Dienstprogrammen, Anwendungen, Dämonen, Diensten im Zusammenhang mit Netzwerk, Kernel, physischen Geräten usw. generiert.
Protokolldateien erweisen sich als nützlich bei der Fehlerbehebung bei Linux -Systemproblemen, überwachen Sie das System und überprüfen Sie die Sicherheitsstärke und Probleme der Systemsicherheit.
Rsyslog ist ein Open -Source -Protokollierungsprogramm, das der beliebteste Protokollierungsmechanismus in einer Vielzahl von Linux -Verteilungen ist. Es ist auch der Standardprotokollierungsdienst in Centos 7 oder Rhel 7.
Rsyslog Daemon in CentOS kann so konfiguriert werden, dass er als Server ausgeführt wird, um Protokollnachrichten von mehreren Netzwerkgeräten zu sammeln. Diese Geräte wirken als Client.
Allerdings die Rsyslog Der Service kann auch im Client -Modus konfiguriert und gestartet werden. Dieses Setup weist den Rsyslog -Daemon an, Protokollnachrichten mit den TCP- oder UDP -Transportprotokollen an einen Remote -Rsyslog -Server weiterzuleiten. Der Rsyslog -Dienst kann auch so konfiguriert werden, dass er gleichzeitig als Client und als Server ausgeführt wird.
In diesem Tutorial werden wir beschreiben, wie man a einrichtet CentOS/Rhel 7 Rsyslog -Daemon zum Senden von Protokollnachrichten an einen Remote Rsyslog -Server. Dieses Setup stellt sicher, dass Ihr Maschinenplattenraum für die Speicherung anderer Daten erhalten werden kann.
Der Ort, an dem fast alle Protokolldateien standardmäßig in geschrieben werden Centos ist der /var
Systempfad. Es ist auch ratsam, immer eine separate Partition für zu erstellen /var
Verzeichnis, das dynamisch angebaut werden kann, um das nicht zu erschöpfen /(Wurzel)
Trennwand.
Ein Rsyslog Der Client sendet die Protokollnachrichten immer im Klartext, falls dies nicht anders angegeben ist. Sie sollten keinen RSYSlog -Client einrichten, um Protokollnachrichten über Internet oder Netzwerke zu übertragen, die nicht unter Ihrer vollständigen Kontrolle stehen.
Anforderungen
- Centos 7.3 Installationsverfahren
- Rhel 7.3 Installationsverfahren
- Konfigurieren Sie einen Rsyslog -Server in CentOS/RHEL 7
Schritt 1: Überprüfen Sie die Installation von Rsyslog
1. Standardmäßig ist der Rsyslog -Daemon bereits in einem CentOS 7 -System installiert und ausgeführt. Um zu überprüfen, ob der RSYSLog -Dienst im System vorhanden ist, geben Sie die folgenden Befehle aus.
# RPM -q | grep rsyslog # rsyslogd -vÜberprüfen Sie die Rsyslog -Installation
2. Wenn das Rsyslog -Paket nicht in CentOS installiert ist, führen Sie den folgenden Befehl aus, um den Dienst zu installieren.
# yum install Rsyslog installieren
Schritt 2: Konfigurieren Sie den Rsyslog -Dienst als Client
3. Um den auf a installierten Rsyslog -Daemon durchzusetzen, Centos 7 System, um als Protokollclient zu fungieren und alle lokal generierten Protokollnachrichten an einen Remote -RSYSLog -Server zu leiten, ändern Sie die RSYSlog -Konfigurationsdatei wie folgt:
Öffnen Sie zuerst die Hauptkonfigurationsdatei für die Bearbeitung.
# vi /etc /rsyslog.Conf
Gehen Sie dann die folgende Zeile am Ende der Datei an, wie im folgenden Auszug dargestellt.
*. * @192.168.10.254: 514
Stellen Sie in der obigen Zeile sicher, dass Sie die IP -Adresse des FQDN des Remote Rsyslog -Servers entsprechend ersetzen. Die obige Zeile weist den Rsyslog -Daemon an, alle Protokollnachrichten unabhängig von der Einrichtung oder Schwere an den Host mit dem zu senden IP 192.168.10.254 über 514/UDP Hafen.
Konfigurieren Sie den Rsyslog -Client4. Wenn der Remote -Protokollserver so konfiguriert ist, dass nur auf TCP -Verbindungen zu hören ist oder Sie ein zuverlässiges Transport -Netzwerkprotokoll wie TCP verwenden möchten, fügen Sie ein anderes hinzu @
Zeichen vor dem Fernwirt, wie im folgenden Beispiel gezeigt:
*. * @@ Protokolle.Domain.LAN: 514
Der Linux Rsyslog ermöglicht auch einige Sonderzeichen, wie z =
oder !
, Dies kann vor Prioritätsniveaus vorangestellt werden, um anzuzeigen “Nur diese Priorität"Für gleiches Zeichen und"nicht diese Priorität oder höher als diese”.
Einige Stichproben von RSYSLOG -Prioritätsniveausqualifikationsspielern in CentOS 7:
- Kern.die Info = Kernel -Protokolle mit Info -Priorität und höher.
- Kern.= Info = Nur Kernel -Nachrichten mit Info -Priorität.
- Kern.Info; Kern.!irren = Nur Kernel -Nachrichten mit Informationen, Bekanntmachungen und Warnprioritäten.
- Kern.Debugug; Kern.!= Warnung = alle Kernelprioritäten außer Warnung.
- Kern.* = alle Kernel -Prioritäten -Nachrichten.
- Kern.keiner = Melden Sie sich unabhängig von der Priorität keine verwandten Kernel Facility -Nachrichten an.
Angenommen, Sie möchten beispielsweise nur eine bestimmte Funktionsmeldungen an einen Remote -Protokollserver senden, z
Post.* @192.168.10.254: 514
5. Um die neue Konfiguration anzuwenden, muss der RSYSLog-Service schließlich neu gestartet werden, damit der Daemon die Änderungen abholt, indem der folgende Befehl ausgeführt wird:
# SystemCTL Neustart Rsyslog neu starten.Service
6. Wenn Rsyslog-Daemon aus einigen Gründen während der Startzeit nicht aktiviert ist, geben Sie den folgenden Befehl aus, um das systemweite Service-System zu aktivieren:
# SystemCTL aktivieren RsysLog.Service
Schritt 3: Senden Sie Apache- und NGINX -Protokolle an einen Remote -Protokollserver
7. Apache HTTP -Server kann so konfiguriert werden, dass Protokollnachrichten an einen Remote -Syslog -Server gesendet werden.
# vi/etc/httpd/conf/httpd.Conf
Auf Apache Main Conf -Datei fügen Sie die folgende Zeile hinzu.
CustomLog "|/bin/sh -c '/usr/bin/tee -a/var/log/httpd/httpd -access.Protokoll | /usr/bin/logger -thttpd -plocal11.Beachten Sie '"kombiniert
Die Zeile erzwingt den HTTP -Daemon, die Protokollnachrichten intern in die Dateisystemprotokolldatei zu schreiben, aber auch die Nachrichten weiter über ein Rohr zum Logger -Dienstprogramm zu verarbeiten, das sie an einen entfernten Syslog -Server sendet, indem sie sie als aus dem Local1 stammen Einrichtung.
8. Wenn Sie auch leiten möchten Apache Fehlerprotokollnachrichten zu einem Remote -Syslog -Server, fügen Sie eine neue Regel wie die im obigen Beispiel angegeben Probe:
FehlerLog "|/bin/sh -c '/usr/bin/tee -a/var/log/httpd/httpd -remor.Protokoll | /usr/bin/logger -thttpd -plocal11.irren'"
9. Sobald Sie die obigen Zeilen hinzugefügt haben, müssen Sie Apache -Daemon neu starten, um Änderungen anzuwenden, indem Sie den folgenden Befehl ausgeben:
# Systemctl Neustart HTTPD neu starten.Service
10. Ab Version 1.7.1, Der NGINX-Webserver verfügt über Build-In-Funktionen, um seine Nachrichten direkt an einem Remote-Syslog-Server zu protokollieren, indem die folgenden Codezeilen zu einer Nginx-Konfigurationsdatei hinzugefügt werden.
ERROR_LOG SYSLOG: Server = 192.168.1.10: 514, facility = local7, tag = nginx, Schweregrad = Fehler; access_log syslog: server = 192.168.10.254: 514, facility = local7, tag = nginx, Schweregrad = info main;
Für ein IPv6 Server verwenden Sie das folgende Syntaxformat, um die IPv6 -Adresse beizulegen.
access_log syslog: server = [7101: dc7 :: 9]: 514, facility = local7, tag = nginx, Schweregrad = info;
11. Auf dem Remote Rsyslog -Server müssen Sie die folgende Änderung der RSYSlog -Konfigurationsdatei vornehmen, um die von Apache Web Server gesendeten Protokolle zu empfangen.
Lokal1.* @Apache_ip_address: 514
Das ist alles! Sie haben erfolgreich konfiguriert Rsyslog Daemon wird im Client -Modus ausgeführt und haben auch angewiesen Apache http Server oder Nginx Um seine Protokollnachrichten an einen Remote -Syslog -Server weiterzuleiten.
Wenn Sie ein System stürmen, sollten Sie in der Lage sein, das Problem zu untersuchen, indem Sie die Inhalt der Protokolldateien inspizieren, die auf dem Remote -Syslog -Server gespeichert sind.
- « So blockieren oder deaktivieren Sie normale Benutzeranmeldungen unter Linux
- So löschen Sie alte ungenutzte Körner in Debian und Ubuntu »