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“事件 API v1”参数名称相匹配,但最终使用“事件 API v2”API 并相应地转换属性。

表 86. Pagerduty 事件触发器事件属性

名称 必需 描述

description

此事件的简短描述

event_type

要发送的事件类型。必须是 triggerresolveacknowledge 之一。默认为 trigger

incident_key

Pagerduty 端的事件密钥,也用于重复数据删除,并允许解决或确认事件。

client

触发事件的客户端名称,例如 Watcher 监控

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

linkimage 之一。

href

是/否

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

src

image 类型的 src 属性。

配置 PagerDuty 帐户编辑

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

要配置 PagerDuty 帐户,您需要获取要向其发送通知的 PagerDuty 服务的 API 集成密钥。要获取密钥,请执行以下操作:

  1. 以帐户管理员身份登录 pagerduty.com
  2. 转到 服务 并选择您要定位的 PagerDuty 服务。
  3. 单击 集成 选项卡,如果尚不存在 事件 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:
      ...