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.

Das könnte dich auch interessieren …