Watcher PagerDuty 动作

编辑

使用 PagerDuty 动作在 PagerDuty 中创建事件。要创建 PagerDuty 事件,您必须在 elasticsearch.yml至少配置一个 PagerDuty 账户

配置 PagerDuty 动作

编辑

您可以在 actions 数组中配置 PagerDuty 动作。使用 pagerduty 关键字指定特定于动作的属性。

以下代码片段显示了一个简单的 PagerDuty 动作定义。

"actions" : {
  "notify-pagerduty" : {
    "transform" : { ... },
    "throttle_period" : "5m",
    "pagerduty" : {
      "description" : "Main system down, please check!" 
    }
  }
}

消息描述

向 PagerDuty 事件添加元信息

编辑

为了向 PagerDuty 事件添加更多上下文信息,您可以将负载以及上下文数组附加到动作。

"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。

表 87. Pagerduty 事件触发事件属性

名称 必填 描述

description

此事件的简短描述

event_type

要发送的事件类型。必须是 triggerresolveacknowledge 之一。默认为 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.* 为每个帐户配置默认值。

所有这些对象都支持模板化,因此您可以使用上下文和负载中的数据作为所有字段的一部分。

表 88. Pagerduty 事件触发上下文属性

名称 必填 描述

type

linkimage 之一。

href

是/否

要包含更多信息的链接。如果类型为 link,则必须存在;如果类型为 image,则可选。

src

image 类型的 src 属性。

配置 PagerDuty 账户

编辑

您可以在 elasticsearch.yml 中的 xpack.notification.pagerduty 命名空间中配置 Watcher 用于与 PagerDuty 通信的账户。

要配置 PagerDuty 账户,您需要要向其发送通知的 PagerDuty 服务的 API 集成密钥。要获取密钥:

  1. 以账户管理员身份登录 pagerduty.com
  2. 转到 服务 并选择您要定位的 PagerDuty 服务。
  3. 单击 集成 选项卡,如果不存在,则添加 Events API V2 集成。
  4. 复制 API 集成密钥以供下面使用。

要在密钥库中配置 PagerDuty 账户,您必须指定账户名称和集成密钥(参见 安全设置)。

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

在 7.0.0 中已弃用。

仍然支持在 YAML 文件中或通过集群更新设置存储服务 API 密钥,但应使用密钥库设置。

您还可以为 PagerDuty 事件属性 指定默认值。

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 动作中指定应向其发送事件的帐户。

xpack.notification.pagerduty:
  default_account: team1
  account:
    team1:
      ...
    team2:
      ...