이 포스팅과 함께 이 글도 참조 할 것

ntpq -p output

-> ntp 관련 명령어 실행시의 파라미터 값에 대한 설명 안내.

 

아래와 같이 ntpq -p 명령을 통해  ntp 서버와의 상태를 확인하면 서버 호스트(ip) 앞에 기호가 없는 경우가 있을 수 있다.

그럴때 ntpstat와 ntptime 명령을 통해 실제 ntp 서버와의 통신에 문제가 있는지 확인하여 문제가 없다면 시간 동기화에는 이상이 없다고 판단할 수 있겠다.

[root@node01 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 106.247.248.106 203.248.240.140  3 u    -   64    1    2.984    2.454   0.000
 send.mx.cdnetwo .INIT.          16 u    -   64    0    0.000    0.000   0.000
 112.220.115.166 .INIT.          16 u    -   64    0    0.000    0.000   0.000

- 기호가 없다가도 곧 나타날 수 있으며, 유동적이다.

 

아래는 시스템 시간을 + - 1초 차이를 두게 함

- 시스템 시간 1초 증가 시키기
# echo `date '+%H:%M:%S'` | awk -F\: '{printf "%02d:%02d:%02d" ,$1 ,$2 ,($3+61)%60}' | date '+%H:%M:%S' --set "`xargs`"

- 시스템 시간 1초 감소 시키기
# echo `date '+%H:%M:%S'` | awk -F\: '{printf "%02d:%02d:%02d" ,$1 ,$2 ,($3+59)%60}' | date '+%H:%M:%S' --set "`xargs`"

- 특정 시간으로 시스템 시간 변경
# date -s "2015-08-06 20:49:20"

- ntptime 상태 확인
# watch -d -n1 'ntptime | grep returns'
or
# for num in `seq 0 300`; do /usr/sbin/ntptime | grep return; sleep 1; done

- ntp 상태 확인
# watch -d -n1 ntpstat

- 1초 이상 차이가 나는 즉시 ntptime | grep returns (for문 이용)으로 확인하면 ERROR로 표시된다.
- 시간에 민감한 시스템에서는 임의로 시간 변경을 하면 장애로 이어질 수 있으므로 주의한다.

 

ntp 상태 확인

= 비정상 상태 =
[root@node01 ~]# ntpstat
unsynchronised
   polling server every 64 s

[root@node01 ~]# ntptime | grep returns
ntp_gettime() returns code 5 (ERROR)
ntp_adjtime() returns code 5 (ERROR)


= 정상 상태 =
[root@node02 ~]# ntpstat
synchronised to NTP server (211.233.40.78) at stratum 3
   time correct to within 108 ms
   polling server every 64 s

[root@node02 ~]# ntptime | grep returns
ntp_gettime() returns code 0 (OK)
ntp_adjtime() returns code 0 (OK)

 

tcpdump를 사용하여 ntp 통신 상태 확인

# tcpdump -nvvv -i eth0 udp port 123 | grep Timestamp

 

ntp 서버와 즉시 시간 동기화 하기

- ntpd 데몬 정지
# /etc/init.d/ntpd stop

- ntp 서버와 즉시 시간 동기화 하기
# /etc/init.d/ntpdate start
-> ntpdate는 ntpd 데몬이 실행중이면 수행되지 않는다.

- ntpd 데몬 시작
# /etc/init.d/ntpd start

 

* 참고로 ntp.conf 파일의 서버 선언 부분에 iburst 옵션을 넣는걸 권장한다.

[root@node01 ~]# cat /etc/ntp.conf | grep iburst
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst

- 만약 iburst 옵션이 없으면 ntpd 데몬이 시작하는 시점에 시스템 시각이 약 10분 이상 틀어져 있을 경우에 동기화하는데 너무 오랜 시간이 걸린다.

 

* ntpdate 는 서버 시작시 실행되도록 한다.

[root@node01 ~]# chkconfig --list | grep ntpdate
ntpdate         0:off   1:off   2:on    3:on    4:on    5:on    6:off

- 시스템이 부팅될 때 메인보드 CMOS Clock (즉, 하드웨어 시계)에 의해 OS 시각이 결정된다.

- 이 때 CMOS Clock 이 맞지 않을 경우 ntpd 에 의해 ntp 서버와 동기화 될때 까지 시간이 틀어져 있게 된다.

- ntpdate는 시스템 부팅때 ntpd 보다 먼저 실행이 되어 ntp 서버와 그 즉시 동기화를 하므로 어플리케이션 서비스가 구동되기 전에 정확한 시간을 보장 해준다.

 

* 기타 ntp 관련 명령

[root@node01 ~]# ntpq -c rl
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd 4.2.6p5@1.2349-o Mon Jul 15 09:22:49 UTC 2013 (1)",
processor="x86_64", system="Linux/2.6.32-504.23.4.el6.x86_64", leap=00,
stratum=3, precision=-24, rootdelay=63.405, rootdisp=95.586,
refid=211.233.40.78,
reftime=d96dda85.91443fc2  Thu, Aug  6 2015 22:07:17.567,
clock=d96dda8d.d4f6694c  Thu, Aug  6 2015 22:07:25.831, peer=40203, tc=6,
mintc=3, offset=-11.991, frequency=-16.429, sys_jitter=3.197,
clk_jitter=7.514, clk_wander=0.613

[root@node01 ~]# ntpq -c rl | grep delay
stratum=3, precision=-24, rootdelay=63.405, rootdisp=95.901,

- leap (윤초) 관련된 상태도 확인 가능하다.

ntp 상태 확인 및 ntpdate

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다