Como desativar o spam de mensagens do sistemad "O horário foi alterado" no diário do systemd enquanto estiver usando o sdwdate?

10

Devido ao uso combinado do estiramento Debian, que usa systemd por padrão e sdwdate (que usa o Slow Clock Adjuster ( gh )), meu relógio do sistema é alterado frequentemente.

Como resultado, o journalctl -fspam é interminável.

[...]
Nov 07 13:46:49 host systemd[766]: Time has been changed
Nov 07 13:46:50 host systemd[766]: Time has been changed
Nov 07 13:46:51 host systemd[766]: Time has been changed
[...]

Este não era um problema no Debian wheezy que usava o sysvinit.

Como o systemd pode ser configurado para não enviar a Time has been changedmensagem ao diário?

Uma questão relacionada Como desativar o spam de mensagens "O tempo foi alterado" do systemd em / var / log / syslog no Debian jessie? foi resolvido, mas essa solução não funcionará aqui.

adrelanos
fonte
systemdse preocupa profundamente com os temporizadores. Isso parece ser acionado pela atualização do relógio do hardware hwclock --systohc, por exemplo , você está chamando isso a cada segundo?
mr.spuratic
@ mr.spuratic olhando para a fonte vinculada, isso parece ser exatamente o que está acontecendo.
Dan Getz
Sim, é isso que o slow clock Adjust (sclockadj) está fazendo. @ mr.spuratic
adrelanos
1
pedido systemd recurso: option to disable systemd's “Time has been changed” message spam in journal log github.com/systemd/systemd/issues/5207
adrelanos

Respostas:

10

A mensagem vem das src/core/manager.cfontes systemd. É codificado para usar o nível de log do sistema INFO.

Por padrão, o systemd registra mensagens com nível INFO, se você puder alterar isso alterando /etc/systemd/system.confpara:

LogLevel=notice

mas você também perderá muitas outras mensagens informativas.

Talvez seja melhor corrigir src/core/manager.cpara ler:

 log_struct(LOG_DEBUG,
            MESSAGE_ID(SD_MESSAGE_TIME_CHANGE),
            "MESSAGE=Time has been changed",
            NULL);

( LOG_DEBUGé definido como o próximo nível mais alto e mais alto sys/syslog.h), ou comente a mensagem inteira.

Não encontrei uma maneira de relatar apenas alterações de timer com tamanho mínimo de X segundos. Mas se isso for possível, sem dúvida, seria um patch mais complexo e propenso a erros.

Anthon
fonte