【Webmin】LINE Notifyへサービスがダウンしたら通知する
Webminには、サービスを監視しダウンしたらメール通知やコマンドを実行する機能がデフォルトで有効になります。 その機能を利用し、システムがダウンした際にLINE Notifyへ通知するようにします。
Contents
環境
- CentOS7.4
- Webmin
Line Notifyへ通知するスクリプト作成
sshログイン時に通知する際のスクリプトをそのまま流用します。
※ 前もってLine NotifyのAccess Tokenを取得しておいてください。取得方法はこちら。
スクリプトの設置場所は以下とします。
- ファイル名
- status-notify
- 設置場所
- /home/hoge/
status-notify
#!/bin/sh
# Set Line Notify Token.
ACCESS_TOKEN="Line Notifyで取得したトークンを設定"
# Send Message.
MESSAGE="HOST=${HOSTNAME}: ${1} Service is down."
if [ $# -ge 2 ]; then
MESSAGE="${MESSAGE} Command '${2}' execute."
# Execute Command.
eval ${2}
fi
DATETIME=$(date +'%Y-%m-%d %H:%M:%S')
# Line Notify Send.
curl -sS -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" -F "message=${DATETIME} ${MESSAGE}" https://notify
-api.line.me/api/notify
実行権限を付加します
chmod 755 /home/hoge/status-notify
通知スクリプトの説明
スクリプトは2つの引数を受け取って処理します。第1引数は必須です。
- 第1引数: サービス名
- 第2引数: 実行するコマンド(任意)
※サービス名、コマンドにスペースを含む場合はシングルクォーテーションで括ってください。
/home/hoge/status-notify サービス名 コマンド
postfixがダウンしたらLine通知し、起動コマンドを実行する
/home/hoge/status-notify Postfix 'systemctl start postfix'
以下のようなメッセージが通知されれば成功です。
2018-08-15 02:00:00 HOST={ホスト名} {サービス名} Service is down. Command '{コマンド}' execute.
通知だけが必要であれば第2引数は省略してください
/home/hoge/status-notify Postfix
Webminのシステムおよびサービスのステータスの設定
それではWebminの設定を行います。 ※ 以下の作業は監視したいサービス毎に行う必要があります。
- Webmin – その他 – システムおよびサービスのステータス
デフォルトでApacheやPostfix等、基本的なサービスは設定されていますのでここでは、Postfixを例に設定します。
-
メイン画面
-
postfixの設定画面 実行するコマンドにスクリプトの実行処理を設定します。
-
モニタの設定 スケジュールされた検査を有効にしますか? は「はい」を選択してください。また、メール通知が必要であれば追加で設定してください。
設定は以上です。
サービスを手動で停止するなどしてテストしておきましょう!
まとめ
サーバ運用でモニタリングは必須です。 ZabbiX等の運用管理ツールを利用するのもいいですが、個人用のサーバであれば必要十分です。 何よりも簡単に導入できますしね。
ディスカッション
コメント一覧
まだ、コメントがありません