Wie man Rsyslog-Server unter Debian 11 einrichtet
Rsyslog ist eine kostenlose und quelloffene Logging-Software, die alle Log-Dateien über das IP-Netzwerk an den zentralen Log-Server weiterleitet. Es hilft Systemadministratoren, alle Server von einem zentralen Punkt aus im Auge zu behalten. Rsyslog arbeitet in einem Client/Server-Modell, d.h. es empfängt Logs vom Remote-Client an Port 514 über das TCP/UDP-Protokoll.
In diesem Beitrag zeigen wir dir, wie du den Rsyslog-Server unter Debian 11 einrichtest.
Voraussetzungen
- Zwei Server, auf denen Debian 11 läuft.
- Auf dem Server ist ein Root-Passwort eingerichtet.
Rsyslog installieren
Als Erstes musst du das Rsyslog-Serverpaket auf dem Server-Rechner installieren. Du kannst es mit dem folgenden Befehl installieren:
apt-get install rsyslog -y
Nach der Installation überprüfst du den Rsyslog-Status mit folgendem Befehl:
systemctl status rsyslog
Du solltest die folgende Ausgabe sehen:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-10-03 13:35:32 UTC; 1h 44min ago TriggeredBy: ? syslog.socket Docs: man:rsyslogd(8) man:rsyslog.conf(5) https://www.rsyslog.com/doc/ Main PID: 283 (rsyslogd) Tasks: 4 (limit: 2341) Memory: 5.0M CPU: 90ms CGroup: /system.slice/rsyslog.service ??283 /usr/sbin/rsyslogd -n -iNONE Oct 03 13:35:32 debian11 systemd[1]: Starting System Logging Service... Oct 03 13:35:32 debian11 rsyslogd[283]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2102.0] Oct 03 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start Oct 03 13:35:32 debian11 systemd[1]: Started System Logging Service. Oct 03 13:35:34 debian11 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 283 (rsyslogd) on client request. Oct 03 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>
Rsyslog konfigurieren
Als Nächstes musst du Rsyslog so konfigurieren, dass es im Servermodus läuft. Das kannst du tun, indem du die Hauptkonfigurationsdatei von Rsyslog bearbeitest:
nano /etc/rsyslog.conf
Entferne die Kommentare in den folgenden Zeilen:
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
Als Nächstes fügst du die folgenden Zeilen hinzu, um die Vorlage für die Speicherung der von den Client-Systemen eingehenden Protokolle zu definieren:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Speichere und schließe die Datei und starte den Rsyslog-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart rsyslog
Zu diesem Zeitpunkt ist Rsyslog gestartet und lauscht auf Port 514. Du kannst dies mit dem folgenden Befehl überprüfen:
ss -tunlp | grep 514
Du solltest die folgende Ausgabe sehen:
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=6)) udp UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=7)) tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=8)) tcp LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=9))
Firewall für Rsyslog konfigurieren
Als Nächstes musst du Port 514 durch die UFW-Firewall zulassen. Du kannst ihn mit dem folgenden Befehl zulassen:
ufw allow 514/tcp ufw allow 514/udp
Lade dann die Firewall neu, um die Änderungen zu übernehmen:
ufw reload
Rsyslog-Client konfigurieren
Als Nächstes musst du den Rsyslog-Client so konfigurieren, dass er die Protokolldateien an den Rsyslog-Server sendet. Dazu musst du die Hauptkonfigurationsdatei von Rsyslog bearbeiten.
nano /etc/rsyslog.conf
Füge die folgenden Zeilen am Ende der Datei hinzu:
#Enable sending system logs over UDP to rsyslog server *.* @rsyslog-server-ip:514 #Enable sending system logs over TCP to rsyslog server *.* @@rsyslog-server-ip:514
Füge außerdem die folgenden Zeilen hinzu, um die Plattenwarteschlange festzulegen, wenn der Rsyslog-Server nicht erreichbar ist:
$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Speichere und schließe die Datei und starte den Rsyslog-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart rsyslog
Überprüfen der Client-Logdatei
Alle Logdateien des Clients werden im Verzeichnis /var/log auf dem Server gespeichert.
Du kannst sie mit dem folgenden Befehl überprüfen:
ls -l /var/log/
Du solltest die Logdatei des Clients sehen, die dem Hostnamen des Client-Systems entspricht:
alternatives.log auth.log.2.gz daemon.log debian11 dpkg.log kern.log.1 messages.1 private syslog.3.gz clientpc auth.log.3.gz daemon.log.1 debug dpkg.log.1 kern.log.2.gz messages.2.gz runit syslog.4.gz apt btmp daemon.log.3.gz debug.2.gz icinga2 kern.log.4.gz messages.4.gz syslog auth.log.1 csm.log dbconfig-common debug.4.gz kern.log messages ntpstats syslog.2.gz
Wie du sehen kannst, ist clientpc das Log-Verzeichnis des Client-Systems.
Fazit
In der obigen Anleitung haben wir erklärt, wie du den Rsyslog-Server und -Client unter Debian 11 einrichtest. Jetzt kannst du deine Clients von einem zentralen Ort aus überwachen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.