アプリケーションサーバーのログの時間と、DBに登録される時間が大幅にずれていて、不具合に悩まされたのでメモです。
ec2サーバーがntpサーバーの同期が取れていなくて、サーバーの時刻がたまにずれていることがある。
ntpqコマンドを使ってntpサーバーの同期の確認、それからntpサーバーの同期を取ったあとntpdを再起動することで対処可能
・時刻がずれてた時の確認内容
サーバーの現在時刻確認
ここが他のサーバーと大きくずれている場合、ntpサーバーと同期が取れてない可能性がある。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ date
2019年 9月 8日 日曜日 07:27:09 UTC
ntpサーバーの同期調査
*がどこかのサーバーに付いていれば、同期されているので、時刻がずれることはないはず。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*169.254.169.123 10.206.239.196 3 u 4 8 377 0.236 -0.877 0.133
2.amazon.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
+kuroa.me 242.71.143.169 2 u 27 64 37 9.782 -1.240 95.515
-149.28.28.160 ( 103.1.106.69 2 u 27 64 37 4.320 -0.580 95.256
+sv1.localdomain 133.243.238.244 2 u 28 64 37 3.486 -1.475 94.768
-ec2-13-230-38-1 133.243.238.243 2 u 20 64 27 1.884 -1.152 86.029
・もしntpサーバーと同期が取れていない場合、どうするか。
ntpdateでntpサーバーと同期した後にntpdを再起動する。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo service ntpd stop
Shutting down ntpd: [ OK ]
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo ntpdate -Bv 0.amazon.pool.ntp.org
8 Sep 09:33:59 ntpdate[23382]: ntpdate 4.2.8p12@1.3728-o Fri May 3 15:36:35 UTC 2019 (1)
8 Sep 09:34:05 ntpdate[23382]: adjust time server 18.182.27.134 offset -0.000604 sec
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo service ntpd start
Starting ntpd: [ OK ]
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo service ntpd status
ntpd (pid 23401) is running...
時刻の確認
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ date
2019年 9月 8日 日曜日 09:34:07 UTC
ntpdの状況確認
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ntpstat
synchronised to NTP server (169.254.169.123) at stratum 4
time correct to within 17 ms
polling server every 256 s
ntpサーバー同期の確認
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*169.254.169.123 10.206.239.196 3 u 6 16 377 0.198 -0.028 0.019
2.amazon.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
+ntp-b2.nict.go. .NICT. 1 u 56 64 377 5.412 -0.525 0.434
-ec2-18-182-27-1 133.243.238.163 2 u 60 64 377 0.364 -0.571 0.384
-y.ns.gin.ntt.ne 249.224.99.213 2 u 58 64 377 3.944 1.781 0.555
+kuroa.me 242.71.143.169 2 u 59 64 377 9.750 -0.203 0.394
[ec2-user@ip-172-31-28-129 ~]$
※古いAMIを使ってるサーバーも多いと思うが、awsで提供されているAmazon Linux2を使えば、Amazon Time Sync Serviceが使えるので、ntpサーバーの同期で悩む心配はないと思う。
https://dev.classmethod.jp/etc/amazon-linux-ami-2018-03-amazon-time-sync-service/
予防できないか考えたが、そもそも時刻がずれる原因が対策できないものもあると思うので、定期的に確認して、時刻がずれてないか確認するのがいいかなーと思います。
一番いいのはAmazon Linux2を使うことだと思いますけど。