如何将“智能巡检”嵌入“业务系统”中?

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储OSS,敏感数据保护2.0 200GB 1年
文件存储 NAS,50GB 3个月
简介: 智能巡检借助强大的SLS“告警2.0”消息系统,可以很好的桥接很多内部和外部的系统(EventBridge、FC等),也可以借助SLS的SDK和自定义的函数去解决针对“告警结果”的下一步“分析任务”,从而更好的实现对于问题的排查和解决。

产品架构

智能异常分析应用围绕运维场景中的监控指标、程序日志、服务关系等核心要素展开,通过机器学习等手段产生异常事件,通过服务拓扑关联分析时序数据和事件,最终降低企业的运维复杂度,提高服务质量。产品架构图如下所示。

能力说明:

  • 单个任务支持3K~5K个观测对象的单维度、多维度的异常检测
  • 对于任务的检测结果而言,我们将异常分数和异常形态进行量化,便于进行后续的处理
  • 对于超过0.75分数的异常点,我们将相关的信息(可视化的图)通过告警2.0推送到您的钉钉系统中去
  • 对于全部的检测结果,我们将检测信息写入到当前的internal-ml-log中去,供您通过SDK去进行后续的集成
  • 同时在我们的App的任务页面,我们支持了“标注反馈”功能,您可以对检测的结果进行相关的标注,提升模型的学习准确度

那么接下来,我们一起来看下,如何更好的将“巡检”能力嵌入到您的业务系统中去!

能力集成

智能巡检借助强大的SLS“告警2.0”消息系统,可以很好的桥接很多内部和外部的系统(EventBridge、FC等),也可以借助SLS的SDK和自定义的函数去解决针对“告警结果”的下一步“分析任务”,从而更好的实现对于问题的排查和解决。

任务创建

这里我们以一个SLS的自身的监控场景为例去看下改工具具体要怎么更好的使用。我们想明确下场景的问题:在LogStore中,通过对访问日志的拆解我们可以拿到如下结构化信息(见下图)。很多客户的实际业务场景也是类似的,在访问日志中记录着客户的访问行为,通过巡检当前业务的黄金指标,我们可以很好的知道目前服务中各个API接口的服务能力。

根据上述的结构,我们定义当前的需要巡检的黄金指标:

  • 某集群各服务接口每分钟成功响应的次数
  • 某集群各服务接口每分钟失败响应的次数
  • 某集群各服务接口每分钟成功平均响应延时
  • 某集群各服务接口每分钟失败平均响应延时
*|SELECT   __time__ - __time__ %60AStime,         method,Count(*)AS total,         Count_if(status=200)AS n_succ,         Sum(         CASE
                  WHEN status=200 THEN latency
                  ELSE 0         END)/(1+ Count_if(status=200))AS avg_succ_latency,         Sum(         CASE
                  WHEN status!=200 THEN latency
                  ELSE 0         END)/(1+ Count_if(status!=200))AS avg_fail_latency
FROM     log
GROUPBYtime,         method limit100000

当然,我们还有另外一个形式的黄金指标,用来进行后续的监控,我们可以仅关注请求失败的接口中的数量的变化,具体的SQL如下

not STATUS:200|SELECT   __time__ - __time__ %60AStime,         method,         status,Count(*)AS num
FROM     log
GROUPBYtime,         method,         status limit100000

我们【智能异常检测】App中完成作业的配置。入口地址 https://sls.console.aliyun.com/lognext/profile

结果说明

通过上述配置,我们得到了一个【智能时序巡检】任务,我们根据下面的结果,介绍下截图中各部分的含义:

  • 【巡检实体数量】:当前任务中一共包含了多少个观测对象
  • 【巡检指标数量】:当前任务中每个观测对象的观测维度
  • 【实体信息列表】:当前任务中全部参与巡检的观测对象,且给每个对象提供一个唯一编码
  • 【异常事件列表】:当前选中的实体,在给定的时间窗口中,给定的过滤条件下的异常分数和异常类型

上述截图中的可视化信息均来自对应的Project下面的LogStore【internal-ml-log】中,关于这个logstore中存储的数据的详细说明,可以参考我们的官网文档。https://help.aliyun.com/document_detail/356466.html


告警使用

您可以通过在【巡检任务】创建的最后一步中,配置多种消息发送逻辑

  • 钉钉-自定义
  • 事件总线(EventBridge)
  • 函数计算(FC)

通过SDK/钉钉发送消息

这里面的详细配置逻辑以及解释不在赘述,更多信息可以参考这个链接:https://developer.aliyun.com/article/851142 里面较为详细的介绍了在告警中您可以使用那些字段进行后续的操作和判别。当巡检任务发现一个异常时,会将具体的信息按照如下的模版推送到钉钉的webhook地址。

函数计算(FC)

关于配置函数计算去进行后续操作的部分细节可以参考 https://help.aliyun.com/practice_detail/419622

这里我们简单的说在下一步的分析思路:

参考资料

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
存储 数据挖掘 数据库
【Python】python天气数据抓取与数据分析(源码+论文)【独一无二】
【Python】python天气数据抓取与数据分析(源码+论文)【独一无二】
|
前端开发 Java 应用服务中间件
ruoyi-vue前后端分离项目实现一体化打包(前后端合并打包)
ruoyi-vue前后端分离项目实现一体化打包(前后端合并打包)
2170 0
|
机器学习/深度学习 人工智能 运维
"颠覆传统运维!揭秘阿里云AIGC如何化身运维界超级大脑,让故障预警、智能告警不再是梦,运维大神之路从此开启!"
【8月更文挑战第14天】随着AI技术的发展,AIGC正革新依赖人工经验的传统运维行业。阿里云凭借其领先的云计算能力和AI服务生态,为运维智能化提供了坚实基础。通过分析历史数据和系统日志,AIGC能自动发现并预测故障,大幅提升运维效率。例如,结合阿里云SLS和PAI,可构建智能告警系统,实现异常检测和实时预警。随着AIGC技术的进步,运维领域将迎来全面智能化转型,开启运维新时代。
350 3
|
11月前
|
消息中间件 监控 数据可视化
实时计算Flink场景实践和核心功能体验
本文详细评测了阿里云实时计算Flink版,从产品引导、文档帮助、功能满足度等方面进行了全面分析。产品界面设计友好,文档丰富实用,数据开发和运维体验优秀,具备出色的实时性和动态扩展性。同时,提出了针对业务场景的改进建议,包括功能定制化增强、高级分析功能拓展及可视化功能提升。文章还探讨了产品与阿里云内部产品及第三方工具的联动潜力,展示了其在多云架构和跨平台应用中的广阔前景。
289 9
|
11月前
|
安全 应用服务中间件 网络安全
Nginx入门 -- 了解Nginx中证书配置
Nginx入门 -- 了解Nginx中证书配置
338 0
|
SQL 供应链 安全
Hospital Management Startup 1.0 SQL 注入(CVE-2022-23366)
Hospital Management Startup 1.0 SQL 注入(CVE-2022-23366)
|
安全 Ubuntu 应用服务中间件
NGINX环境下实现Web网站访问控制的实战指南
在NGINX中设置基于IP的访问控制可提升网站安全性。步骤包括安装NGINX、备份配置文件、编辑`/etc/nginx/sites-available/default`,添加`allow`和`deny`指令限制特定IP访问,如`allow 192.168.1.100; deny all;`,然后测试配置并重启服务。成功后,仅允许的IP能访问网站,否则会收到403错误。这为Web安全提供基础保障,还可扩展实现更多高级控制策略。【6月更文挑战第20天】
1117 3
基因组组装:Hifiasm 使用教程
基因组组装:Hifiasm 使用教程
|
SQL 关系型数据库 HIVE
KLOOK客路旅行基于Apache Hudi的数据湖实践
KLOOK客路旅行基于Apache Hudi的数据湖实践
287 2
KLOOK客路旅行基于Apache Hudi的数据湖实践
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
367 2