死活監視 やっつけ(他に良い方法教えて下さい)
hobbit で mysql の監視を行う必要があったので bb-mysqlstatus.tar.gz を使用する事にした。
しかし、bb-mysqlstatus.tar.gz は、client 側の拡張であり、server から connection 可能か試験する事ができない。
そこで、mysql client が不要な connection の確認のみ行う server 側で利用できる拡張を書いてみた。
>cat [hobbit home]/server/ext/mysql.sh #!/bin/sh BBHTAG=mysql COLUMN=$BBHTAG $BBHOME/bin/bbhostgrep $BBHTAG | while read L do set $L HOSTIP="$1" MACHINEDOTS="$2" MACHINE=`echo $2 | $SED -e's/?./,/g'` COLOR=green MSG="$BBHTAG status for host $MACHINEDOTS" if echo '' | telnet $MACHINEDOTS 3306 2>/dev/null | grep 'Connected' then COLOR=green else COLOR=red fi $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date` ${MSG} " done exit 0
>tail -7 [hobbit home]/server/etc/hobbitlaunch.cfg [mysql] ENVFILE [hobbit home]/server/etc/hobbitserver.cfg NEEDS hobbitd CMD $BBHOME/ext/mysql.sh LOGFILE $BBSERVERLOGS/mysql.log INTERVAL 5m
任意の Host に telnet で接続できるか確認してるだけ・・・。
任意の port を指定できるようにして、汎用的な拡張にした方が良さ気。
そもそも、こう言う拡張は、既にありそうなので探してみよう orz
とりあえず、独自拡張を作成する参考になるかと思ったので、恥を忍んで公開。
参考URL
http://www.deadcat.net
http://www.umasugi.com/~h070017/hobbit/index_c2_s5.html#doc1_1037
http://dev.mysql.com/doc/refman/4.1/ja/can-not-connect-to-server.html