Watcher PagerDuty アクション
PagerDuty アクションを使用して、PagerDuty にイベントを作成します。PagerDuty イベントを作成するには、elasticsearch.yml
で 少なくとも 1 つの PagerDuty アカウントを構成する必要があります。
PagerDuty アクションの構成
PagerDuty アクションは actions
配列で構成します。アクション固有の属性は pagerduty
キーワードを使用して指定します。
以下のスニペットは、シンプルな PagerDuty アクションの定義を示しています:
Js
"actions" : {
"notify-pagerduty" : {
"transform" : { ... },
"throttle_period" : "5m",
"pagerduty" : {
"description" : "Main system down, please check!"
}
}
}
メッセージの説明 |
PagerDuty インシデントにメタ情報を追加する
PagerDuty インシデントにさらなるコンテキストを提供するために、ペイロードとコンテキストの配列をアクションに添付できます。
Js
"actions" : {
"notify-pagerduty" : {
"throttle_period" : "5m",
"pagerduty" : {
"account" : "team1",
"description" : "Main system down, please check! Happened at {{ctx.execution_time}}",
"attach_payload" : true,
"client" : "/foo/bar/{{ctx.watch_id}}",
"client_url" : "http://www.example.org/",
"contexts" : [
{
"type": "link",
"href": "http://acme.pagerduty.com"
},{
"type": "link",
"href": "http://acme.pagerduty.com",
"text": "View the incident on {{ctx.payload.link}}"
}
]
}
}
}
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
bin/elasticsearch-keystore add xpack.notification.pagerduty.account.my_pagerduty_account.secure_service_api_key
7.0.0 で非推奨。
YAML ファイルにサービス API キーを保存することや、クラスター更新設定を介して保存することは引き続きサポートされていますが、キーストア設定を使用するべきです。
PagerDuty イベント属性 のデフォルトを指定することもできます。
Yaml
xpack.notification.pagerduty:
account:
my_pagerduty_account:
event_defaults:
description: "Watch notification"
incident_key: "my_incident_key"
client: "my_client"
client_url: http://www.example.org
event_type: trigger
attach_payload: true
複数の PagerDuty アカウントを構成する場合は、デフォルトアカウントを設定するか、pagerduty
アクションでイベントを送信するアカウントを指定する必要があります。
Yaml
xpack.notification.pagerduty:
default_account: team1
account:
team1:
...
team2:
...