So erstellen Sie einen zentralisierten Protokollserver mit RSYSLog in CentOS/RHEL 7

So erstellen Sie einen zentralisierten Protokollserver mit RSYSLog in CentOS/RHEL 7

Damit der Systemadministrator ein Problem auf a identifiziert oder behoben werden kann Centos 7 oder Rhel 7 Serversystem muss die Ereignisse, die in einem bestimmten Zeitraum auf dem System stattgefunden haben /var/log Verzeichnis.

Der Syslog -Server auf einem Linux -Computer kann einen zentralen Überwachungspunkt über ein Netzwerk bewirken, in dem alle Server, Netzwerkgeräte, Router, Switches und die meisten ihrer internen Dienste, die Protokolle generieren, unabhängig davon.

Auf einen CentOS/Rhel 7 System, Rsyslog Daemon ist der Hauptprotokollserver, der vorinstalliert ist, gefolgt von Systemd Journal Dämon (Journald).

Rsyslog Server in Build als Client/Server -Architekturdienst und kann beide Rollen gleichzeitig erreichen. Es kann als Server ausgeführt werden und alle von anderen Geräten im Netzwerk übertragenen Protokolle sammeln, oder es kann als Client ausgeführt werden, indem alle internen Systemereignisse an einen Remote -Endpoint -Syslog -Server gesendet werden.

Wenn RSYSLog als Client konfiguriert ist, können die Protokolle lokal in Dateien im lokalen Dateisystem gespeichert werden oder nicht remote senden, anstatt sie in Dateien zu schreiben, die auf dem Computer gespeichert sind, oder Ereignisdateien lokal schreiben und an einen Remote -Syslog -Server bei einem Remote -Syslog -Server senden die selbe Zeit.

Syslog Server betreibt jede Protokollnachricht mit dem folgenden Schema:

Typ (Einrichtung).Priorität (Schweregrad) Ziel (wo das Protokoll gesendet werden soll) 

A. Der Einrichtung oder Typdaten werden durch die internen Systemprozesse dargestellt, die die Nachrichten generieren. In Linux -internen Prozessen (Einrichtungen), die Protokolle generieren, werden wie folgt standardisiert:

  • Auth = Nachrichten, die durch Authentifizierungsprozesse generiert werden (Anmeldung).
  • Cron= Nachrichten, die durch geplante Prozesse erzeugt werden (Crontab).
  • Dämon = von Dämonen generierte Nachrichten (interne Dienste).
  • Kernel = Nachrichten, die vom Linux -Kernel selbst erzeugt werden.
  • Post = Nachrichten, die von einem Mailserver generiert werden.
  • Syslog = Nachrichten, die vom Rsyslog -Daemon selbst erzeugt werden.
  • lpr = Nachrichten, die von lokalen Druckern oder einem Druckserver generiert werden.
  • LOCAL0 - LOCAL7 = benutzerdefinierte Nachrichten, die von einem Administrator definiert sind (Local7 wird normalerweise für Cisco oder Windows zugewiesen).

B. Der Priorität (Schwere) Ebenen sind auch standardisiert. Jede Priorität wird mit einer Standardabkürzung und einer Zahl zugewiesen, wie unten beschrieben. Die 7. Priorität ist die höhere Ebene von allen.

  • aufkommen = Notfall - 0
  • Alarm = Warnungen - 1
  • irren = Fehler - 3
  • warnen = Warnungen - 4
  • Notiz = Benachrichtigung - 5
  • die Info = Informationen - 6
  • debuggen = Debugging - 7

Spezielle Rsyslog -Schlüsselwörter:

  • * = alle Einrichtungen oder Prioritäten
  • keiner = Die Einrichtungen haben keine bestimmten Prioritäten, z. B.: Post.keiner

C. Der dritte Teil für das Syslog -Schema wird durch die dargestellt Ziel Richtlinie. Rsyslog -Daemon kann Protokollnachrichten senden, die in eine Datei im lokalen Dateisystem geschrieben werden sollen (hauptsächlich in einer Datei in /var/log/log/ Verzeichnis) oder an einen anderen lokalen Prozess geleitet werden oder an eine lokale Benutzerkonsole (an STDOut) gesendet werden oder die Nachricht über ein TCP/UDP -Protokoll an einen Remote -Syslog -Server senden oder die Nachricht sogar an die Nachricht verwerfen /dev/null.

Um zu konfigurieren CentOS/Rhel 7 Als zentraler Protokollserver müssen wir zunächst überprüfen und sicherstellen, dass die /var Partition, bei der alle Protokolldateien aufgezeichnet werden. Es ist eine gute Entscheidung, ein separates Laufwerk (LVM, RAID) zu verwenden, um die zu montieren /var/log/log/ Verzeichnis.

Anforderungen

  1. Centos 7.3 Installationsverfahren
  2. Rhel 7.3 Installationsverfahren

So konfigurieren Sie Rsyslog auf CentOS/RHEL 7 -Server

1. Standardmäßig, Rsyslog Der Service wird automatisch installiert und sollte ausgeführt werden CentOS/Rhel 7. Um zu überprüfen, ob der Dämon im System gestartet wird, geben Sie den folgenden Befehl mit Root -Privilegien aus.

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

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

# SystemCTL Start RsysLog.Service 

2. Wenn das Rsyslog -Paket nicht auf dem System installiert ist, das Sie als zentraler Protokollierungsserver verwenden möchten, geben Sie den folgenden Befehl zur Installation des RSYSLog -Pakets aus.

# yum install Rsyslog installieren 

3. Der erste Schritt, den wir auf dem System ausführen müssen, um Rsyslog -Daemon als zentraler Protokollserver zu konfigurieren, damit Protokollnachrichten für externe Clients empfangen werden können, besteht darin /etc/rsyslog.Conf, Wie im folgenden Auszug dargestellt.

# vi /etc /rsyslog.Conf 

In der RSYLOG -Hauptkonfigurationsdatei, durchsucht und in den folgenden Zeilen (entfernen Sie den Hashtag # Anmelden an der Linie beginn 514 Hafen. UDP ist das Standardprotokoll, das für die logarithmische Übertragung durch RSYSLOG verwendet wird.

$ Modload iMUDP $ UDPSERVERRUN 514 
Konfigurieren Sie den Rsyslog -Server

4. Das UDP -Protokoll verfügt nicht über den TCP -Overhead, wodurch es schneller für die Übertragung von Daten als das TCP. Andererseits gewährleistet das UDP -Protokoll keine Zuverlässigkeit übertragener Daten.

Wenn Sie jedoch das TCP -Protokoll für den Protokollempfang verwenden müssen, müssen Sie die folgenden Zeilen suchen und überzeugen /etc/rsyslog.Conf Datei, um Rsyslog -Daemon so zu konfigurieren, dass sie einen TCP -Socket auf 514 Port binden und anhören. TCP- und UDP -Hörstecke für die Rezeption können gleichzeitig auf einem RSYSLOG -Server konfiguriert werden.

$ Modload IMTCP $ inputTCpServerrun 514 

5. Schließen Sie im nächsten Schritt noch nicht die Datei, erstellen Sie eine neue Vorlage, die zum Empfangen von Remote -Nachrichten verwendet wird. Diese Vorlage unterrichtet den lokalen RSYSLog -Server, auf dem die empfangenen Nachrichten gespeichert werden, die von Syslog -Netzwerk -Clients gesendet werden können. Die Vorlage muss vor Beginn der hinzugefügt werden Globale Richtlinien Block, wie im folgenden Auszug dargestellt.

$ template remotelogs "/var/log/%hostname%/%Programmname%.Protokoll"  . ?Remotelogs & ~ 
Erstellen Sie die RSYSLog -Vorlage

Obenstehendes $ template remotelogs Die Richtlinie weist Rsyslog -Daemon an, alle empfangenen Protokollnachrichten in verschiedenen Dateien zu sammeln und zu schreiben, basierend auf dem Client -Maschinennamen und der Remote -Client -Einrichtung (Anwendung), die die Nachrichten basierend auf den definierten Eigenschaften in der Vorlagenkonfiguration generierten: %Hostname% Und %PROGRAMMNAME%.

Alle diese Protokolldateien werden in eine lokale Dateisystem in eine dedizierte Datei geschrieben.

Der & ~ Umleitungsregel weist den lokalen RSYSLog -Server an, die Verarbeitung der empfangenen Protokollnachricht weiter zu beenden und die Nachrichten zu verwerfen (schreiben Sie sie nicht in interne Protokolldateien).

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

Um alle empfangenen Nachrichten von Clients in einer einzelnen Protokolldatei zu schreiben, die nach der IP -Adresse des Remote -Clients benannt ist, ohne die Einrichtung zu filtern, die die Nachricht generiert hat, verwenden Sie den folgenden Auszug.

$ template fromIp, "/var/log/%from host-ip%.Protokoll"  . ?FromIp & ~ 

Ein weiteres Beispiel für eine Vorlage, bei der alle Nachrichten mit Auth Facility Flag an einer Vorlage mit dem Namen “protokolliert werden“Tmplauth“.

$ template tmplAuth "/var/log/%hostname%/%Programmname%.Protokoll "AuthPriv.* ?Tmplauth 

Im Folgenden finden Sie ein Auszugsformular eine Vorlagendefinition vom Rsyslog 7 -Server:

template (name = "tmplmsg" type = "string" string = "/var/log/remote/msg/%hostname%/%programmname ::.Protokoll" ) 

Der obige Vorlagenauszug kann auch als:

template (name = "tmplmsg" type = "list") constant (value = "/var/log/remote/msg/") Eigenschaft (name = "hostname") constant (value = "/") Eigenschaft (Name = name = "Programmname" SecurePath = "Ersetzen") Konstant (value = ".Protokoll")  

Um komplexe RSYSLog -Vorlagen zu schreiben Mann Rsyslog.Conf Befehl oder konsultieren Sie Rsyslog Online -Dokumentation.

6. Nachdem Sie die RSYSLog -Konfigurationsdatei mit Ihren eigenen Einstellungen bearbeitet haben, wie oben erläutert, starten Sie den Rsyslog -Daemon neu, um Änderungen anzuwenden, indem Sie den folgenden Befehl ausgeben:

# Service Rsyslog Neustart 

7. Inzwischen sollte Rsyslog Server so konfiguriert werden. Führen Sie den Befehl netstat mit Root -Berechtigungen aus und verwenden Sie Grep, um die RSYSLog -Zeichenfolge zu filtern.

# netstat -tulpn | Grep Rsyslog 
Überprüfen Sie den Rsyslog -Netzwerk -Socket

8. Wenn Sie Selinux aktiviert haben in CentOS/Rhel 7, Geben Sie den folgenden Befehl aus, um SELinux zu konfigurieren, um den Rsyslog -Verkehr je nach Netzwerk -Socket -Typ zu ermöglichen.

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

9. Wenn die Firewall aktiviert und aktiv ist, führen Sie den folgenden Befehl aus, um die erforderlichen Regeln für das Öffnen von RSYSLog -Ports in Firewall hinzuzufügen.

# Firewall-cmd --permanent --add-port = 514/tcp # Firewall-cmd --permanent --Add-Port = 514/UDP # Firewall-CMD -reload 

Das ist alles! Rsyslog ist jetzt im Servermodus konfiguriert und kann Protokolle von Remote -Clients zentralisieren. In dem nächsten Artikel werden wir sehen.

Verwenden von Rsyslog -Server als zentraler Überwachungspunkt für Remoteprotokollnachrichten können Sie Protokolldateien inspizieren und den Gesundheitszustand des Kunden beobachten oder Probleme des Kunden leichter Debugg -Kunden beobachten.