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

简介

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

关于 PagerDuty 的更多信息,请参见 PagerDuty 官网。

前置条件

  • 注册观测云 SaaS:Guance
  • 观测云组件 Func:单机部署
  • 已具备 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 为观测云告警的事件内容(见下图)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值