自社管理しているサイトを、別のCentOSサーバーから定期的に監視して、エラー時はメールを送るように設定。
0.前提
- wgetコマンドがインストール済み
- サーバーからのメール送信ができること ※迷惑メールにならないこと
- 外部からの監視として、別センターのサーバーを利用
※迷惑メールにならない対策は以下
1.作業内容
監視用のサーバーにて、以下作業。今回使ったのはCentOS7.9。
1)チェック用ユーザー追加
adduser checker
2)checkerユーザーにて作業
su - checker
3)コマンド作成
mkdir bin cd bin vi bat_site_check.sh
以下のような内容でチェック用コマンドを作る。
#!/bin/sh # # site1.xxx.com wget -t 3 -T 30 --spider "https://site1.xxx.com/" || date | mail -s "【site1.xxx.com】Check Error" xxxxxx@xxxx.com # site2.xxx.com wget -t 3 -T 30 --spider "https://site2.xxx.com/" || date | mail -s "【site2.xxx.com】Check Error" xxxxxx@xxxx.com
wgetコマンドで、リトライは3回(-t 3)、タイムアウト時間は30秒(-T 30)でURLを叩いてヘッダーを取得(–spider)して、エラーの場合にxxxxx@xxxx.comにメールを送信するようにしている。
コマンドを作成したら、ファイルに実行権を付与。
chmod +x bat_site_check.sh
4)cron設定
定期的に作成したコマンドを実行するように、cron設定。
crontab -e
cronの定義内容の例は以下で、5分毎にチェックしている。
# m h dom mon dow command 1-59/5 * * * * /home/checker/bin/bat_site_check.sh >>/dev/null 2>&1