先日のGMOクラウドVPSのダウン時に活躍した簡易スクリプト。
現在運用しているさくらVPS、お名前.com VPSと共に、このバッチを走らせて相互に簡易監視している。
#!/bin/sh
serverlist=(‘server1.hoge.tld’ ‘server2.hoge.tld’ ‘www.piyo.tld’)
mailto=’address@hoge.tld’
date=date '+%Y-%m-%d %H:%M:%S'
for server in ${serverlist[@]}
do
loss=ping -c 1 $server | grep "% packet loss" | sed -e "s/^.* \([0-9]*\)% packet loss.*/\1/"
if test $loss -ne 0; then
echo "[$server] : No responding." | mail -s "Server alert [$server] @ $date" $mailto
fi
done
HTTP監視とか一切せず、pingを一回打ってみて帰ってこなかったらサーバ名をメールするシェル。
serverlistに監視対象サーバを列挙して、mailtoに通知先アドレスを入れるだけ。
実行権限をつけてcronで、
*/5 * * * * /home/myhome/bin/pingwatch.sh
みたいにして回す。
ちょっと書き足して、wgetとかcurlを使うようにすればHTTP等の監視も出来るけど、これくらいがコンパクトで良いかと。
(214)