GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie Rsyslog Remote Logging unter Linux ein (zentraler Protokollserver)

Jede Linux-Distribution verfügt über eine Art Protokollierungsmechanismus, der alle Systemaktivitäten aufzeichnet. Vor einiger Zeit haben wir eine Liste mit 20 Protokolldateien bereitgestellt, die unter /var/log gespeichert sind und die Ihnen bei der Fehlerbehebung hilfreich sein könnten. Diese Protokolle sind für den Systemadministrator zur Fehlerbehebung sehr wichtig.

Im Folgenden sind die drei gängigen Methoden zum Protokollieren einer Nachricht aufgeführt:

  1. Anmeldung auf demselben Server:Nachrichten werden auf die lokale Festplatte/lokale Datenbank geschrieben
  2. Logging auf einem Remote-Server:Viele Systeme leiten ihre Logs über das Netzwerk an einen zentralen Log-Server weiter. Auf dem zentralen Logserver werden die Meldungen verschiedener Systeme auf die lokale Festplatte/Datenbank geschrieben.
  3. Relaisprotokollierung:Zweig ‚A‘ und Zweig ‚B‘ protokollieren die Nachrichten auf 2 verschiedenen Servern. Diese Server wiederum protokollieren die Nachricht an die ‚Zentrale‘.


Rsyslog ist das Standardprotokollierungsprogramm auf mehreren Linux-Distributionen, einschließlich Debian- und Red Hat-basierten Systemen. Abgesehen von der Implementierung des Syslog-Protokolls fügt rsyslog zusätzliche Funktionen wie inhaltsbasierte Filterung hinzu. Dies verwendet auch TCP für den Transport und bietet viele Konfigurationsoptionen.

In diesem Artikel wird erläutert, wie Sie die oben erwähnte Methode 2 implementieren. d.h. Hier wird erklärt, wie man einen zentralen Protokollierungsserver einrichtet und Protokolle von einzelnen Servern an den zentralen Protokollierungsserver sendet.

Dieses Setup hilft Ihnen, die Protokolldateien aller Server in Ihrer Infrastruktur von einem zentralen Protokollserver aus zu analysieren.

Installation

Rsyslog ist das standardmäßige Protokollierungsprogramm in Debian Distribution und Red Hat-basierten Systemen. Wenn Ihr System nicht über rsyslog verfügt, installieren Sie es je nach Distribution wie unten gezeigt.

apt-get install rsyslog rsyslog-doc
(or)
yum install rsyslog rsyslog-doc

Rsyslog-Konfigurationen werden in der Datei /etc/ryslog.conf und den Dateien im Verzeichnis /etc/rsyslog.d/ gespeichert.

Konfigurationsstruktur

Bevor Sie verstehen, wie der zentrale Protokollserver eingerichtet wird, ist es gut, die Konfigurationsstruktur von rsyslog zu verstehen.

Rsyslog-Konfigurationsdateien sind folgendermaßen aufgebaut

  1. Module
  2. Konfigurationsanweisungen
  3. Regellinie

Module

Rsyslog hat eine modulare Architektur. Es ermöglicht das dynamische Hinzufügen von Funktionalitäten durch diese Module. Die Module sind wie folgt kategorisiert:

  • Eingabemodule – Werden verwendet, um Nachrichten aus verschiedenen Quellen zu sammeln
  • Ausgabemodule – Wird verwendet, um die Nachrichten an verschiedene Stellen (Datei, Socket usw.) zu schreiben
  • Parser-Module – Zum Parsen des Nachrichteninhalts

Bitte beachten Sie, dass es auch andere Kategorien von Modulen gibt. Dies soll einen Überblick darüber geben, was Module leisten können.

Konfigurationsanweisungen

Alle Konfigurationsanweisungen müssen einzeln pro Zeile angegeben werden und mit einem Dollarzeichen ($) beginnen. Es wirkt sich auf die Regeln aus.

Regellinie

Jede Regelzeile besteht aus zwei Feldern, einem „Auswahlfeld“ und einem „Aktionsfeld“. Das Auswahlfeld ist zweigeteilt, „Einrichtungen &Prioritäten“. Aktion gibt an, welche Aktion für die übereinstimmende Regel durchgeführt werden muss.

Eine Beispielkonfiguration

######################
	MODULES
######################

$ModLoad imuxsock
$ModLoad imklog

######################
	Directives
######################
# Set the default permissions for all log files. 

$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

######################
	RULES
######################
mail.info	/var/log/mail.info
mail.warn	/var/log/mail.warn
mail.err	/var/log/mail.err
daemon.*	/var/log/daemon.log

Hinweis:10 Beispiele für das Anzeigen riesiger Protokolldateien unter Linux können hilfreich sein, wenn Sie Protokolldateien manipulieren.

Vorlagen

Vorlagen sind eine sehr wichtige Funktion, die von rsyslog bereitgestellt wird. Es ermöglicht dem Benutzer, die Nachrichten in ihrem gewünschten Format zu protokollieren. Es kann auch verwendet werden, um dynamische Dateinamen zu erstellen, um die Meldungen zu protokollieren. Bei der Datenbankprotokollierung werden die Vorlagen verwendet, um die Nachricht in eine richtige SQL-Anweisung umzuwandeln.

Eine Beispielvorlage sieht folgendermaßen aus:

$template mytemplate “Text-Before %msg% Text-After\n”

Die obige Vorlage protokolliert die Nachricht „Dies ist ein Hallo von rsyslog“ als:

Text-Before This is hello from rsyslog Text-After

Wir werden sehen, wie die Vorlage zum dynamischen Generieren der Protokolldateien verwendet wird.

Zentraler Protokollierungsserver

Die obigen Abschnitte sollten einen Überblick über rsyslog und dessen Konfiguration gegeben haben. Jetzt werden wir mit der Einrichtung eines zentralen Protokollierungssystems fortfahren.

Für unsere Diskussion haben wir die Server-IP „192.168.1.1“ für den zentralen Protokollserver, an den alle Protokollnachrichten vom Client weitergeleitet werden sollten.

Fügen Sie die folgenden Zeilen zur rsyslog.conf der zentralen Logserver-Server hinzu (In diesem Beispiel wurde die folgende Zeile auf dem Logserver mit der IP-Adresse 192.168.1.1 hinzugefügt):

# provides support for local system logging
$ModLoad imuxsock 

# provides kernel logging support (previously done by rklogd)
$ModLoad imklog

# provides UDP syslog reception. For TCP, load imtcp.
$ModLoad imudp

# For TCP, InputServerRun 514
$UDPServerRun 514

# This one is the template to generate the log filename dynamically, depending on the client's IP address.
$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"

# Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc...), will be under a separate directory which is formed by the template FILENAME.
*.* ?FILENAME

Nachdem Sie die obigen Zeilen zur rsyslog.conf hinzugefügt haben, starten Sie den rsyslog-Prozess neu. Jetzt ist der rsyslog-Server bereit, Nachrichten anzunehmen.

# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

Fügen Sie die folgenden Zeilen zur rsyslog.conf auf den einzelnen Client-Rechnern hinzu, die ihre Protokollmeldungen an den zentralen Server senden sollen.

$ModLoad imuxsock

$ModLoad imklog

# Provides UDP forwarding. The IP is the server's IP address
*.* @192.168.1.1:514 

# Provides TCP forwarding. But the current server runs on UDP
# *.* @@192.168.1.1:514

Starten Sie den rsyslog-Prozess auf den Clients neu. Jetzt empfängt der zentrale rsyslog-Server (in diesem Beispiel 192.168.1.1) alle Protokollmeldungen von den konfigurierten Clients und das Protokoll jedes Clients wird in einem separaten Verzeichnis abgelegt.


Linux
  1. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

  2. Wie konfiguriere ich Remote-Protokollserver mit rsyslog?

  3. So richten Sie einen Reverse-SSH-Tunnel unter Linux ein

  4. Rsyslog:So senden Sie Protokolldateien an einen Remote-Server in CentOS/RHEL 6,7

  5. Anzeigen von Protokollen auf einem Remote-Linux-Server

So richten Sie den Rsyslog-Server unter Debian 11 (Bullseye) ein

So richten Sie einen Linux-Server auf Amazon AWS ein

So richten Sie den zentralen Protokollierungsserver mit Rsyslog unter Ubuntu 20.04 ein

So richten Sie einen Streaming Media Server mit Jellyfin unter Linux ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So erstellen Sie eine Rsyslog-Konfiguration für die zentrale Protokollierung