死活監視 やっつけ(他に良い方法教えて下さい)

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