Como provar que systemd-timesyncd
os servidores NTP são consultados regularmente para garantir que o relógio do sistema permaneça "sincronizado"?
Entendo que posso verificar o status de sincronização sim/não executando timedatectl
, e ele me diz 'sim', mas isso não poderia ser apenas um status obsoleto de meses antes? Não vejo nenhuma evidência de que qualquer componente de software esteja realmente entrando em contato com o pool de servidores NTP para realmente verificar regularmente.
Com a configuração padrão PollIntervalMaxSec
de 2048, entendo que ele deve alcançar o NTP, no máximo, a cada 34 minutos para fazer uma comparação de relógio. É assim que deve funcionar?
Se eu executar, journalctl -u systemd-timesyncd
só vejo evidências de eventos de sincronização para reinicializações ou apt upgrade
s. Na verdade, semanas se passam sem nenhuma entrada de log de sincronização de relógio.
Para minha aplicação sensível ao tempo, estou preocupado que se semanas/meses passarem sem nenhuma verificação de NTP, o relógio do meu sistema pode variar significativamente. Eu gostaria que ele verificasse uma vez por dia e provasse que isso acontece.
É possível que essa
systemd-timesyncd
não seja a escolha mais apropriada de cliente NTP para você. Você pode querer editar sua pergunta para esclarecer o que significa "sensível ao tempo" para sua aplicação específica:A versão mais recente da
systemd-timesyncd
página do manual diz:A maioria dos aplicativos sensíveis ao tempo, na minha experiência, exigirá um entendimento detalhado de quando e como grandes transições de passo podem acontecer, ou uma garantia total de que haverá apenas ajustes graduais, nunca transições de passo enquanto o aplicativo estiver em execução. Não li o código-fonte de
systemd-timesyncd
(ainda), mas não vejo nenhuma maneira de reiniciarsystemd-timesyncd
com uma garantia de que não fará nenhuma transição de passo.Mesmo que
systemd-timesyncd
tenha verificações de sanidade para evitar retroceder o tempo do sistema enquanto o serviço está em execução, posso ver uma possível interação ruim com atualizações automáticas: sesystemd-timesyncd
for reiniciado por uma atualização automática (de si mesmo ou de alguma biblioteca da qual ele depende, comoglibc
), ele pode fazer uma transição de passo ao reiniciar osystemd-timesyncd
serviço, possivelmente até mesmo um passo "para trás no tempo". Para, por exemplo, bancos de dados com dados sensíveis ao tempo, isso seria puro veneno.Em ambientes modernos, onipresentemente conectados à internet e com crescentes cargas de trabalho de administradores de sistemas e requisitos de conformidade de segurança, não ter atualizações automatizadas está se tornando uma solução impraticável. Portanto, um administrador de sistema deve configurar o sistema para ser tolerante à automação sempre que possível - e com aplicativos sensíveis ao tempo, isso significa, entre outras coisas, prestar atenção para garantir que o serviço de sincronização NTP seja reiniciável/reconfigurável sem causar problemas aos aplicativos de "carga útil" do sistema. Parece-me que isso
systemd-timesyncd
pode não cumprir esse critério./var/lib/systemd/timesync/clock
Os registros de data e hora dos/run/systemd/timesync/synchronized
arquivos já mencionados por D'Arcy Nader parecem ser a melhor verificação diária que você pode fazer.Se você quiser monitoramento em tempo real, também poderá usar o
timedatectl timesync-status --monitor
comando nas versões 239 e superiores.observe o
^*
significado current best; se você tiver^?
lá, então não está funcionando e não pode ver um servidor de tempo; primeiro tente parar qualquer firewall comoservice firewalld stop
e então espere 1 minuto e faça umservice chronyd restart
e então espere 2 minutos no máximo e verifique novamentechronyc sources
. Se você digitar rápido e verificar tudo isso dentro de 5 segundos, você continuará a ver^?
. Primeiro você tem que ter certeza de que está falando com um servidor de tempo com sucesso. Então...se não estiver funcionando, você terá tudo zeros para coisas na saída de rastreamento. Essa saída de rastreamento deve fazer sentido.
em
/etc/chrony.conf
ter esses dois sem comentários eservice chronyd restart
e supondo que você queira dizer
chonyd
e nãontpd
tão bem... Diferença entre chronyd e ntpdcitando de
man systemd-timesyncd.service