DOCS
インテグレーションガイド / Zenoss 3
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
Zenoss 3は、数多くのIT組織で使用されている、非常に普及しているオープンソースのネットワーク、サーバー、アプリケーション監視システムです。これは、あらゆるオープンソース監視システムで利用可能な最高のイベント管理システムの1つを提供します。Zenossのプラグインアーキテクチャにより、誰でも拡張できるようになりました。PagerDutyは、PagerDuty APIを使用してコールスケジュール、アラート、インシデントトラッキングを提供することでZenossの機能を拡張します。PagerDutyの最も重大なZenossイベントを通知され、即座に行動を起こすことができます。このガイドでは、ZenossのインストールをcURLを使ってPagerDutyに統合する方法について説明します。正確なLinuxディストリビューションのバージョンとZenossの設定に合わせて、これらの設定を少し変更する必要があります。インストールが失敗した場合は、当社までご連絡ください。
Zenoss 5の場合はこちらをクリック
Zenoss 4の場合はこちらをクリック
PagerDuty / Zenoss 3インテグレーションの設定
PagerDutyでの設定
-
Configuration メニューからServicesを選択します。
-
Serviceページで:
インテグレーションのために新しいサービスを作成する場合は、+Add New Service をクリックします。既存のサービスにインテグレーションを追加する場合は、統合を追加するサービスの名前をクリックします。 その後、Integrations タブをクリックし、 + New Integration ボタンをクリックします。
-
Integration Type メニューから追加したいアプリを選択し、Integration Nameを入力してください。 インテグレーションのために新しいサービスを作成する場合は、一般設定で新しいサービスのNameを入力します。 次に、次に、Incident Settingsで、新しいサービスの Escalation Policy (エスカレーションポリシー)、Notification Urgency(通知の緊急度)、Incident Behavior(インシデントの動作)を指定します。
-
Add Service またはAdd Integration ボタンをクリックして、新しいインテグレーションを保存します。 すると、サービスのIntegrationsページにリダイレクトされます。
-
新しいインテグレーションのIntegration Keyをコピーします。
Zenossでの設定:
-
Zenossを実行しているマシンにcURLとその依存関係をインストールします(未インストールの場合) Debian、Ubuntu、およびその他のDebian系システムの場合:
sudo aptitude install curl
RHEL 、Fedora、CentOS、および他のRedhat系システム:
sudo yum install curl
-
Zenossコンソールにログインします。
-
Events タブをクリックします。
-
Event Managerのサブタブをクリックします。
-
左側のパネルのCommandsリンクをクリックします。
-
PagerDutyという名前を入力して新しいコマンドを追加し、Add ボタンをクリックします。
-
PagerDutyコマンドをクリックして、コマンドの詳細を表示しさせます。
-
Enabledというラベルに Trueを選択してコマンドを有効にします。
-
Commandというラベルのついたフィールドに、以下のラインをコピー&ペーストしてください。
curl -H "Content-Type: application/json" -X POST -d '{"service_key": "YOUR-SERVICE-KEY", "incident_key": "${evt/evid}", "event_type": "trigger", "description": "${evt/device}: ${evt/summary}", "details": { "device": "${evt/device}", "ipAddress": "${evt/ipAddress}", "severity": "${evt/severity}", "summary": "${evt/summary}", "message": "${evt/message}", "evid": "${evt/evid}"} }' https://events.pagerduty.com/generic/2010-04-15/create_event.json
注:PagerDutyはエスケープされていない改行文字を含む無効なJSONデータを受け付けません。 Zenossの設定で、無効なJSONデータが含まれているZenoss変数がないことを確認してください。
-
YOUR – SERVICE – KEYをPagerDutyのキーで置き換えます
-
Clear Commandというラベルの付いたフィールドに、次の項目をコピーして貼り付けます。
curl -H "Content-Type: application/json" -X POST -d '{"service_key": "YOUR-SERVICE-KEY", "incident_key": "${evt/evid}", "event_type": "resolve"}' https://events.pagerduty.com/generic/2010-04-15/create_event.json
-
YOUR – SERVICE – KEYをPagerDutyのキーで置き換えます。
-
一番下にあるSaveボタンをクリックして変更を保存します。
よくある質問
ネットワークがダウンしているときにZenossイベントが発生するとどうなりますか?
現時点では、イベントコマンドがPagerDutyに通知を出せない場合、Zenossには別のイベントとして登録されます。通知が再試行されるように反復時間をコマンド設定で設定できます。
注:PagerDutyはイベントIDに基づいてイベントを重複除外します。したがって、Zenossがイベントを複数回送信してもPagerDutyインシデントは1つだけ作成されます。外部のPingチェックサービスを設定してサイトの外部接続を監視する必要があります。もちろん、PagerDutyを使ってこれらのサービスからアラートを転送することもできます。
複数のPagerDutyインテグレーションで動作するようにZenossをセットアップするにはどうすればよいですか?
PagerDutyのZenossとの統合はZenossの “Event Command”に直接マッピングされるため、現在のインテグレーションでは簡単です。複数のインテグレーションを設定するには、既存のイベントコマンドを複製してください(pagerduty_database、pagerduty_networkなど)。 適切な統合キーでコマンドを更新します。PagerDutyに必要なイベントだけが送信されるように、コマンドにフィルタを設定することを忘れないでください。