お手軽WEBサーバ監視をslackで通知設定する方法です。
WebhookURLの作成
[Custom Integrations]⇒[Incoming WebHooks]を押下します。
[Add Configuration]を押下します。
Post to Channel
監視の通知先のチャンネルを選択します。
[Add Incoming WebHooks integration]を押下します。
以下、Webhook URLが発行されますので、控えておきます。
Webhook URLを使用して、以下コマンドで、正常に#test-hogeチャンネルにメッセージが飛ぶか、サンプルメッセージを投げてみます。
curl -X POST --data-urlencode 'payload={"channel": "#test-hoge", "username": "webhookbot", "text": "This is posted to #test-hoge and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
以下のメッセージがslackに通知されれば、動作確認OKです。
監視ツール作成
5分毎にhttpのステータスコードを確認し、200ではない場合は、slackに通知するようにします。
vim url_check.sh
#!/bin/bash curl -I "https://hoge-hoge.com/healthcheck" > check STATUS_CODE=`grep HTTP check | awk '{print $2}'` echo $STATUS_CODE # check if [ 200 = $STATUS_CODE ];then echo "ok" break; else curl -X POST --data-urlencode 'payload={"channel": "#test-hoge", "username": "監視さん", "text": "httpsアクセスできません。\n\nhttps://hoge-hoge.com/healthcheck "}' https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx fi
cronの設定
vim /etc/crontab # url_check 5分毎にチェック */5 * * * * root /root/tools/kanshi/url_check.sh
サーバがダウンしたら、そもそも監視もできないので、あくまでも簡易的な監視ですね!