Ruby プロセスでてきとーにサーバプロセスを立ち上げたとき、どうやって死活監視すればいいか。てきとーに作ったプログラムなので、変なところで例外あげてる可能性も十分ある。どうしよう。
真面目にやるなら、監視ソフトでやるんでしょうが、てきとーサーバに、その監視ソフトの面倒を見るなんてのは無理。毎日見るソフトウェア、例えば IRC proxy なんかは、つなげなかったら駄目なことがわかるので気づくが、裏でモクモクと何かしておいて、時々、そのモクモクの結果を知りたい、というケース。
要件をまとめる。
ということで、munin を使おうということに。munin は Ubuntu とかなら簡単にインストールできるし、安定してるし、で。しかし、ウェブサーバにつないで死活監視、みたいなのを簡単にやるのはないらしい。ぐぐると、【Munin】ウェブサーバのレスポンスを調べるhttpingプラグイン書きました というのがヒット。httping というものを使ってアクセス速度を見るらしい。なるほど。
で、やってみると、warning, critical が設定していないので、どんな状態であろうとメールは来ない。そこで、/etc/munin/plugin-conf.d/munin-node に、
[httping_xxx.example.com] env.URL http://xxx.example.com env.warning 0.001:1000 env.critical 0.001:2000
と設定を書き込んであげると、失敗時に 0 になるので、critical だとメールで教えてくれる。
よしよしと思っていたら、httping 自体はレスポンスが 200 以外でも問題無く速度を測ってくれるので、今回の用途には問題(200 であることを監視したい)。
そこで、
$httping_bin -c $COUNT -G -S $URL | tr '+|=' ' ' | awk '{connect+=$9; processing+=$10} END{print "connect.value",connect/'$COUNT'"\n""processing.value",processing/'$COUNT'}'
これを、-s でステータス出すようにして、grep 200 とフィルタすることで解決。
昨日は結婚式記念日で、あれから3年。お祝いにちょっと良いランチを食いにいった。
spamassasin を使ってみたんだけど、spamc が --timeout 指定をしているにも関わらず、刺さるという問題があって、使い物にならないことがわかった。
test
日記の更新をサボっていたんですが、色々ありました。
で、今日は初登園。あとちょっとで4ヶ月なんですが、親がこんなに長時間離れているのは初だろうな...。
で、VPS 切り替えのために、やっと ruby 1.8 を捨てた。 encoding とか難しい...。
この日記は Shift_JIS 指定なんだけど、いい加減 utf-8 に替えたい。