Für mich war dies ein Problem damit, wie das in rsyslog verwendete imuxsock-Modul mit systemd funktionierte.
In der imuxsock-Dokumentation wird erläutert, wie das Modul für systemd funktionieren soll. In Schritt 1 sah ich Probleme:
Schritt 1: Wählen Sie den Namen des System-Sockets
Wenn der Benutzer SysSock.Use = "off" nicht explizit ausgewählt hat, wird der Standardname für den Listener-Socket (auch bekannt als "System Log Socket" oder einfach "System Socket") auf / dev / log gesetzt. Wenn der Benutzer SysSock.Use = "off" explizit festgelegt hat, überwacht rsyslog andernfalls nicht / dev / log ODER einen durch den Parameter SysSock.Name definierten Socket, und der Rest dieses Abschnitts gilt nicht.
Wenn der Benutzer sysSock.Name = "/ path / to / custom / socket" angegeben hat (und SysSock.Use = "off" nicht explizit festgelegt hat), wird der Standard-Listener-Socket-Name mit / path / to / custom / socket überschrieben .
Andernfalls wird der Standard-Listener-Socket-Name mit / run / systemd / journal überschrieben, wenn rsyslog unter systemd ausgeführt wird UND / run / systemd / journal / syslog vorhanden ist (UND der Benutzer hat SysSock.Use nicht explizit auf "off" gesetzt) / syslog.
Das System sollte in Schritt 3 fallen und den Standardpfad in "/ run / systemd / journal / syslog" ändern, aber stattdessen "/ var / log" bleiben. Dies bedeutete, dass das imuxsock-Modul versuchte (und manchmal erfolgreich war), einen Socket in / dev / log zu erstellen, in dem stattdessen eine symbolische Verknüpfung erstellt werden sollte, die vom systemd-journald-dev-log.socket erstellt wurde. Für den Fall, dass der echte Socket nicht erstellt werden kann, wird die symbolische Verknüpfung weiterhin entfernt.
Diese Dokumentation war das Ergebnis dieses Problems , das auf dem rsyslog-Github gemeldet wurde. Wenn Sie die Diskussion überspringen und direkt zu den Änderungen springen möchten, lesen Sie PR # 1 bzw. PR # 2 .
Meine Lösung bestand darin, das imuxsock-Modul so zu konfigurieren, dass der Pfad systemd in meiner Datei /etc/rsyslog.conf verwendet wird:
module(load="imuxsock"
SysSock.Name="/run/systemd/journal/syslog")
Dies scheint mein Problem behoben zu haben und klingt hier nach einer guten Lösung, da es erklären würde, warum der symbolische Link möglicherweise wieder verschwindet, nachdem Sie ihn manuell erstellt haben.
Wenn Sie auf Ihr System schauen und "/ run / systemd / journal / syslog" nicht vorhanden ist, überprüfen Sie in der Datei "syslog.socket", ob es erfolgreich gestartet wurde, da dies für die Erstellung des Sockets verantwortlich ist.
systemctl status syslog.socket
Möglicherweise definiert Ihre Version von rsyslog.service syslog.service nicht als Alias, der benötigt wird, wenn syslog.socket versucht, diesen Dienst zu aktivieren. Es ist auch möglich, dass mehrere Protokollierungsdienste versuchen, syslog.service als Alias zu verwenden. In diesem Fall gewinnt der zuletzt aktivierte.