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) http://www.rsyslog.com/doc/ 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.