Google Compute Engineの無料枠を使ってサーバーの死活監視
オフィス出るときに開発サーバーをShutdownするつもりが本番サーバーをShutdownしてしまったので、常にサーバーを監視してアラートを送る仕組みを作ろうとしているときの覚書。
やりたいこと
調べてみるとサーバー監視ソフトのZABBIXが良さそう
試してみたくはなるけど、ここまでの機能は必要ない。
Pingを並列処理できるfpingを使えば良さそう。
でも結局使わなかった。
参考にしたシェルスクリプト
監視サーバーはGoogle Cloud PlatformのVMインスタンスの無料枠を使うことにした。
インストールと設定は長くなったので別記事にまとめた。
作成したシェルスクリプトはGitLabに保存。
Gistにあったのからほとんど変えてない。
GCEのVMインスタンスでgit cloneする。
5分毎にcrondで定期実行する。
rootになってから。
$ sudo su -
# cd /etc/cron.d/
# vi plwatch
# systemctl restart crond
ログ確認(監視付き)
# tail -f /var/log/cron
最初は実行間隔を短めに設定して、実行されるか確認してから長めにするのがお勧め。
適当なIPアドレスでテストすることを忘れずに。
やりたいこと
- 別サーバーから本番サーバーを監視
- 無料
- 死活監視(Ping)
- Pingが通らなかったらメール通知
- bash + cronがいい。複雑なことしない。
- プラスアルファでウェブサイトの表示確認ができたら嬉しい。
本番サーバーは別でリソースモニターがあるのでそちらで十分
調べてみるとサーバー監視ソフトのZABBIXが良さそう
試してみたくはなるけど、ここまでの機能は必要ない。
Pingを並列処理できるfpingを使えば良さそう。
でも結局使わなかった。
参考にしたシェルスクリプト
- UNIX / Linux Shell Script For Monitoring System network with ping command | nixCraft
- A simple bash script to watch packets loss using ping on Unix/Linux | Gist
- Write the bash shell script to test the ping against multiple server and send the report to email for unresponsive servers - Stack Overflow
監視サーバーはGoogle Cloud PlatformのVMインスタンスの無料枠を使うことにした。
インストールと設定は長くなったので別記事にまとめた。
作成したシェルスクリプトはGitLabに保存。
Gistにあったのからほとんど変えてない。
GCEのVMインスタンスでgit cloneする。
5分毎にcrondで定期実行する。
rootになってから。
$ sudo su -
# cd /etc/cron.d/
# vi plwatch
MAILTO=""crondを再起動
# Packets Loss Watch
*/5 * * * * root source /root/.bashrc && /root/server-utility/plwatch.sh
# systemctl restart crond
ログ確認(監視付き)
# tail -f /var/log/cron
最初は実行間隔を短めに設定して、実行されるか確認してから長めにするのがお勧め。
適当なIPアドレスでテストすることを忘れずに。
<2021/07/05 追記>
さくらVPSのサーバー監視機能が便利なので、こちらを使うようになった。
(さくらのVPSしか監視できない)