Pagerduty 集成指引
title: "PagerDuty集成"
description: "以通过 PagerDuty 协议推送告警事件到快猫星云,实现告警事件自动化降噪处理"
date: "2024-05-11T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/pagerduty-integration-guide"
通过 webhook 的方式同步
Flashduty 实现了 PagerDuty Events API,输入和响应完全兼容。因此您可以通过 PagerDuty 协议推送告警事件到 Flashduty,实现告警事件自动化降噪处理。
同样的,对于已经支持推送事件到 PagerDuty 的告警系统(如 ElastAlert),你仅需要修改目的推送地址,即可利用 PagerDuty 协议推送事件到 Flashduty 。
在 Flashduty
您可通过以下2种方式,获取一个集成推送地址,任选其一即可。
使用专属集成
当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。
展开
- 进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面
- 选择 集成数据 tab,点击 添加一个集成,进入添加集成页面
- 选择 PagerDuty 集成,点击 保存,生成卡片。
- 点击生成的卡片,可以查看到 推送地址,复制备用,完成。
使用共享集成
当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。
展开
- 进入 Flashduty 控制台,选择 集成中心=>告警事件,进入集成选择页面。
- 选择 PagerDuty 集成:
- 集成名称:为当前集成定义一个名称。
- 点击 保存 后,复制当前页面的新生成的 推送地址 备用。
- 点击 创建路由,为集成配置路由规则。您可以按条件匹配不同的告警到不同的协作空间,也可以直接设置默认协作空间作为兜底,后续再按需调整。
- 完成。
在 PagerDuty
请求地址
{api_host}/event/push/alert/pagerduty
该地址同时支持 PagerDuty V1 和 V2 Events API。您必须修改 PagerDuty 地址为该地址。
Pagerduty V2 Events
参考文档:
鉴权方式:
两种方式任选其一:
- 方式 1:在 QueryString 中包含参数 integration_key
- 方式 2:将 integration_key 作为 routing_key 参数传入 Payload
Pagerduty V1 Events
参考文档:
鉴权方式:
两种方式任选其一:
- 方式 1:在 QueryString 中包含参数 integration_key
- 方式 2:将 integration_key 作为 service_key 参数传入 Payload
配置示例
以 ElastAlert2 为例:
- 步骤 1:获得推送地址
在当前页面填写集成名称并保存,重新打开集成详情,复制推送地址,如:
{api_host}/event/push/alert/pagerduty?integration_key=xxx
- 步骤 2:修改推送地址
修改已经部署好的 ElastAlert 实例对应源码,查看 diff :
- 步骤 3:上报告警事件
遵循 ElastAlert PagerDuty 推送配置文档 步骤,配置告警:
name: "b"
type: "frequency"
index: "pgy_audit*"
is_enabled: true
num_events: 1
realert:
minutes: 1
terms_size: 50
scan_entire_timeframe: true
timeframe:
minutes: 60
timestamp_field: "created_at"
timestamp_type: "unix_ms"
use_strftime_index: false
alert_subject: "Test {0} 123 aa☃ {1}"
alert_subject_args:
- "account_id"
- "operation"
alert_text: "Test {0} 123 bb☃ {1}"
alert_text_args:
- "request_id"
- "operation_name"
filter:
- query:
query_string:
query: "created_at:*"
# ------- FlashDuty ----------------
alert: pagerduty
pagerduty_service_key: xxx
pagerduty_client_name: wahaha
pagerduty_api_version: v2
pagerduty_v2_payload_class: ping failure
pagerduty_v2_payload_component: mysql
pagerduty_v2_payload_group: app-stack
pagerduty_v2_payload_severity: error
pagerduty_v2_payload_source: mysql.host.name
# ------- FlashDuty ----------------
- 步骤 4:重启 ElastAlert,等待告警触发
修改于 5 个月前