观测云告警集成 PagerDuty 最佳实践
PagerDuty 是一款为企业 IT 部门提供事件响应的软件。您可以将告警管理接入 PagerDuty 从而触发自动事件或追踪服务变化。当服务出现问题时,PagerDuty 支持以电话、短信、邮件等方式通知企业 IT 部门。本文介绍观测云的告警事件如何推送到 PagerDuty 来丰富告警能力。
简介
PagerDuty 是一款为企业 IT 部门提供事件响应的软件。您可以将告警管理接入 PagerDuty 从而触发自动事件或追踪服务变化。当服务出现问题时,PagerDuty 支持以电话、短信、邮件等方式通知企业 IT 部门。本文介绍观测云的告警事件如何推送到 PagerDuty 来丰富告警能力。
关于 PagerDuty 的更多信息,请参见 PagerDuty 官网。
前置条件
- 注册观测云 SaaS:https://auth.guance.com/businessRegister
- 观测云组件 Func:单机部署
- 已具备 Pagerduty 账号
集成方案
1、配置 PagerDuty
- 创建 service

- 选择 Generate a new Escalation Policy

- 选择 Intelligent

- 选择 V2

- 记录下 Events API V2 的 Integration Key 和 Integration URL (Alert Events)

2、Func 提供 Webhook 服务
创建授权链接脚本
需要改动的地方有:webhook_pagerduty、routing_key 两个字端对应 1 步骤配置 PagerDuty 中的 Events API V2 的 Integration Key 和 Integration URL (Alert Events)值。
注:该脚本仅仅对观测云常用的告警内容做了提取并推动到了 PagerDuty,读者可根据使用场景灵活调整 params 的参数部分。调整参考:接收观测云 Webhook 自定义告警。
import requests
import json
webhook_pagerduty = 'https://events.pagerduty.com/v2/enqueue'
@DFF.API('Webhook 对接')
def webhook_accept(**event):
#print(f'事件数据:{event}')
params = {
"payload": {
"summary": event.get('df_message'),
"severity": event.get('df_status'),
"source": event.get('df_title')
},
"routing_key": "000000000000000000000000000",
"event_action": "trigger"
}
r = requests.post(webhook_pagerduty, data=json.dumps(params), timeout=3)
print(f'接口返回:{r.status_code} {r.text}')
return r.status_code, r.text
发布为授权链接
发布后会产生观测云调用所需的 Webhook 地址,配置到 3 步骤中的 Webhook 地址里。


3、观测云配置 Webhook 通知方式
配置观测云的通知方式为 Webhook 如下图,Webhook 的地址为 Func 发布的授权链接地址。

4、配置告警策略
将 3 步骤 Webhook 通知方式关联到 Pageduty 的告警通知策略中,如下图对紧急、告警、信息都关联到 pagerduty 的通知方式。

效果展示
触发一个告警
在观测云配置《监控告警》,并触发告警事件,如下图所示:

PagerDuty 平台查看告警事件
在 PagerDuty 的 All Incidents 页面查看手动触发的告警事件。
Summary 为观测云告警的事件内容(见下图)。

Contact us
Join the community
to join the community
Try Guance
Start online and pay only for what you use.
Get startedChoose a Guance plan