智能联动第三方告警中心,完美实现故障响应全闭环

前言

我们曾讨论完善的告警策略是整个数据监控系统的重要组成部分(参见《机智的告警策略,完善监控系统的重要一环》),介绍了如何配置告警通知以及场景示例,帮助用户及时更多潜在的故障和问题,有效地保障系统稳定运行和持续优化。为了实现故障发现、告警、处理的全闭环,我们可以利用 Webhook 或者本地 DataFlux Func 联动第三方告警响应中心,建立一个自动化的故障处理流程,提高系统的稳定性和可靠性。本文将介绍在观测云中如何配置 Webhook 和本地 DataFlux Func 连接第三方系统,从而发送告警通知到用户。

Webhook 自定义告警通知

当您需要通过 Webhook 自定义来配置告警通知对象时,可以在观测云的监控 > 通知对象管理 > 新建通知对象,选择 Webhook 自定义并填写 URL 地址。

告警通知细节

观测云的 HTTP 告警通知为【固定格式的 POST 请求】,请求体格式为application/json,您可以参考以下请求详情示例:

POST {填写的 Webhook 地址}
Content-Type: application/json{"timestamp"               : 1625638440,"df_status"               : "warning","df_event_id"             : "event-xxxxxxxxxx","df_title"                : "web001 存在问题","df_message"              : "web001 存在问题、nCPU 使用率大于 90\n 内存使用率大于 90","df_dimension_tags"       : "{\"host\":\"web001\"}","df_monitor_id"           : "monitor_xxxxxxxxxx","df_monitor_name"         : "异常检测名","df_monitor_checker_id"   : "rul_xxxxxxxxxx","df_monitor_checker_name" : "异常检测项目名","df_monitor_checker_value": "99","df_event_link"           : "https://console.guance.com/keyevents/monitorChart?xxxxxxxxxx","df_workspace_uuid"       : "wksp_xxxxxxxxxx","df_workspace_name"       : "我的工作空间","Result"                  : 99,"... 其他更多字段": "略",// 以下为旧版字段"date"          : 1625638440,"workspace_uuid": "wksp_xxxxxxxxxx","workspace_name": "我的工作空间",
}

具体的字段说明,参见:事件 - 观测云文档
一般来说,对接第三方消息平台时,只需要用到 df_title 和 df_message 两个字段即可。

对接方式

观测云为您提供两种监控告警通知对象 「Webhook 自定义」的对接方式:直接对接和 DataFlux Func 中转对接。根据您的实际情况,您可以自由选择并配置。

直接对接

在观测云中,支持用户配置 Webhook 自定义告警通知对象,以便在发生异常事件告警时,向用户指定的 URL 发送 HTTP 请求,实现告警信息的的传递,以便用户能够及时对故障进行响应和处理。直接对接方式即在观测云监控 > 通知对象管理的「Webhook 自定义」中直接填写客户系统/第三方系统 URL,这样观测云就能够将异常事件请求详情直接发送到第三方系统的告警响应中心。需要注意的是,采用这种方式需要客户系统/第三方系统能够处理观测云发出的上述类型请求;否则需要以下方式 DataFlux Func 作为“接口转换器”对接客户系统或第三方系统。

DataFlux Func 中转对接

我们都知道 Webhook 在传递数据或通知时发出的请求是有固定格式的。因此,一旦客户系统或第三方系统无法满足观测云的「Webhook 自定义」方式发出的 HTTP 请求格式需求(即上文所述告警通知细节),如请求体为 XML、String 或其他格式,我们就需要 DataFlux Func 即观测云开发集成的一款集函数开发、管理、执行为一体的平台,只需简单配置及编辑脚本即可实现告警通知的对接。

所以,在观测云产生事件时,将自动向本地 DataFlux Func 的授权链接发送固定格式的 HTTP 请求,再由 DataFlux Func 中编写的脚本向第三方告警响应中心发送请求。这样,用户就可以有更多第三方系统的选择来自定义告警通知对象,让故障响应变的更加及时和便捷。

当然,采用这种方式不仅需要合适的网络环境,还需要您了解基础 Python 开发知识以及 DataFlux Func 的使用方法(参见:https://func.guance.com/doc/intro-guide/)。

实际场景示例

由于某用户告警短信平台的接受请求格式与观测云「Webhook 自定义」发出的 HTTP 请求格式不同,需要利用 DataFlux Func 中转对接来发送观测云监控器异常事件的告警通知到其告警短信平台。

假设用户的告警短信平台调用方式如下:

GET http://some-domain/send-sms?to=13000000000&msg=短信正文

那么,结合上文所述的「告警通知细节」的内容,即可写出以下脚本:

import requestsSMS_API = 'http://some-domain/send-sms'@DFF.API('Webhook 对接')
def webhook_accept(**event):print(f'事件数据:{event}')params = {'to' : '13000000000','msg': event.get('df_title') or '您在观测云有新事件',}r = requests.get(SMS_API, params=params, timeout=3)print(f'接口返回:{r.status_code} {r.text}')return r.status_code, r.text

在 DataFlux Func 完成脚本发布后,我们就可以在管理>授权链接中为函数添加授权链接。

创建授权链接后,在授权链接的「示例」中,复制「POST 简化形式请求」中的 URL 地址(以 /simplified 结尾)。

转到观测云 ,将 URL 地址填入通知对象管理中的「Webhook 自定义」即可。

完成以上操作,用户就可以在观测云产生事件时,及时收到告警通知。根据不同的等级的异常情况,快速响应并处理故障,有效的保障用户系统的稳定运行。

结语

Webhook 作为基于 HTTP 的回调函数,有效地实现服务器之间的实时数据传输和通知。在观测云中,您不仅可以直接设置「Webhook 自定义」通知对象,也结合观测云开发集成的 DataFlux Func,快速实现与第三方告警响应中心的联动,避免错过重要异常情况信息,从而实现故障发现、告警和处理的全闭环,帮助企业将系统动荡遏制在摇篮里!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/196096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 之 ZSET 实战应用场景,持续更新!

前言 大白话介绍 Redis 五大基本数据类型之一的 ZSET 开发中常见的应用场景 ZSET 介绍 ZSET 与 SET 相同点:都是是 String类型元素的集合,且不允许重复的成员ZSET 与 SET 不同点:ZSET 每个元素都会关联一个 Double 类型的分数,Re…

Latex去掉参考文献后面的参考文献所在页(去掉参考文献的反向超链接)

如下: 在使用latex插入参考文献的时候,最后面总是会出现这种代号。这是表明的是这条参考文献所在的页码,并且点击之后可以跳转到该页。正式来讲,这个叫超链接的BACKREF。若要去掉,只需要在引用hyperref的时候去掉page…

技术or管理?浅谈软件测试人员的未来职业发展,值得借鉴

我们在工作了一段时间之后,势必会感觉到自己已经积累了一些工作经验了,会开始考虑下一阶段的职业生涯会如何发展。测试人员在职业生涯中的不确定因素还是不少的,由于其入门门槛不高,不用学习太多技术性知识即可入行,所…

Net8 EFCore Mysql 连接

一、安装插件 Pomelo.EntityFrameworkCore.MySq (这里要选8.0.0以上版本低版本不支持.net8) 二、配置数据库连接串 appsettings.json 中配置数据库连接串 "ConnectionStrings": {"Connection": "server172.18.2.183;port3306;databasestudents;uid…

使用opencv将8位图像raw数据转成bmp文件的方法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 这里说的图像raw数据是只包含图像数据的缓存。主要使用了cv::imencode接口将 cv::Mat转化为图像缓存。 #include <opencv2/opencv.hpp>/* 生成一幅…

【若依框架实现上传文件组件】

若依框架中只有个人中心有上传图片组件&#xff0c;但是这个组件不适用于el-dialog中的el-form表单页面 于是通过elementui重新写了一个上传组件&#xff0c;如图是实现效果 vue代码 <el-dialog :title"title" v-model"find" width"600px"…

Pytorch进阶教学——训练一个图像分类模型(GPU)

目录 1、前言 2、数据集介绍 3、获取数据 4、创建网络 5、训练模型 6、测试模型 6.1、测试整个模型准确率 6.2、测试单张图片 1、前言 编写一个可以分类蚂蚁和蜜蜂图片的模型&#xff0c;使用数据集对卷积神经网络进行训练。训练后的模型可以对蚂蚁或蜜蜂的图片进行…

【广州华锐互动】VR沉浸式体验铝厂安全事故让伤害教育更加深刻

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为我们的生活带来了前所未有的便捷和体验。在安全生产领域&#xff0c;VR技术的应用也日益受到重视。 VR公司广州华锐互动就开发了多款VR安全事故体验系统&#xff0c…

蓝桥杯-03-蓝桥杯学习计划

蓝桥杯-03-蓝桥杯学习计划 参考资料 相关文献 报了蓝桥杯比赛&#xff0c;几乎零基础&#xff0c;如何准备&#xff0c;请大牛指导一下。谢谢&#xff1f; 蓝桥杯2022各组真题汇总(完整可评测) 基础学习 C语言网 ACM竞赛入门,蓝桥杯竞赛指南 廖雪峰的官方官网 算法题单 洛谷…

vue,nvue,uniapp,到底是什么

vue,nvue,uniapp,到底是什么&#xff1f; 发展猜想&#xff1a; 开发移动端软件&#xff0c;一般是控件逻辑&#xff0c;可拖动控件android studio都给你设计好了。 开发web页面时&#xff0c;用vue&#xff0c;vue是前端框架。主要是终端设备通过浏览器进行访问&#xff08…

ubuntu20.04使用LIO-SAM对热室空间进行重建

一、安装LIO-SAM 1.环境配置 默认已经安装过ros sudo apt-get install -y ros-Noetic-navigation sudo apt-get install -y ros-Noetic-robot-localization sudo apt-get install -y ros-Noetic-robot-state-publisher 安装 gtsam(如果是18.04的ubuntu直接按照官网配置&…

C++ 基础篇

目录 C开发概述 C特点 C跨平台的原因 C编译器 C库 操作系统API C基本概念 注释 变量 常量 两种定义常量方式的区别 表示符命名规则 常见的关键字 数据类型 整型 浮点数 字符型 转义字符 字符串型 布尔类型 运算符 算术运算符 赋值运算符 比较运算符 逻…

【VScode】超详细图片讲解下载安装、环境配置、编译执行、调试

这里是目录 VScode是什么&#xff1f;VScode的下载和安装环境介绍安装中文插件 配置VScodeC/C开发环境下载和配置MinGW-w64 编译器套件下载&#xff1a;配置&#xff1a; 安装C/C插件在VScode上编写代码设置C/C编译选项创建执行任务编译执行如果想写其他代码在同一个文件夹在不…

springboot 整合 Spring Security 中篇(RBAC权限控制)

1.先了解RBAC 是什么 RBAC(Role-Based Access control) &#xff0c;也就是基于角色的权限分配解决方案 2.数据库读取用户信息和授权信息 1.上篇用户名好授权等信息都是从内存读取实际情况都是从数据库获取&#xff1b; 主要设计两个类 UserDetails和UserDetailsService 看下…

新媒体营销模拟实训室解决方案

一、引言 随着互联网的发展&#xff0c;新媒体已成为企业进行营销和品牌推广的重要渠道。然而&#xff0c;对于许多企业来说&#xff0c;如何在新媒体上进行有效的营销仍是一大挑战。为了解决这个问题&#xff0c;我们推出了一款新媒体营销模拟实训室解决方案&#xff0c;以帮…

【文末送书】Python OpenCV从入门到精通

文章目录 &#x1f354;简介opencv&#x1f339;内容简介&#x1f6f8;编辑推荐&#x1f384;导读&#x1f33a;彩蛋 &#x1f354;简介opencv OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉库&#xff0c;提供了丰富的图像处理和…

java学习part31String

142-常用类与基础API-String的理解与不可变性_哔哩哔哩_bilibili 1.String 2.字符串常量池 变更储存区的原因是加快被gc的频率 比地址&#xff0c;equals比内容 3.字符串连接 s3s4都是字符串常量&#xff0c;后面几个会利用StringBuilder的toString&#xff08;&#xff09;&a…

JAVA全栈开发 day16_MySql01

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…

C#网络编程TCP程序设计(Socket类、TcpClient类和 TcpListener类)

目录 一、Socket类 1.Socket类的常用属性及说明 2.Socket类的常用方法及说明 二、TcpClient类 三、TcpListener类 四、示例 1.源码 2.生成效果 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在C#中&#xff0c;TCP程序设…

react-flip-move结合array-move实现前端列表置顶效果

你有没有遇到这样的需求&#xff1f;点击左侧列表项&#xff0c;则像聊天会话窗口一样将被点击的列表项置顶。 如果只是单纯的置顶的话&#xff0c;直接使用array-move就可以实现了&#xff0c;但置顶效果多少有点突兀~ 先上代码&#xff0c;直接使用array-move的情况&#xf…