DOCS
インテグレーションガイド / Monit
![Monit](https://strapi-admin.pagerduty.digitalstacks.net/uploads/monit_logo_334b35c51e.png)
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
Monitは、Unixのシステムとサービスを管理および監視するための小さなオープンソースプログラムです。Monitは、インストールや設定が比較的容易で、しかも 先進的なユーザーなら柔軟に使えます。Monitは一般的な電子メールとAPIの両方の統合を介してPagerDutyと統合することができますが、このガイドではAPIの使用について説明します。電子メールの統合については、FAQの下で説明します。統合に関する問題が発生した場合は、お気軽にお問い合わせください 。[email protected]
PagerDutyでの設定
-
ConfigurationメニューからServicesを選択します。
-
Serviceスページで:インテグレーションのために新しいサービスを作成する場合は、+Add New Serviceをクリックします。既存のサービスに統合を追加する場合は、統合を追加するサービスの名前をクリックします。 その後、Integrationsタブをクリックし、+ New Integrationボタンをクリックします。
-
Integration Typeメニューから追加したいアプリケーションを選択し、Integration Nameを入力します。新たにサービスを作成する場合は、General Settingsで、サービスのNameを入力します。次に、Incident Settingsで、新しいサービスのEscalation Policy (エスカレーションポリシー)、Notification Urgency(通知の緊急度)、Incident Behavior<(インシデントの動作)を指定します。
-
Add ServiceまたはAdd Integrationボタンをクリックして、インテグレーションを保存します。するとサービスのIntegrationsページにリダイレクトされます。
-
新しいインテグレーションのIntegration Keyをコピーします
Monitでの設定
PagerDuty Python libraryのインストール
サーバ上のターミナルを開き、pip install pagerduty
コマンドを実行してPython libraryを自動的にダウンロードしてインストールします。
PagerDuty-Monitスクリプトのインストール
-
ターミナルを開き、システム全体のmonit構成のある場所(通常は ‘/etc/monit/’)または実行するユーザーのホームディレクトリに移動します
-
以下のコマンドのスクリプトをダウンロードしてください
wget https://raw.githubusercontent.com/pinterest/pagerduty-monit/master/pagerduty-trigger
wget https://raw.githubusercontent.com/pinterest/pagerduty-monit/master/pagerduty-resolve
-
両方のスクリプトを編集して、PAGERDUTY_SERVICE_KEY変数のコメントを解除し、以前のService API Key設定します。
-
両方のスクリプトが実行可能であることを確認してください:
chmod + x pagerduty-trigger; chmod + x pagerduty-resolve
-
`exec” / etc / monit / pagerduty-trigger nginx “をMonitチェックスタンザにアクションとして追加してください。 例:
check process crond with pidfile /var/run/crond.pid
if does not exist for 3 cycles
then exec "/etc/monit/pagerduty-trigger crond"
else if succeeded for 3 cycles
then exec "/etc/monit/pagerduty-resolve crond"
- Monitをリスタートまたはリロードしてください:
/etc/init.d/monit restart
/etc/init.d/monit restartmonit monit reload
。
インテグレーションのテスト:
監視対象に何を指定したかと、イベントにMonitがどう反応するように設定したかによっては、単にそのサービスをオフにするとインシデントをトリガーすることができます。上記の設定例では、サービスが3回連続してダウンした場合、 /etc/init.d/crond stop
がインシデントをトリガーします。
よくある質問
複数のPagerDutyサービスを使用するようにMonitを設定できますか?
できます。それぞれの名前とサービスキーが異なる ‘pagerduty-trigger’と ‘pagerduty-resolve’ファイルの別のコピーが必要です。 そこから、正しいスクリプトを実行するように、チェックスタンザを変更してください。
Monitで何かが解決された場合、PagerDutyにも自動的に解決されますか?
はい! Monitで解決されたイシューはPagerDutyを更新しますが、PagerDutyで問題を解決してもMonitでは修正されません。
代わりに電子メールのインテグレーションを使用したいと思うのですが、どう設定すればよいですか?
Monitでメールサーバーを使うための構成設定は、ここにあります。電子メールを送信するには、EximやSendmailなどのメールサーバーをインストールする必要があります。
MonitからPagerDutyアラートを受け取れていません。インシデントを手動でトリガーすると”/usr/local/bin/pagerduty:Is a directory”というエラーが表示されるのはなぜですか?
PagerDuty Pythonライブラリがシステム上の別の場所に、例えば/usr/bin/pagerdutyにインストールされた可能性があります。which pagerdutyというコマンドを実行することで正しいパスを判断できます。
pagerduty-triggerとpagerduty-resolveファイルで単純に検索置換を実行して、 /usr/local/bin/pagerdutyをシステム上のPagerDuty Pythonライブラリの場所に書き換えてください。