Diary

Diary?

学生の研究日記だったらしいです。多分。

開発日記。

オススメの本(頂いた本):

いちばんあたらしいの2017 4/13 15:0

_13(Thu)

Ruby プロセスでてきとーにサーバプロセスを立ち上げたとき、どうやって死活監視すればいいか。てきとーに作ったプログラムなので、変なところで例外あげてる可能性も十分ある。どうしよう。

真面目にやるなら、監視ソフトでやるんでしょうが、てきとーサーバに、その監視ソフトの面倒を見るなんてのは無理。毎日見るソフトウェア、例えば IRC proxy なんかは、つなげなかったら駄目なことがわかるので気づくが、裏でモクモクと何かしておいて、時々、そのモクモクの結果を知りたい、というケース。

要件をまとめる。

  • 死活監視がしたい。
  • 例えば5分ごとに、死んでたらメールが欲しい。さすがに、これで気づく。
  • 監視ソフトウェアは楽に管理したい。

ということで、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 とフィルタすることで解決。

Log

2002 01 02 03 04 05 06 07 08 09 10 11 12
2003 01 02 03 04 05 06 07 08 09 10 11 12
2004 01 02 03 04 05 06 07 08 09 10 11 12
2005 01 02 03 04 05 06 07 08 09 10 11 12
2006 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 03 04 05 06 07 08 09 10 11 12
2010 01 02 03 04 05 06 07 08 09 10 11 12
2011 01 02 03 04 05 06 07 08 09 10 11 12
2012 01 02 03 04 05 06 07 08 09 10 11 12
2013 01 02 03 04 05 06 07 08 09 10 11 12
2014 01 02 03 04 05 06 07 08 09 10 11 12
2015 01 02 03 04 05 06 07 08 09 10 11 12
2016 01 02 03 04 05 06 07 08 09 10 11 12
2017 01 02 03 04 05 06 07 08 09 10 11 12

SASADA Koichi (ko1 at atdot dot net) / Skype ID: ko1_ssd


rss