WEB開発備忘録

memcachedの死活監視のスクリプトをcronで動かして・・

memcachedの死活確認をします。

大まかな流れ
1.Nagiosをインストール
2.memcachedを死活確認するスクリプト設置
3.cronで定期的にスクリプト実行

まず最初にNagiosをインストールします。

[prompt] # yum install -y nagios nagios-plugins-all

以下のシェルスクリプトを作ります。こちらのブログ記事のスクリプトを利用させていただきました。
ありがとうございます。

#!/bin/bash
# check_tcpのコマンドパスを
TCPCHECK_CMD=/usr/lib64/nagios/plugins/check_tcp
CHK_OK="TCP OK"
COUNT=1

while [ $COUNT -le 3 ];
do

  # tcpでlocalhostのport11211に接続してみる
  RES=`$TCPCHECK_CMD -H localhost -p 11211 -t 5 -E -s 'stats\r\nquit\r\n' -e 'uptime' | awk '{print $1,$2 }' | head -n 1`

  # 成功したらOK/処理終了
  if [ "$RES" = "$CHK_OK" ]; then
    exit 0
  fi

  # 失敗したら失敗数をカウントする
  COUNT=`expr $COUNT + 1`

  # 30秒ストップ(次の試行との間隔調整)
  sleep 30

  # もう三回失敗してたら、memcacheを再起動する
  if [ $COUNT -gt 3 ]; then
    /etc/rc.d/init.d/memcached restart
    exit 0
  fi

done
exit 0

このスクリプトをcronで定期実行します。

[prompt] # chmod +x スクリプトパス
[prompt] # crontab -e
-------
# 5分毎に起動
*/5 * * * * /bin/sh スクリプトパス > /dev/null 2>&1