Google Compute Engineの無料枠を使ってサーバーの死活監視

オフィス出るときに開発サーバーをShutdownするつもりが本番サーバーをShutdownしてしまったので、常にサーバーを監視してアラートを送る仕組みを作ろうとしているときの覚書。


やりたいこと
  • 別サーバーから本番サーバーを監視
  • 無料
  • 死活監視(Ping)
  • Pingが通らなかったらメール通知
  • bash + cronがいい。複雑なことしない。
  • プラスアルファでウェブサイトの表示確認ができたら嬉しい。
    本番サーバーは別でリソースモニターがあるのでそちらで十分


調べてみるとサーバー監視ソフトのZABBIXが良さそう
試してみたくはなるけど、ここまでの機能は必要ない。


Pingを並列処理できるfpingを使えば良さそう。
でも結局使わなかった。


参考にしたシェルスクリプト

監視サーバーはGoogle Cloud PlatformのVMインスタンスの無料枠を使うことにした。
インストールと設定は長くなったので別記事にまとめた。

作成したシェルスクリプトはGitLabに保存。
Gistにあったのからほとんど変えてない。
GCEのVMインスタンスでgit cloneする。

5分毎にcrondで定期実行する。
rootになってから。
$ sudo su -
# cd /etc/cron.d/
# vi plwatch
MAILTO=""
# Packets Loss Watch
*/5 * * * * root source /root/.bashrc && /root/server-utility/plwatch.sh
crondを再起動
# systemctl restart crond

ログ確認(監視付き)
# tail -f /var/log/cron

最初は実行間隔を短めに設定して、実行されるか確認してから長めにするのがお勧め。
適当なIPアドレスでテストすることを忘れずに。


<2021/07/05 追記>
さくらVPSのサーバー監視機能が便利なので、こちらを使うようになった。
(さくらのVPSしか監視できない)


【関連記事】