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

Project Description

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


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

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

PagerDuty / Opsviewインテグレーションの設定

 

PagerDutyでの設定

  1. ConfigurationメニューからServicesを選択します
  2. サービスページで、
    新しいサービスを作成する場合は、+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をコピーします。

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. +アイコンをクリックします。
  4. フォームに次のように入力します(Contact Variablesフィールドに実際のサービスキーではなく「PAGERDUTY_SERVICE_KEY」と入力してください)。

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

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

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

 

よくある質問

 

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

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

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

 

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

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

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

 

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

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

 

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

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

grep pagerduty_nagios /var/log/syslog

 

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

 

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

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

Project Details