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

    简介

    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 为观测云告警的事件内容(见下图)。

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

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

    免费开启

    支持私有云环境部署

    代码托管平台