Watcher PagerDuty アクション

PagerDuty アクションを使用して、PagerDuty にイベントを作成します。PagerDuty イベントを作成するには、elasticsearch.yml少なくとも 1 つの PagerDuty アカウントを構成する必要があります

PagerDuty アクションの構成

PagerDuty アクションは actions 配列で構成します。アクション固有の属性は pagerduty キーワードを使用して指定します。

以下のスニペットは、シンプルな PagerDuty アクションの定義を示しています:

Js

  1. "actions" : {
  2. "notify-pagerduty" : {
  3. "transform" : { ... },
  4. "throttle_period" : "5m",
  5. "pagerduty" : {
  6. "description" : "Main system down, please check!"
  7. }
  8. }
  9. }
メッセージの説明

PagerDuty インシデントにメタ情報を追加する

PagerDuty インシデントにさらなるコンテキストを提供するために、ペイロードとコンテキストの配列をアクションに添付できます。

Js

  1. "actions" : {
  2. "notify-pagerduty" : {
  3. "throttle_period" : "5m",
  4. "pagerduty" : {
  5. "account" : "team1",
  6. "description" : "Main system down, please check! Happened at {{ctx.execution_time}}",
  7. "attach_payload" : true,
  8. "client" : "/foo/bar/{{ctx.watch_id}}",
  9. "client_url" : "http://www.example.org/",
  10. "contexts" : [
  11. {
  12. "type": "link",
  13. "href": "http://acme.pagerduty.com"
  14. },{
  15. "type": "link",
  16. "href": "http://acme.pagerduty.com",
  17. "text": "View the incident on {{ctx.payload.link}}"
  18. }
  19. ]
  20. }
  21. }
  22. }

PagerDuty アクション属性

名前 必須 説明
account いいえ 使用するアカウント、デフォルトのアカウントにフォールバックします。


アカウントには service_api_key 属性が必要です。 |

以下の属性のいくつかは、PagerDuty の「Events API v1」パラメータ名と一致する名前を持っていますが、属性を適切に変換することによって「Events API v2」API が最終的に使用されます。


表 86. PagerDuty イベントトリガーインシデント属性

名前 必須 説明
description はい このイベントの簡単な説明
event_type いいえ 送信するイベントタイプ。trigger


resolve または acknowledge のいずれかでなければなりません。デフォルトは trigger です。 |
| incident_key | いいえ | PagerDuty 側のインシデントキー、重複排除にも使用され、

インシデントを解決または確認することを可能にします。 |
| client | いいえ | インシデントをトリガーするクライアントの名前、すなわち

Watcher Monitoring |
| client_url | いいえ | より詳細な情報を得るために訪問するクライアント URL。 |
| attach_payload | いいえ | true に設定されている場合、ペイロードは API 呼び出しの詳細として添付されます。デフォルトは false です。 |
| contexts | いいえ | トリガーにさらなるコンテキストを提供するために、

追加のリンクや画像を提供することを可能にするオブジェクトの配列。 |
| proxy.host | いいえ | 使用するプロキシホスト (proxy.port と組み合わせてのみ) |
| proxy.port | いいえ | 使用するプロキシポート (proxy.host と組み合わせてのみ) |

上記の値のデフォルトを、xpack.notification.pagerduty.event_defaults.* プロパティを使用してサービス全体に構成することも、xpack.notification.pagerduty.account.your_account_name.event_defaults.* を使用してアカウントごとに構成することもできます。

これらのオブジェクトはすべてテンプレートサポートを持っているため、すべてのフィールドの一部としてコンテキストとペイロードからデータを使用できます。


表 87. PagerDuty イベントトリガーコンテキスト属性

名前 必須 説明
type はい link または image のいずれか。
href はい/いいえ より多くの情報を含めるためのリンク。タイプが link の場合は必須、タイプが image の場合はオプション。
src いいえ image タイプの src 属性。

PagerDuty アカウントの構成

Watcher が PagerDuty と通信するために使用するアカウントを xpack.notification.pagerduty 名前空間の elasticsearch.yml で構成します。

PagerDuty アカウントを構成するには、通知を送信したい PagerDuty サービスの API 統合キーが必要です。キーを取得するには:

  • 1. アカウント管理者として pagerduty.com にログインします。
  • 2. サービス に移動し、ターゲットとする PagerDuty サービスを選択します。
  • 3. 統合 タブをクリックし、まだ存在しない場合は Events API V2 統合を追加します。
  • 4. 下記で使用するために API 統合キーをコピーします。

キーストアで PagerDuty アカウントを構成するには、アカウント名と統合キーを指定する必要があります(セキュア設定を参照):

Yaml

  1. bin/elasticsearch-keystore add xpack.notification.pagerduty.account.my_pagerduty_account.secure_service_api_key

7.0.0 で非推奨。

YAML ファイルにサービス API キーを保存することや、クラスター更新設定を介して保存することは引き続きサポートされていますが、キーストア設定を使用するべきです。

PagerDuty イベント属性 のデフォルトを指定することもできます。

Yaml

  1. xpack.notification.pagerduty:
  2. account:
  3. my_pagerduty_account:
  4. event_defaults:
  5. description: "Watch notification"
  6. incident_key: "my_incident_key"
  7. client: "my_client"
  8. client_url: http://www.example.org
  9. event_type: trigger
  10. attach_payload: true

複数の PagerDuty アカウントを構成する場合は、デフォルトアカウントを設定するか、pagerduty アクションでイベントを送信するアカウントを指定する必要があります。

Yaml

  1. xpack.notification.pagerduty:
  2. default_account: team1
  3. account:
  4. team1:
  5. ...
  6. team2:
  7. ...