先日のGMOクラウドVPS のダウン時に活躍した簡易スクリプト。
のダウン時に活躍した簡易スクリプト。
 現在運用しているさくらVPS 、お名前.com 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等の監視も出来るけど、これくらいがコンパクトで良いかと。
 (218)