buffer do soquete journald para a opção ForwardToSyslog

0

Eu tenho uma configuração na qual o journald é definido com ForwardToSyslog=yes . Cite a documentação :

If forwarding to syslog is enabled but nothing reads messages from the socket, forwarding to syslog has no effect.

Estou passando por uma observação diferente com o seguinte teste:

systemctl disable rsyslog
systemctl stop rsyslog
logger "rsyslog is dropped, journald won't forward this message"
systemctl enable rsyslog
systemctl start rsyslog

O resultado é que o rsyslog consegue processar a mensagem.

O rsyslog foi configurado sem o recurso para ler o banco de dados do diário .

Minha suposição é que os recursos de buffer de soquete estão causando o recebimento do rsyslog antes do tempo em que ele está sendo executado.

Se este for o caso, é possível remover este buffer de pelo menos forçar a liberação do soquete do bash de alguma forma para que o histórico do rsyslogs inicie junto com ele?

    
por TheMeaningfulEngineer 16.11.2018 / 12:38

1 resposta

1

Uma opção é fazer com que o rsyslog consuma o soquete diretamente e não confie em receber o formulário de dados systemd socket:

# /etc/rsyslog.conf should contain
module(load="imuxsock"
       SysSock.Use="on"
       SysSock.Name="/run/systemd/journal/syslog")


# cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/

[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure

[Install]
WantedBy=multi-user.target

Isso tem várias implicações:

  • O rsyslog não será iniciado automaticamente quando houver eventos no soquete (isso é o que eu quero alcançar, apenas sendo explícito)
  • não está claro se isso conflita com o código do rsyslog que é acoplado à ativação do soquete do systemd
  • parece ser oficialmente discursado
por 16.11.2018 / 12:58