写点什么

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

作者:观测云
  • 2024-06-12
    上海
  • 本文字数:1042 字

    阅读完需:约 3 分钟

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



用户头像

观测云

关注

还未添加个人签名 2021-02-08 加入

云时代的系统可观测平台

评论

发布
暂无评论
观测云告警集成 PagerDuty 最佳实践_告警_观测云_InfoQ写作社区