DOCS
インテグレーションガイド / Opsview
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
Opsviewは監視システムNagiosのフォークです。したがって、PagerDutyアカウントとの統合プロセスは、Nagiosの設定プロセスと似ています。
PagerDutyをNagiosとインテグレーションすることで、Nagiosのアラートを問題解決に適した担当者に直接通知することができます。
PagerDutyでの設定
-
ConfigurationメニューからServicesを選択します。
-
サービスページで、 新しいサービスを作成する場合は、+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をコピーします。
Linuxサーバでの設定
- Perlの依存ライブラリをインストールします。
aptitude install libwww-perl libcrypt-ssleay-perl
または、yum install perl-libwww-perl perl-Crypt-SSLeay
- 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
- Perlスクリプトをnagiosユーザーが実行可能にします。
chmod 755 /usr/local/nagios/libexec/notifications/pagerduty_nagios.pl
- /usr/local/nagios/configs/Master Monitoring Server/nagios.cfgの環境変数マクロを有効にします(まだ有効になっていない場合)。
enable_environment_macros=1
- Nagiosユーザーのcrontabを編集します。
crontab -u nagios -e
- Crontabに次の行を追加します。
* * * * * /usr/local/nagios/libexec/notifications/pagerduty_nagios.pl flush
Opsviewでの設定
- OpsviewのWeb管理インターフェースに行きます。
- Advanced > Notification Methodsに行きます。
- +アイコンをクリックします。
- フォームに次のように入力します(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. SubmitとEdit 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メッセージを処理させたい場合はお知らせください。