Wie man Rsyslog Server auf Ubuntu 18.04 LTS einrichtet

Protokolle sind sehr nützlich für die Analyse und Fehlerbehebung bei allen Problemen, die mit dem System und den Anwendungen unter Linux zusammenhängen. In Linux-basierten Betriebssystemen befinden sich standardmäßig alle Protokolldateien im Verzeichnis /var/log. Es gibt verschiedene Arten von Log-Dateien, einschließlich, cron, Kernel, Benutzer, Sicherheit und die meisten dieser Dateien werden durch den Rsyslog-Dienst kontrolliert.

Rsyslog ist ein leistungsstarkes und sicheres System für die Log-Verarbeitung. Rsyslog Server empfängt Protokolle über das Netzwerk von mehreren physischen oder virtualisierten Servern und überwacht den Zustand der verschiedenen Dienste. Mit Rsyslog server können Sie Protokolle für andere Server, Netzwerkgeräte und Remote-Anwendungen von einem zentralen Standort aus überwachen.

In diesem Tutorial werden wir erklären, wie man den Rsyslog Server auf einem Ubuntu 18.04 Server konfiguriert.

Voraussetzungen

  • Zwei Server mit Ubuntu 18.04.
  • Eine statische IP-Adresse 192.168.0.101 ist auf dem Rsyslog-Serverrechner und 192.168.0.102 auf dem Rsyslog-Client-Rechner konfiguriert.
  • Ein Root-Passwort ist auf beiden Servern konfiguriert.

Rsyslog installieren

Standardmäßig ist Rsyslog in Ubuntu 18.04 Server installiert. Falls nicht installiert, können Sie es mit folgendem Befehl installieren:

apt-get install rsyslog -y

Nachdem Sie Rsyslog installiert haben, können Sie die Version von Rsyslog mit dem folgenden Befehl überprüfen:

rsyslogd -v

Sie sollten die folgende Ausgabe erhalten:

rsyslogd 8.32.0, compiled with:
	PLATFORM:				x86_64-pc-linux-gnu
	PLATFORM (lsb_release -d):		
	FEATURE_REGEXP:				Yes
	GSSAPI Kerberos 5 support:		Yes
	FEATURE_DEBUG (debug build, slow code):	No
	32bit Atomic operations supported:	Yes
	64bit Atomic operations supported:	Yes
	memory allocator:			system default
	Runtime Instrumentation (slow code):	No
	uuid support:				Yes
	systemd support:			Yes
	Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

Sie können auch den Status von Rsyslog mit dem folgenden Befehl überprüfen:

systemctl status rsyslog

Sie sollten die folgende Ausgabe sehen:

? rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago
     Docs: man:rsyslogd(8)
           
RSyslog Documentation
Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.

Rsyslog Server konfigurieren

Rsyslog ist nun installiert und läuft. Als nächstes müssen Sie es für den Betrieb im Server-Modus konfigurieren. Sie können dies tun, indem Sie die Datei /etc/rsyslog.conf bearbeiten.

nano /etc/rsyslog.conf

Zuerst müssen Sie das Protokoll entweder UDP oder TCP oder beides definieren.

Um sowohl UDP- als auch TCP-Verbindungen gleichzeitig zu verwenden, suchen Sie die folgenden Zeilen und kommentieren Sie sie nicht aus:

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

Als nächstes definieren Sie das spezifische Subnetz, die IP oder die Domäne, um den Zugriff wie unten gezeigt einzuschränken:

$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com

Als nächstes müssen Sie ein Template erstellen, das dem Rsyslog-Server mitteilt, wie eingehende Syslog-Meldungen gespeichert werden sollen. Fügen Sie die folgenden Zeilen unmittelbar vor dem Abschnitt GLOBAL DIRECTIVES ein:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann die Rsyslog-Konfiguration auf einen eventuellen Syntaxfehler mit dem folgenden Befehl:

rsyslogd -f /etc/rsyslog.conf -N1

Sie sollten die folgende Ausgabe sehen:

rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

Schließlich starten Sie den Rsyslog-Dienst mit dem folgenden Befehl neu:

systemctl restart rsyslog

Nun überprüfen Sie, ob Rsyslog auf TCP/UDP lauscht mit folgendem Befehl:

netstat -4altunp | grep 514

Sie sollten die folgende Ausgabe erhalten:

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      1332/rsyslogd       
udp        0      0 0.0.0.0:514             0.0.0.0:*                           1332/rsyslogd       

Rsyslog-Client konfigurieren

Rsyslog Server ist installiert und konfiguriert, um Protokolle von entfernten Hosts zu empfangen.

Jetzt müssen Sie den Rsyslog-Client so konfigurieren, dass er Syslog-Meldungen an den entfernten Rsyslog-Server sendet.

Melden Sie sich auf dem Client-Rechner an und öffnen Sie die Rsyslog-Konfigurationsdatei wie unten gezeigt:

nano /etc/rsyslog.conf

Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

##Enable sending of logs over UDP add the following line:

*.* @192.168.0.101:514


##Enable sending of logs over TCP add the following line:

*.* @@192.168.0.101:514

##Set disk queue when rsyslog server will be down:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Speichern und schließen Sie die Datei. Starten Sie dann den Rsyslog-Server neu, um die Konfigurationsänderungen zu übernehmen:

systemtcl restart rsyslog

Client-Protokoll anzeigen

An diesem Punkt wird der Rsyslog-Client so konfiguriert, dass er sein Log an den Rsyslog-Server sendet.

Melden Sie sich nun am Rsyslog-Server an und überprüfen Sie das Verzeichnis /var/log. Sie sollten den Eintrag mit dem Hostnamen Ihrer Client-Rechner inklusive mehrerer Log-Dateien sehen:

ls /var/log/rsyslog-client/

Ausgabe:

CRON.log  kernel.log  rsyslogd-2039.log  rsyslogd.log  sudo.log  wpa_supplicant.log

Fazit

In dem obigen Artikel haben wir gelernt, wie man den Rsyslog Server auf einem Ubuntu 18.04 Server installiert und konfiguriert. Wir haben auch gelernt, wie man den Rsyslog-Client so konfiguriert, dass er Logs an den Rsyslog-Server sendet. Wenn Sie Fragen haben, können Sie mich gerne fragen.

Das könnte dich auch interessieren …