Monit から Opsgenie へアラートを通知します。
公式ではメールでの連携方法が紹介されていますが、 各監視対象ホストでメール送信を有効化するのが手間だったのでAPIを利用します。
前置き
軽く探索してみた所、下記情報があります。
これらを参考にスクリプトを作成しました。
Monit -> Opsgenie 通知用スクリプト
設定
Opsgenie APIキー取得
REST API のインテグレーションから取得します。
- [Team] -> 対象のチーム -> [Integrations] -> APIインテグレーション
スクリプト格納
監視対象ホストにて、任意の場所にスクリプトをダウンロードします。
wget https://raw.githubusercontent.com/htnosm/opsgenie-monit.sh/main/opsgenie-trigger wget https://raw.githubusercontent.com/htnosm/opsgenie-monit.sh/main/opsgenie-resolve
ダウンロードした2つのスクリプトに実行権限を与え、スクリプト内の OPSGENIE_API_KEY
を書き換えます。
# 実行権限付与 chmod +x opsgenie-*
# OPSGENIE_API_KEY="1234567890abcdef1234567890abcdef" ↓ OPSGENIE_API_KEY="Opsgenie APIキー"
Monit設定
Failure、Success それぞれにアラート作成、クローズのスクリプトを指定します。
- 例
check process crond with pidfile /var/run/crond.pid if does not exist for 3 cycles then exec "/etc/monit/opsgenie-trigger" else if passed for 3 cycles then exec "/etc/monit/opsgenie-resolve"
正常に設定できていれば、Monit に連動して Opsgenie のアラート作成とクローズが行えます。
- Alert created via API
- Alert closed via API