Jenkinsを簡易的なサーバの死活監視に使う方法

サーバの死活監視システムにはいろいろなサービス・サイトがありますが、検証環境などのクローズドな環境について監視をさせたい場合など、Jenkinsを高機能なcronとしてサーバの死活監視をさせる方法です。

ビルドとしてシェルの実行に以下を記載します。

#!/bin/bash

TRY=3
TIMEOUT=10
COUNT=0

#################START#########################
URL="http://hoge.com"

echo "URL $URL"
CHECK=`wget -nv -S --spider -t $TRY -T $TIMEOUT --no-check-certificate $URL 2>&1|grep -c "200 OK"`
if [ $CHECK == 0 ]
then
  COUNT=`expr $COUNT + 1`
  echo "***ERROR $URL"
fi
#################END###########################

##########################################
exit $COUNT

シェルが0以外を返すとエラーとして判断されるので、exit $COUNTとしてエラーの数を返すようにしています。

あとはこれを定期実行させてエラー時にメール送信させれば簡易的な死活監視が行えます。

Jenkinsだと実行させる時間帯も簡単に指定できるので、検証環境なので平日日中だけ監視させておくなどが簡単に行えます。