Monitインテグレーションガイド

Project Description

本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。


Monitは、Unixのシステムとサービスを管理および監視するための小さなオープンソースプログラムです。Monitは、インストールや設定が比較的容易で、しかも 先進的なユーザーなら柔軟に使えます。Monitは一般的な電子メールとAPIの両方の統合を介してPagerDutyと統合することができますが、このガイドではAPIの使用について説明します。電子メールの統合については、FAQの下で説明します。統合に関する問題が発生した場合は、お気軽にお問い合わせください 。support@pagerduty.com

 

PagerDutyでの設定

  1. ConfigurationメニューからServicesを選択します。
  2. Serviceスページで:インテグレーションのために新しいサービスを作成する場合は、+Add New Serviceをクリックします。既存のサービスに統合を追加する場合は、統合を追加するサービスの名前をクリックします。 その後、Integrationsタブをクリックし、+ New Integrationボタンをクリックします。
  3. Integration Typeメニューからあなたのアプリを選択して、 Integration Nameを入力してください。
    インテグレーションのために新しいサービスを作成する場合は、General Settings で、新しいサービスのNameを入力します。次に、Incident Settingsで、新しいサービスのEscalation Policy(エスカレーションポリシー)、Notification Urgency(通知の緊急性)、Incident Behavior(インシデントの動作)を指定します。
  4. Add ServiceまたはAdd Integrationボタンをクリックして、新しいインテグレーションを保存します。 あなたはサービスのIntegrationsページにリダイレクトされます。
  5. 新しいインテグレーションのIntegration Keyをコピーします。

Monitでの設定

 

PagerDuty Python libraryのインストール

サーバ上のターミナルを開き、 pip install pagerdutyコマンドを実行してPython libraryを自動的にダウンロードしてインストールします。

PagerDuty-Monitスクリプトのインストール

  1. ターミナルを開き、システム全体のmonit構成のある場所(通常は ‘/etc/monit/’)または実行するユーザーのホームディレクトリに移動します
  2. 以下のコマンドのスクリプトをダウンロードしてください
    wget https://raw.githubusercontent.com/pinterest/pagerduty-monit/master/pagerduty-trigger
    wget https://raw.githubusercontent.com/pinterest/pagerduty-monit/master/pagerduty-resolve
  3. 両方のスクリプトを編集して、PAGERDUTY_SERVICE_KEY変数のコメントを解除し、以前のService API Key設定します。
  4. 両方のスクリプトが実行可能であることを確認してください: `chmod + x pagerduty-trigger; chmod + x pagerduty-resolve`
  5. `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"
  6. Monitをリスタートまたはリロードしてください: /etc/init.d/monit restartまたはmonit 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ライブラリの場所に書き換えてください。

Project Details