02:56:50OpsGenieとMonitを連携してプロセスの死活監視してみたので、設定方法のメモを残しておきます。このエントリではnginx上にhealthcheck用のファイルを配置して、そのファイルをhttp経由で取得出来るかどうかをmonitでチェックして、そのチェック結果をOpsGenieに送ってみることにします。https://mmonit.com/monit/公式のドキュメントではメール連携の方法が紹介されてますが、このエントリではWebAPIを使ってやってみます(あまのじゃくに)。OpsGeniehttps://www.opsgenie.com/docs/integrations/monit-integration全体の流れは、以下の通りです。OpsGenieでAPIキーを作る監視対象サーバにnginxをセットアップ監視対象サーバにMonitのセットアップアラームを上げてみるOpsGenieでAPIキーを作るOpsGenieにログインし、左側メニューの「Integrations」を選びます。Key」が発行されます。Monitからの連携にこのキーを利用するので、どこかにコピーしておきます。curlを使って、API経由でOpsGenieにアラームを上げ、さらにクローズしてみます。以下のコマンドで、アラームを上げます。"alarm_sample"}'以下のコマンドで、アラームをクローズします。"alarm_sample"}'これらのWebAPIをMonitの監視結果に応じて呼び出すようにすれば、MonitとOpsGenieを連携して監視と通知が出来るようになる訳です。2つ後の節で実際に設定してみます。AlertAPIについては以下を参考にして下さい。OpsGeniehttps://www.opsgenie.com/docs/web-api/alert-api監視対象サーバにnginxをセットアップ監視対象のサービスとして、監視対象のサーバにnginxも入れておきます。startこのエントリでは「/healthcheck」というリクエストに対する応答を監視するので、「healthcheck」というファイルを作っておきます。monitMonitからOpsGenieのWebAPIを呼び出すためのシェルスクリプトを作っておきます。次のような感じで作ります。\"monit:${MONIT_SERVICE}@${MONIT_HOST}\"}"「MONIT_XXXX」という環境変数の意味は次を参照して下さい。documentationhttps://mmonit.com/monit/documentation/monit.html#ENVIRONMENTシェルスクリプトには、忘れずに実行権限もつけておきます。/usr/local/sbin/monit2opsgenie_closeMonitに設定を加えてnginxを監視します。この設定から先ほど作成したシェルスクリプトを呼び出します。"/usr/local/sbin/monit2opsgenie_close"これで監視設定が出来たので、Monitを起動してみます。startアラームを上げてみる最後に、サービスを停止させて、アラームがあがることを確認してみます。プロセスを停止させた場合は、Monitで起動させるようにしているので、nginx止めてもアラームは上がらずに再起動します(ここはOpsGenie関係ないですね)。実行中...次に、ヘルスチェックファイルを削除してOpsGenieにアラームがあがることを確認します。/usr/share/nginx/html/healthcheckそれでは、ヘルスチェックファイルを作り直してアラームがクローズされることを確認してみます。/usr/share/nginx/html/healthcheckうまくいかない場合は「/var/log/monit」でMonitのログを確認してみて下さい。このようにしてMonitからOpsGenieに監視の状態を連携すれば、あとはOpsGenie側のPolicyで時間帯による通知On/Offを設定したり、などOpsGenieの機能に乗っかって監視の運用を設定できますね。