はじめに
別に商用環境でもないし、そんなに真面目にやらなくてもいいんだけど
webサーバーの死活判断を「簡単に」やりたいなぁ(´・ω・`)
しかも、メールじゃなくてLINEに通知こないかなぁ(`;ω;´)
そんなあなたに2分で作れるweb監視ツール(?)のご紹介
用意するもの
- 監視したいwebサーバー
- 監視するサーバー
- LINEのアカウント
- 2分の時間
以上!!
さぁ作るぞ!!
監視するサーバーで作業
どこでもいいですが、下記ファイルを作成
(今回はホームディレクトリにおいてます)
emergency.sh
#!/bin/bash
file1=index.html
file2=.emergency
wget https://hogehoge.com >/dev/null 2>&1
if [ -e $file1 ]; then
rm -f $file1
rm -f $file2
else
if [ ! -e $file2 ]; then
curl -X POST -H 'Authorization: Bearer aaaaaaaaaaaaaaaaa' -F 'message=webサーバーに異常が発生中です。' https://notify-api.line.me/api/notify >/dev/null 2>&1
touch $file2
fi
fi
※1 hogehoge.comは監視したいwebサーバのドメインを記載
※2 aaaaaはこちらを参考に、発行したLINEのトークンを記載
最後にcrontabにでも仕込めばおしまい
*/1 * * * * sh ~/emergency.sh
(今回は1分おきでの監視)
終わり!!!!!!!!!!!
お疲れ様でした。
ちょっと解説
解説するまでもないと思いますが、今回のスクリプトの動作は
1. 対象webサーバーにwgetをかけて、ファイルをダウンロード
2. ダウンロードできれば、ダウンロードファイルの存在を検知して、ダウンロードしたファイルと異常検知用ファイル(emergency)を削除して終了
3. ダウンロードができず、かつ異常検知用ファイルがなければLINEで通知
4. 異常検知用ファイルを生成
となってます。
異常検知用ファイルは作らなくてもいいんですが、作らないとダウンしたwebサーバーを修復するまで、1分おきにLINEに通知が来るので、鬱陶しい人向け用においておきました。
ブログ始めました、よかったら遊びに来てください
https://red-full-moon.com/