2009年11月26日木曜日

dovecot ダウン

メールが受信できない・・・ただし送信は問題なくできる。ん?
ということで調査開始。

・環境
CentOS5.4 + Postfix 2.3.3 + Dovecot 1.0.7

・原因
maillogを検索してみると・・・
Nov 26 04:01:49 mail01 dovecot:
Time just moved backwards by 13 seconds.
This might cause a lot of problems,
so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards

時刻が13秒戻りました。
これにより多くの問題を引き起こす可能性があります。
ですので、私は自分で死にます。http://wiki.dovecot.org/TimeMovedBackwards
こんなことが書かれていました。

とりあえず吐き出されているDovecot Wikiのリンク先http://wiki.dovecot.org/TimeMovedBackwardsを見てみたところ
  1. ntpdateを使っていますか?良くありません
  2. 仮想化環境を使用していますか?
と書かれていた。
このサーバは仮想環境ではないが、時刻合わせのスクリプト(ntpdateを使用)を1日1回実行されるようcron.daily内に配置している。ntpdateは一瞬にして時刻が修正されるので、これにより13秒戻ったということになる。ダウンした時刻とcron.dailyの時刻(4:02)がほぼ同じなので、これが原因のようです。

・解決方法
Dovecot Wikiによるとntpdを使用してください。とあるのでntpdサービスを使用して時刻同期を取るように変更します。
※ntpdの時間同期は、ずれを徐々に修正するような仕組みになっている。遅れているいる場合は刻み速度を早くして修正し逆に進んでいるときは刻みを遅くして修正するのでいきなり時刻がずれることはない。

インストール
# yum install ntp

設定
※タイムサーバとして稼動も可能だがとりあえず、ローカルホストの時刻同期専用とする。
# vi /etc/ntp.conf
-----------------------------------------------------------------------------
アクセス制御について
#restrict default kod nomodify notrap nopeer noquery   → コメント(IPv4)
#restrict -6 default kod nomodify notrap nopeer noquery  → コメント(IPv6)
restrict ignore → 追記(とりあえず全てのアクセスを拒否)

restrict 127.0.0.1 → ローカルホストは許可(IPv4)
#restrict -6 ::1 → ローカルホストは許可(IPv6) 使わないのでコメント

参照タイムサーバ
#server 0.centos.pool.ntp.org → コメント
#server 1.centos.pool.ntp.org → コメント
#server 2.centos.pool.ntp.org → コメント
server -4 ntp.nict.jp      → 追記(NICT)※-4 はIPv4
server -4 ntp.jst.mfeed.ad.jp → 追記(上記と同期されている)
server -4 ntp.ring.gr.jp    → 追記(Ring Server Project)

上記サーバがどれも応答しないときの参照先?よくわかりません
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
-----------------------------------------------------------------------------
 
restrictで始まる行は指定したホストに対してのNTPアクセスを制御します。またrestrictは最後の設定条件で有効になるので、最初に全拒否をして接続を許可していくスタイルになります。


  • ignore:全てのパケットを拒否
  • noquery:クエリーを拒否
  • nomodify:設定変更のクエリーを拒否
などがあるようです。詳しくはこちらを参照してください。

・起動
時刻差が大幅にあると起動できないため、一度手動で合わせる。
# ntpdate ntp.nict.jp
 
開始
# /etc/init.d/ntpd start
 
自動起動
# chkconfig ntpd on
# chkconfig --list ntpd
ntpd     0:off  1:off  2:on  3:on  4:on  5:on  6:off

・確認
# ntpq -p
 
 
 
 
 
 
remote列の左側にある"*"は同期中で、"+"がいつでも使用できることを表しています。
尚、開始後に同期するまで5~10分程度必要です。
これで時刻が急に変化することがなくなりましたので大丈夫でしょう。
 

0 件のコメント:

Google検索