search
LoginSignup
14

More than 1 year has passed since last update.

posted at

updated at

PINGで死活監視するスクリプト

はじめに

元々はこちらのURL(※既にリンク切れ)に掲載されていたPINGを実行するスクリプトをベースにして、死活監視用として使いやすい形に書き直したものです。

ちょっと監視が必要だけれども、Zabbixやmackerel、DataDogを使うほどではない...という時に役立つかもしれません。

スクリプト

  • PINGを5回実行して、100%パケットがロスした時にメールを飛ばす仕組みです。
    • メールの送信先を適宜変えて、Slackと連携させたりすると監視が楽になると思います。
  • PINGに成功/失敗を問わず、結果は全てping.logに出力しています。
    • ログファイルが徐々に肥大化していくため、ログ出力が不要なら該当行をコメントアウトしたり、ログローテーションと組み合わせた方が良いと思います。
  • あとはスクリプトをcrontabなど登録すれば、一定時間ごとにスクリプトが実行されるはずです。
ping_checker.sh
#!/bin/bashIP_LIST=(172.17.12.143 172.17.11.130 172.17.15.81 172.17.15.82)
MAILTO='your_address@sample.com'
LOG_FILE=./ping.log
​
for ip in ${IP_LIST[@]}
do
  ping_result=$(ping -w 5 $ip | grep '100% packet loss')
  date_result=$(date)if [[ -n $ping_result ]]; then
    echo "[SEVERE] server inactive: $ip $date_result" >> $LOG_FILE
    echo $ip | mail -s "[ALERT] server down!! $date_result" $MAILTO
  else
    echo "[INFO] server active: $ip $date_result" >> $LOG_FILE
  fi
done

実行結果

  • ログファイルには、サーバー単位(IPアドレス単位)でPINGの実行結果が記載されます。
ping.log
[INFO] server active: 172.17.12.143 2019年 10月 24日 木曜日 20:54:39 JST
[INFO] server active: 172.17.11.130 2019年 10月 24日 木曜日 20:54:44 JST
[INFO] server active: 172.17.15.81 2019年 10月 24日 木曜日 20:54:49 JST
[INFO] server active: 172.17.15.82 2019年 10月 24日 木曜日 20:54:54 JST

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
14