头图

简介

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

图片


观测云
21 声望85 粉丝

云时代的系统可观测平台


引用和评论

0 条评论