Prováveis ​​causas de morte inesperada de NTPD e soluções


9

Em um aplicativo Web que usa s3 para armazenamento físico de documentos, estamos enfrentando problemas com o NTP morrendo continuamente. Isso parece acontecer aproximadamente uma ou duas vezes por dia. Há muito pouca informação fornecida quando isso ocorre, exceto que o arquivo PID existe, mas o serviço está inoperante quando verifico o status.

Alguém pode sugerir causas prováveis ​​de morte de NTPD? Estou assumindo que talvez o desvio do relógio esteja causando sua morte, mas também não tenho certeza do que causaria isso. Há memória mais do que suficiente e espaço em disco disponível.

A última vez que o serviço morreu, esta foi a saída:

Sep  6 06:15:25 vm02 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="988" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep  6 06:17:06 vm02 ntpd[10803]: 0.0.0.0 0618 08 no_sys_peer
Sep  6 08:01:10 vm02 ntpd[10803]: 0.0.0.0 0617 07 panic_stop -28101 s; set clock manually within 1000 s.

Qual SO e versão? Existe um esconderijo em execução? Quantos servidores ntp estão configurados? Quais opções ntpd são ativas?
Nils

Você poderia tentar remover o arquivo ntp.drift, seu valor pode ser muito alto e causando inclinação
Rqomey

Respostas:


6

Eu diria que não existe um método de 1 minuto para encontrar o motivo exato.

Tínhamos problemas semelhantes antes em nosso ambiente ESXi. Para encurtar a história, descobrimos que o relógio do host ESXi diminuiu bastante e as VMs convidadas estavam sincronizando o tempo do host ESXi e do servidor NTP upstream. Isso causou confusão no NTPd em VMs, portanto, morreu com bastante frequência.

Também descobrimos em alguns casos raros que a perda aleatória de pacotes também causou o encerramento do NTPd porque o tempo de ida e volta entre o servidor e o servidor NTPd upstream é usado para calcular o tempo de desvio.

Nos dois casos acima, se o NTPd perceber uma grande variação no tempo, por exemplo, mais de mil, ele será encerrado por padrão. -g opção ajudará um pouco.

   -g      Normally,  ntpd  exits  with  a  message to the system log if the offset exceeds the panic threshold,
           which is 1000 s by default. This option allows the time to be set to any value  without  restriction;
           however,  this  can  happen only once. If the threshold is exceeded after that, ntpd will exit with a
           message to the system log. This option can be used with the -q and -x options. See the tinker command
           for other options.

Você pode dar uma olhada no log do sistema , que deve ter algumas palavras para lhe dar uma dica. Você também pode monitorar a saída "ntpq -p" para ter uma idéia aproximada de como o deslocamento se desenvolve.


Ao executar o ntpd nas VMs, você também não deve sincronizar a hora com o host e não deve incluir o relógio local como referência.
Paul Engrenagem

3

A mensagem de log indica claramente que o desvio do relógio é o motivo da saída. Soluções possíveis:

  • Inicie o ntpd com o sinalizador -g; no entanto, isso não corrigirá a causa raiz, que é a inclinação do relógio.
  • Execute o ntpdate antes de iniciar o ntpd; provavelmente a mesma ressalva.
  • Adicione mais fontes de tempo; O NTP precisa de 4-6 fontes para manter uma boa precisão. Uma maneira simples de fazer isso é incluir repetidas referências a [0-3] .YOURREGION.pool.ntp.org na sua configuração, por exemplo

    server 0.au.pool.ntp.org iburst
    server 1.au.pool.ntp.org iburst
    server 2.au.pool.ntp.org iburst
    server 3.au.pool.ntp.org iburst
    
    server 0.au.pool.ntp.org iburst
    server 1.au.pool.ntp.org iburst
    server 2.au.pool.ntp.org iburst
    server 3.au.pool.ntp.org iburst
    

1

Outra opção que você pode tentar é crony. Em nossos testes, ele tem desempenho mais estável que o ntpd e lida melhor com o desvio de tempo experimentado em ambientes virtuais.

http://chrony.tuxfamily.org/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.