Per me questo ha finito per essere un problema con il modo in cui il modulo imuxsock utilizzato in rsyslog funzionava con systemd.
Nella documentazione di imuxsock illustrano come il modulo dovrebbe funzionare per systemd. Il passaggio 1 era dove stavo riscontrando problemi:
Passaggio 1: selezionare il nome del socket di sistema
Se l'utente non ha scelto esplicitamente di impostare SysSock.Use = "off", il nome del socket listener predefinito (ovvero "socket del registro di sistema" o semplicemente "socket del sistema") è impostato su / dev / log. Altrimenti, se l'utente ha impostato esplicitamente SysSock.Use = "off", allora rsyslog non ascolterà on / dev / log O nessun socket definito dal parametro SysSock.Name e il resto di questa sezione non si applica.
Se l'utente ha specificato sysSock.Name = "/ path / to / custom / socket" (e non ha impostato esplicitamente SysSock.Use = "off"), il nome del socket del listener predefinito viene sovrascritto con / path / to / custom / socket .
Altrimenti, se rsyslog è in esecuzione con systemd AND / run / systemd / journal / syslog, (E l'utente non ha impostato esplicitamente SysSock.Use = "off"), il nome del socket del listener predefinito viene sovrascritto con / run / systemd / journal / syslog.
Il sistema dovrebbe essere rientrato nel passaggio 3 e modificare il percorso predefinito in "/ run / systemd / journal / syslog" ma invece sarebbe rimasto "/ var / log". Ciò significava che il modulo imuxsock avrebbe tentato (e talvolta riuscirà) di creare un socket in / dev / log dove dovrebbe invece esserci un collegamento simbolico creato da systemd-journald-dev-log.socket. Nel caso in cui non riuscisse a creare il socket reale, il collegamento simbolico verrebbe comunque rimosso.
Tale documentazione era il risultato di questo problema riportato sul rithyslog github. Se vuoi saltare la discussione e saltare direttamente alle modifiche, vedi rispettivamente PR # 1 e PR # 2 .
La mia soluzione era semplicemente configurare il modulo imuxsock per usare il percorso systemd nel mio /etc/rsyslog.conf:
module(load="imuxsock"
SysSock.Name="/run/systemd/journal/syslog")
Questo sembra aver risolto il mio problema e sembra una buona soluzione qui poiché spiegherebbe perché il collegamento simbolico potrebbe scomparire di nuovo dopo averlo creato manualmente.
Se guardi il tuo sistema e "/ run / systemd / journal / syslog" non è presente, guarda "syslog.socket" per vedere se si sta avviando con successo poiché è questo il responsabile della creazione del socket.
systemctl status syslog.socket
È possibile che la versione di rsyslog.service non definisca syslog.service come un alias necessario quando syslog.socket tenta di attivare quel servizio. È anche possibile che più servizi di registrazione provino ad alias syslog.service nel qual caso vince l'ultimo caso abilitato.