Nagios - check_ntp_time - Offset Desconhecido

5

Eu tenho um servidor NTP local em execução na sub-rede para manter outros nós de sub-rede em sincronia, sem que todos os nós sincronizem com os servidores upstream. Mas, ao implementar o plugin check_ntp_time para o Nagios, estou percebendo um problema frustrante, onde o nagios continua relatando erros críticos para nós locais sincronizando com o servidor ntp local.

Aqui está a configuração ntp no servidor ntp local, observe as entradas servidor do servidor e a entrada restringir , de acordo com minha pesquisa, isso qualifica o nó como um servidor ntp quais nós locais podem sincronizar.

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod limited nomodify notrap nopeer noquery
restrict -6 default kod limited nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

# Makes me able to answer requests from local nodes
restrict 10.0.0.0 mask 255.255.192.0 nomodify notrap

# My source
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org

logfile /var/log/ntp/server.log

statistics loopstats
statsdir /var/log/ntp/
filegen peerstats file peers type day link enable
filegen loopstats file loops type day link enable

E nos nós locais do servidor não-ntp, tudo é o mesmo, exceto que a entrada restrict é removida e as entradas server fazem referência apenas ao servidor ntp local: server ntp.example.com iburst .

Todos os nós locais podem resolver ntp.example.com .

O problema que estou tendo é quando eu executo o seguinte comando do servidor nagios:

/usr/lib64/nagios/plugins/check_ntp_time -H node-a-1 -v

E a saída:

sending request to peer 0
response from peer 0: offset -0.002921819687
sending request to peer 0
response from peer 0: offset -0.0001939535141
sending request to peer 0
re-sending request to peer 0
re-sending request to peer 0
re-sending request to peer 0
re-sending request to peer 0
re-sending request to peer 0
re-sending request to peer 0
discarding peer 0: stratum=0
overall average offset: 0
NTP CRITICAL: Offset unknown|  

Isso acontece para todos os nós, exceto o servidor ntp local, que faz referência aos servidores upstream. No começo eu pensei que era problema IPTables, mas eu tenho as portas pinholed em cada nó ntp local (para permitir acesso nagios para verificar a diferença de tempo):

ACCEPT     udp  --  eth0   *       10.0.0.0/18          0.0.0.0/0           multiport dports 123 /* 777 allow ntp access */ state NEW

Versões:

nagios-plugins-ntp: 1.4.16
ntp: 4.2.6p5-1.el6.centos

Qualquer ajuda é muito apreciada, eu realmente não posso enviar o trabalho nagios até resolver isso, como você sabe manter os horários do servidor em sincronia é prioridade 1.

- Editar -

Pelos comentários, aqui estão os resultados de ntpq -p , em vários nós:

# Actual NTP Server (10.0.0.2)
==============================================================================
+propjet.latt.ne 241.199.164.101  2 u  105  128  337   14.578   12.954   7.138
+x2la01.hostigat 63.145.169.2     3 u   21  128  377   16.037   13.546   4.090
*pacific.latt.ne 241.199.164.101  2 u   72  128  377   15.148   24.434   7.403

# Local node 1
==============================================================================
*service-a-1.sn1 204.2.134.163    3 u    9  128  377    0.228    5.217   1.296

# Local node 2
==============================================================================
*service-a-1.sn1 204.2.134.163    3 u   91  128  377    0.200    3.608   1.167
    
por Mike Purcell 29.08.2014 / 18:43

1 resposta

7

A linha chave aqui é esta:

discarding peer 0: stratum=0

Um servidor NTP que se identifica como estrato 0 é uma violação da especificação (é reservado para relógios atômicos ou algo parecido). Eu tive esse problema anos atrás com alguns hosts BSD e Mac OS X. Eu acabei hackeando a verificação de estrato da fonte e mantendo uma compilação separada do plugin para hosts "problemáticos".

As linhas ofensivas são 254-257 (atualmente, de qualquer forma ), se você quiser arrancar isso. É um hack, mas funciona para mim; -)

Eu encontrei este tópico nos arquivos da lista de discussão sobre ele. Eu acho que havia outro em que eu sugeri adicionar uma opção de linha de comando para ignorar a verificação do estrato, mas não acho que tenha sido uma boa idéia.

Existe também um relatório de erros , mas não produziu nada de útil até onde eu posso dizer.

    
por 04.09.2014 / 17:38