memcached互換の(プラガブル)リモートサーバを持ちつつ、本家よりメモリ効率がよいらしいので使ってみることにしました。
さて使用に当たってmonitの内部監視を立てるんだけども、プリセットのmemcachプロトコルではfailになる。
見た目は完全に互換があるように見えるが、monitの見ている所は違うんだろう。。
しかしL4監視なんて全く意味がないので、ここはmonitの"send&expect"を使ってプロトコル監視をします。
telnetで確認
stats を送ると、memcached的な回答がきます、その中で、、
stats
STAT pid 26244
STAT uptime 84
STAT time 1303285911
STAT version KyotoTycoon/0.9.38
-- snip --
「version KyotoTycoon」なんて書いてある。
このテキストを監視対象にしよう。
monitの監視設定
statsを送りつけ、応答の文字列に"KyotoTycoon"が含まれていればOKというルールで監視するにはこうします。
check process ktserver with pidfile /var/run/ktserver.pid
start program = "/etc/init.d/ktserver start"
stop program = "/etc/init.d/ktserver stop"
if failed host 127.0.0.1 port 11211 type TCP
send "stats\n"
expect ".*KyotoTycoon.*"
with timeout 5 seconds
then restart
expectは正規表現で、比較対象は応答まるごとになるのでキーワードだけ買いてもFail扱いになる点に注意。
起動スクリプトは各自書いてね。
0 件のコメント:
コメントを投稿