Aug 1 00:04:22 HOSTNAME dovecot: Time just moved backwards by 11 seconds. This might cause a lot of problems, so I’ll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards |
ログの内容は“時間がズレ過ぎて問題が発生したかもしれないので、dovecotを停止する”ってことですが
ちょうどその時にntpdサービスが時間同期で11秒ほど修正してましたので、これが直接の原因だと思います。
解決策としては、ntpdサービスで大幅な時間の調整をさせないようにすれば良いのですが
ntpdサービスの動作方法として、stepモード(即時同期)とslewモード(ゆっくりと同期)がありますので
slewモードにすればdovecotサービスが落ちることはなくなります。
そこで、/etc/sysconfig/ntpdを編集すれば、ntpdサービスの動作モードを変更できます。
#vi /etc/sysconfig/ntpd 修正前 # Drop root to id ‘ntp:ntp’ by default. OPTIONS=”-u ntp:ntp -p /var/run/ntpd.pid ” ←“-x”を追記 修正後 ntpdサービスの再起動 ntpdサービスの起動オプションを確認 |
以上で、ntpdサービスの動作がslewモードになりますが、大幅な時間のズレを直すのに
時間がかかるようになるという弊害もありますので、適宜対応して下さい。
ログにある http://wiki.dovecot.org/TimeMovedBackwards を斜め読みしてみると
・ntpdateで時間調整するのは推奨しない
・仮想サーバでの使用は推奨しない
解決策として
・ntpdで定期的に時間を同期させる
・clockspeed(http://cr.yp.to/clockspeed.html)かchrony(http://chrony.sunsite.dk/)を使え
・スクリプトを使ってdovecotサービスの動作確認
スクリプトの内容はページ下に公開されており、dovecotサービスが起動(port143がlisten)しているかどうかを確認できます。
これは”lsof”コマンドと”netstat”コマンドの2種類があるので、環境に適した方を選べますのでcronに設定すれば
時間ズレでdovecotサービスが停止してもどうにかなる、そうです。
===========================================
ntpdについてのメモ
■通常設定の場合
128ms以内の場合はslewモード、それ以上はstepモードで動作する。
この敷居値は設定次第(step or slew)では600秒まで変更することができるが、もし600秒のズレだと修正までに14日かかる。
■動作モードの種類
・stepモード
即時に時間同期
・slewモード
1秒間に0.0005秒ずつ修正
■ntpサービスの動作状況の確認コマンド
ntpd -d
例:#ntpd -dntpd 4.2.2p1@1.1570-o Sat Dec 19 00:56:13 UTC 2009 (1) addto_syslog: precision = 1.000 usec create_sockets(123) addto_syslog: no IPv6 interfaces found addto_syslog: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16 addto_syslog: bind() fd 16, family 2, port 123, addr 0.0.0.0, in_classd=0 flags=9 fails: Address already in use addto_syslog: bind() fd 16, family 2, port 123, addr 127.0.0.1, in_classd=0 flags=5 fails: Address already in use addto_syslog: bind() fd 16, family 2, port 123, addr 192.168.5.2, in_classd=0 flags=25 fails: Address already in use init_io: maxactivefd 0 local_clock: time 0 base 0.000000 offset 0.000000 freq 0.000 state 0 addto_syslog: getaddrinfo: “::1” invalid host address, ignored getaddrinfo: “::1” invalid host address, ignored. key_expire: at 0 peer_clear: at 0 next 1 assoc ID 2792 refid INIT newpeer: 192.168.5.2->192.168.5.1 mode 3 vers 4 poll 6 10 flags 0x1 0x1 ttl 0 key 00000000 addto_syslog: frequency initialized -90.700 PPM from /var/lib/ntp/drift local_clock: time 0 base 0.000000 offset 0.000000 freq -90.700 state 1 report_event: system event ‘event_restart’ (0x01) status ‘sync_alarm, sync_unspec, 1 event, event_unspec’ (0xc010) addto_syslog: sendto(192.168.5.1) (fd=-1): Bad file descriptor transmit: at 1 192.168.5.2->192.168.5.1 mode 3 auth_agekeys: at 1 keys 1 expired 0 timer: refresh ts 0h |
コメント
My cousin recommended this blog and she was totally right keep up the fantastic work!