观测云告警集成 PagerDuty 最佳实践

PagerDuty 是一款为企业 IT 部门提供事件响应的软件。您可以将告警管理接入 PagerDuty 从而触发自动事件或追踪服务变化。当服务出现问题时,PagerDuty 支持以电话、短信、邮件等方式通知企业 IT 部门。本文介绍观测云的告警事件如何推送到 PagerDuty 来丰富告警能力。

最佳实践
banner.jpg

简介

PagerDuty 是一款为企业 IT 部门提供事件响应的软件。您可以将告警管理接入 PagerDuty 从而触发自动事件或追踪服务变化。当服务出现问题时,PagerDuty 支持以电话、短信、邮件等方式通知企业 IT 部门。本文介绍观测云的告警事件如何推送到 PagerDuty 来丰富告警能力。

关于 PagerDuty 的更多信息,请参见 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 为观测云告警的事件内容(见下图)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台