Atualmente, estamos utilizando o Nagios para monitorar nossos servidores de produção no meu local de trabalho. Nossa instância do Nagios é configurada em um servidor Linux onde monitoramos as máquinas Linux e Windows.
Eu tenho experimentado o seguinte problema do Nagios com relação ao tempo do NTP já há algum tempo em vários dos nossos servidores Windows:
Porfavor,vejaocomandoabaixoqueestámedandoproblemas:
check_windows_time!us.pool.ntp.org!3000!6000
Pareceque$ARG1$é'us.pool.ntp.org'.Oquecorrespondea'Falhadepesquisadohost$ARG1$'?EssesservidoresestãotendoproblemaspararesolverohostNTP(us.pool.ntp.org)?Emcasoafirmativo,estoucuriosoparasaberporquealgunsservidoresestãotendoproblemaspararesolveressehost,enquantooutrosnãoestão?Euestouusandoomesmocomandoemmuitosoutrosservidoressemproblemas.
Apenasparaobservar,todasasoutrasinstruçõesdemonitoramentoestãofuncionandobemnosservidorescomesseproblema(EspaçoemDisco,UsodaCPU,usodeRAM,etc).PareceserocomandoNTPqueestámedandoproblemas.
EuconfigureioNTPdamesmaformaemmuitosoutrosservidores,masnãoestoutendoesseproblema,porissonãoseioquepoderiaestarcausandoesseproblema.
Alguémjáexperimentouumerrosemelhanteantes?
Porfavor,deixe-mesabersevocêprecisardealgumainformaçãoadicionaleeuficareifelizemesclarecer.
Obrigado!
EDIT1:Seajudaremtudo,possonslookup'us.pool.ntp.org'dosservidoresafetados.Assim,osservidorescomproblemaspodemresolveressenomeDNS.
EDIT2:configuração'check_windows_time'doNSC.ini:
check_windows_time=check_windows_time.bat$ARG1$$ARG2$$ARG3$
check_windows_time.bat:
@echooffSETLOCALrem***************************************************remCheck_Windows_Time.batremremAuthor:MichaelvandenBergremCopyright2012-PCS-ITServicesB.V.(www.pcs-it.nl)remremThisNagiospluginwillcheckthetimeoffsetremagainstaspecifiedtimeserver.rem***************************************************if[%1]==[](gotousage)else(settime_server=%1)if[%1]==[/?](gotousage)else(settime_server=%1)if[%2]==[](setwarn_offset=nul)else(setwarn_offset=%2)if[%2]==[$ARG2$]setwarn_offset=nulif[%3]==[](setcrit_offset=nul)else(setcrit_offset=%3)if[%3]==[$ARG3$]setcrit_offset=nulfor/f"tokens=*" %%t in ('w32tm /stripchart /computer:%time_server% /samples:1 /dataonly') do set output=%%t
if not "x%output:0x80072af9=%"=="x%output%" goto host_error
if not "x%output:0x800705B4=%"=="x%output%" goto comm_error
if not "x%output:error=%"=="x%output%" goto unknown_error
if not "x%output:)=%"=="x%output%" goto unknown_error
set time_org=%output:*, =%
set time=%time_org:~1,-9%
if %warn_offset% == nul (set warn_perf=0) else (set warn_perf=%warn_offset%)
if %crit_offset% == nul (set crit_perf=0) else (set crit_perf=%crit_offset%)
set perf_data='Offset'=%time%s;%warn_perf%;%crit_perf%;0
if %time% geq %crit_offset% goto threshold_crit
if %time% geq %warn_offset% goto threshold_warn
if %time% lss %warn_offset% goto okay
goto unknown_error
:usage
echo %0 - Nagios plugin that checks time offset against a specified ntp server.
echo.
echo Usage: %0 ^<timeserver^> ^<warning threshold in seconds^> ^<critical threshold in seconds^>
echo Examples: %0 us.pool.ntp.org 120 300
echo %0 my-domain-controller.local 120 300
exit /b 3
:host_error
echo UNKNOWN: Lookup failure for host %time_server%
exit /b 3
:comm_error
echo UNKNOWN: Unable to query NTP service at %time_server% (Port 123 blocked/closed)
exit /b 3
:threshold_crit
echo CRITICAL: Time is %time_org% from %time_server%^|%perf_data%
exit /b 2
:threshold_warn
echo WARNING: Time is %time_org% from %time_server%^|%perf_data%
exit /b 1
:okay
echo OK: Time is %time_org% from %time_server%^|%perf_data%
exit /b 0
:unknown_error
echo UNKNOWN: Unable to check time (command error)
exit /b 3
EDIT 3: A mensagem de erro que estou recebendo parece ser resultado da condição a seguir:
if not "x%output:0x80072af9=%"=="x%output%" goto host_error
Alguém tem alguma ideia do que isso significa ou como posso resolver isso?