DOCS
インテグレーションガイド / Opsview

Opsview

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

Opsviewは監視システムNagiosのフォークです。したがって、PagerDutyアカウントとの統合プロセスは、Nagiosの設定プロセスと似ています。

PagerDutyをNagiosとインテグレーションすることで、Nagiosのアラートを問題解決に適した担当者に直接通知することができます。

PagerDutyでの設定

  1. ConfigurationメニューからServicesを選択します。

  2. サービスページで、 新しいサービスを作成する場合は、+Add New Serviceをクリックします。 既存のサービスに追加する場合は、追加するサービスの名前をクリックします。その後、Integrationsタブをクリックし、+New Integrationボタンをクリックします。 RS-Add-New-Service-13-300x113

  3. Integration Typeメニューから追加したいアプリケーションを選択し、Integration Nameを入力します。新たにサービスを作成する場合は、General Settingsで、サービスのNameを入力します。次に、Incident Settingsで、新しいサービスのEscalation Policy (エスカレーションポリシー)、Notification Urgency(通知の緊急度)、Incident Behavior<(インシデントの動作)を指定します。

  4. Add ServiceまたはAdd Integrationボタンをクリックして、インテグレーションを保存します。するとサービスのIntegrationsページにリダイレクトされます。 RS-Integration-Settings-11-300x109

  5. 新しいインテグレーションのIntegration Keyをコピーします。 RS_Updates__API_Services-1024x146-8-300x43

Linuxサーバでの設定

  1. Perlの依存ライブラリをインストールします。 aptitude install libwww-perl libcrypt-ssleay-perl または、 yum install perl-libwww-perl perl-Crypt-SSLeay
  2. pagerduty_nagios.plをダウンロードし、/usr/local/nagios/libexec/notificationsにコピーしてください。 wget https://raw.github.com/ryanhoskin/pagerduty-opsview-pl/master/pagerduty_nagios.pl cp pagerduty_nagios.pl /usr/local/nagios/libexec/notifications
  3. Perlスクリプトをnagiosユーザーが実行可能にします。 chmod 755 /usr/local/nagios/libexec/notifications/pagerduty_nagios.pl
  4. /usr/local/nagios/configs/Master Monitoring Server/nagios.cfgの環境変数マクロを有効にします(まだ有効になっていない場合)。 enable_environment_macros=1
  5. Nagiosユーザーのcrontabを編集します。 crontab -u nagios -e
  6. Crontabに次の行を追加します。 * * * * * /usr/local/nagios/libexec/notifications/pagerduty_nagios.pl flush

Opsviewでの設定

  1. OpsviewのWeb管理インターフェースに行きます。
  2. Advanced > Notification Methodsに行きます。
  3. +アイコンをクリックします。 opsview4
  4. フォームに次のように入力します(Contact Variablesフィールドに実際のサービスキーではなく「PAGERDUTY_SERVICE_KEY」と入力してください)。 opsview5

注:Opsview 4以上を使用している場合は、PAGERDUTY_SERVICE_KEYをサービスAPIキーに置き換えて、コマンドを次のように変更する必要があります。 pagerduty_nagios.pl enqueue -f CONTACTPAGER="PAGERDUTY_SERVICE_KEY"

  1. Submit Changesをクリックします。
  2. Configuration > Contactsに移動します。
  3. +アイコンをクリックします。 opsview1-300x300
  4. 次のようにフォームに記入してください(パスワードは何でも構いません)。 opsview2-287x300
  5. Notificationsをクリックします。
  6. サービスAPIキーを以下のようにボックスに入力します**―PagerDutyに必須です** 。 サービスキーは、 Services >(サービス名)> Integration Settings > Service API key にあります。 opsview6-273x300
  7. SubmitEdit Notification Profilesをクリックします。
  8. +アイコンをクリックします。 opsview7
  9. pagerdutyという名前を入力して、「Notify by」セクションのpagerdutyボックスにチェックを入れます。 他のすべての設定はデフォルトのままにします。 opsview8-300x181
  10. Submit Changesをクリックします。
  11. 「Configuration status」リンク(上のメニューにあります)をクリックし、 「Reload Configuration」ボタンをクリックすると、OpsViewはすべてのNagios設定ファイルを生成します。

これでPagerDutyにOpsviewからの通知を追加しました。

よくある質問

  1. 複数のPagerDutyサービスで動作するようにOpsviewを設定するにはどうすればよいですか?

    PagerDutyのNagiosサービスは連絡先に直接マッピングされるので、これは簡単です。デフォルトでは、この連絡先の名前は 「pagerduty」で、Configuration > Contactsに定義されています。

    複数のサービスを設定するには、既存の連絡先定義を複製して名前を変更します(pagerduty_database、pagerduty_networkなど)。次に、PagerDutyから対応するAPIキーをコピーして「pager」フィールドに貼り付けます。Nagiosを再起動して変更を有効にすることを忘れないでください。

  2. ネットワークがダウンしているときにOpsviewイベントが発生したらどうなりますか?

    何らかの理由でPagerDutyサーバにアクセスできない場合、イベントはディスク上のキューに保存されます。インストールしたcronジョブは、1分間隔でイベントを再送信しようとします。

    何らかの理由でPagerDutyサーバにアクセスできない場合、イベントは1分間隔でディスクに保存されます。

  3. OpsviewはPagerDutyに障害レポートを送信するためにインターネット接続を必要としますが、サイトが外部接続を失った場合、どのようにして通知を受け取りますか?

    外部のpingチェックサービスを設定して、サイトの外部接続を監視する必要があります。もちろん、PagerDutyを使ってこれらのサービスからアラートを転送することもできます。

  4. それは動作していないようです。 どうしてですか?

    syslogで 「pagerduty_nagios」のメッセージを確認してください。ほとんどのシステムでは以下のようにします。 grep pagerduty_nagios /var/log/syslog

    不明なところや問題がある場合は私たちに連絡してください。

  5. PagerDutyはどのNagiosメッセージを理解できますか?

    PagerDutyは、 PROBLEM とACKNOWLEDGMENT 、RECOVERYメッセージを処理できます。FLAPPINGSTARTやFLAPPINGSTOPを含む他のすべてのメッセージは無視されます。PagerDutyに追加のNagiosメッセージを処理させたい場合はお知らせください。