daemontoolsによる「ntpd」の監視

最近、「qmail」ログ解析メールに、
何もかかれていない、というのが多発しました。

cronによるスケジュールの時間を変更してみてもダメ。

と、同時に、最近サーバーの時計がよく狂うな、と思ってました。

なぜ気づいたかというと、
このブログのエントリーを書くときの「作成日時」がでたらめなんです

ふと、ntpd止まってる???

と思い、プロセスを見てみると案の定、落ちている。。。。

ネットで検索すると、まさにそれらしきページがありました。

『EZ-NET レポート: ntpd ばたばた日記』

そのサイトによると、

どうやらこれから察するに、ntpd は、自身の時刻が 1000秒以上の開きがあると、ntpd はその役割を終えてしまうようです。しばらくしてから落ちるのは、タイムサーバへ時刻の問い合わせをしているせいなのでしょう…。

とのこと。

ということで、「daemontools」にて、ntpdサービス監視することにしました。

daemontoolsはすでに、qmailの導入時に一緒に入れているので、
後はntpdに対して設定するだけです。

まず、/etc/ntpディレクトリに次のような起動スクリプトを「run」という名称で作成します

#!/bin/sh
exec /usr/local/bin/ntpd -d

ファイルに実行権限を与えます。

chmod +x /etc/ntp/run

次に直下に「log」ディレクトリを作成し、/etc/ntpディレクトリ自体にもt属性を与えます。

mkdir log
chmod +t /etc/ntp

そして、logディレクトリに次のような起動スクリプトを「run」という名称で作成します

#!/bin/sh
exec multilog -t s4096 n10 /var/log/ntpd

これも同様に実行権を与えておきます。

chmod +x /etc/ntp/log/run

そして最後に、/serviceディレクトリにシンボリックリンクを張って終了です。

ln -s /etc/ntp /service/

いちをサービス監視できているかを確認します。

svstat /service/ntp

svstat ntp
ntp: up (pid 14541) 257 seconds

カウントアップしているので、いちを監視できているようです。

成功だ〜!

---------------------------------------------
2005/5/3 追加

いくらdaemontoolsntpdの再起動を繰り返しても、
もともと1000秒以上狂った時計をntpdで合わせようと思っても
ダメだと言うことに気がつきました(笑)

実際ログを見たら、立ち上がっては落ち、立ち上がっては落ちを繰り返して、
結局時計が狂ってしまってました(^^;)

ということで、ntpdを起動する前に、手動で外部ntpdに一度合わせることにしました。

#!/bin/sh
/usr/sbin/ntpdate 任意の時計サーバ
exec /usr/local/bin/ntpd -d

またこれで様子を。。。

参考URL:
『EZ-NET レポート: ntpd ばたばた日記』
daemontoolsによるロギングとプロセス監視(2/3)
daemontoolsでログ管理(multilog)〜マロンくん.NET〜