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,并通过适当转换属性来实现。

表 88. 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.* 为每个帐户配置默认值

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

表 89. 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. 单击集成选项卡,如果尚不存在,则添加一个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:
      ...