阿里搜索业务AIOps智能运维实践综述

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本篇文章主要介绍下我们在异常检测,根因分析,冷数据及僵尸应用治理上的实践,各项实践也都取得了预期的效果。下面分别介绍下以上问题我们的解决方案和进展。

随着搜索管控的统一,对智能运维能力也提出了新的要求,如何用同一套解决方案同时解决各系统的痛点问题做到AIOps能力复用,上篇文章已经介绍过hawkeye优化大师及torch容量评估的实践,本篇文章主要介绍下我们在异常检测,根因分析,冷数据及僵尸应用治理上的实践,各项实践也都取得了预期的效果。

下面分别介绍下以上问题我们的解决方案和进展。

异常检测

背景:
目前搜索系统的监控是基于规则的阈值报警,面对周期性指标,毛刺和稀疏数据等复杂场景难以适用,导致大部分指标报警泛滥,给用户带来很大的困扰,于是我们和kmon监控同学基于tisplus搜索业务平台top报警场景联合达摩院算法尝试增加异常检测进行智能报警治理报警泛滥问题。

解决方案:

image.png

(1)管理员在烽火台监控平台给指标配置异常检测算法及参数

(2)kmon-apiserver会定时同步烽火台报警配置,query及算法参数给kmon-batcher

(3)kmon-batcher从kmon-gateway获取指标数据并和(2)中获取的数据一同调用A-pack

(4)A-pack是异常检测算法业务层,负责跟异常检测算法服务IAD交互,并将异常检测结果返回给kmon-batcher

(5)IAD是异常检测算法docker服务,基于被监控指标过去一周的历史数据对当前时刻指标进行异常检测。

(6)kmon-batcher发现a-pack对数据的检测结果为异常调用kmon-action进行生产报警事件并进行报警

(7)烽火台配置样本管理页面进行样本标注,评估算法异常检测效果

效果评估:
异常检测算法针对周期性,稀疏数据,均值变化都做了比较好的识别和处理,抑制大量不必要的报警。

基于规则的阈值变化报警,指标瞬间抖动很容易起变化率超过阈值引起误报,如图1(黄色的点代表规则阈值报警),图2通过算法只有均值变化率大的时候才触发报警,从而避免了图1 大量的误报。

image.png

image.png

基于周期性的指标波动算法也能很好的识别,红色点代表周期性算法识别出来的异常点。

image.png

特别是稀疏数据的波动报警很容易引发误报如图4,算法通过自动识别稀疏数据剔除值为0点,这样在非0的历史数据上进行算法学习避免了大量的无效波动报警如图5

image.png

image.png

为了准确评估增加异常检测的效果,烽火台上增加样本管理功能,用户可以对异常检测结果进行标注,这些标注的样本一来用于异常检测算法效果优化,二来用于算法迭代版本更新时做回归case。

image.png

我们选择了tisplus top报警场景增加异常检测智能报警,并通过人工对2天的异常检测报警结果标注评测,异常检测算法准确率和召回率均在92%,之前规则报警2天的报警量是上万级,增加异常检测后报警量降低到百级别,报警量减少97%。

根因分析

背景:
随着搜索用户的增多,值班同学每天的答疑量巨大,排查问题耗费了很多人力,梳理下来出现的问题种类就那么几种,排查模式也无非看看链路相关的kmon监控指标和查看分析日志。为此,我们基于答疑较大的引擎增量异常场景结合专家经验进行根因分析的诊断,报警发生时直接基于规则给出问题触发原因以及排查问题所需的关联指标及日志信息,从而提升问题排查效率。目前采取是借助指标数据和规则树的方式进行诊断,主要涉及的有增量场景中的增量跌0和端到端延迟上升两种问题的诊断。

解决方案

image.png

效果评估
根因分析目前涉及了chatOps和智能报警两个应用场景,chatOps用于解决当线上出现问题用户自主@机器人,便可获取异常问题根因分析诊断结论以及辅助排查的关键metrics指标及日志信息,平均单个问题相对人肉排查方式至少节省10到15分钟排查时间,在智能报警里,一个是报警信息里我们会直接透出异常情况下的相关指标数据及根因分析协助用户接收到报警时能准确知道触发报警的原因,并能直接看到问题定位所需要的辅助信息,系统每次报警触发根因分析,我们都会把诊断结论及排查所需的所有辅助metrics和日志信息抽取作为样本持久化保存起来,目前已积累约4w条样本,这些样本成为机器学习方式解决根因分析分析问题的宝贵资源(目前还在进一步探索中)。

image.png

冷数据及僵尸应用治理

背景
随着搜索igraph、dii、be、ha3业务的增多,各平台不同程度的存在冷数据(冷表或僵尸应用),冷数据就是指长期无流量却占据着资源的服务,因此,需要一套统一自动机制管理这些冷数据下线。

解决方案
image.png

冷数据治理分为巡检和通知两部分逻辑。巡检通过平台提供的冷数据接口进行巡检识别出冷数据及僵尸应用。通知逻辑主要分为管理员视角和owner视角的。管理员可以看到平台冷数据占的总资源,owner可以看到具体负责的表,反馈功能增加了加白名单和确认下线两个功能。加白名单的服务有30天的有效期,确认下线的则会走自动下线的逻辑。

效果评估

image.png

左侧图是管理员视角可以清楚看到平台下的僵尸应用列表及浪费情况,右侧用户视角可以及时发现自己名下僵尸应用及一键下线,整个功能上线以来清理了数以百计的僵尸应用释放不少宝贵机器资源,让搜索平台和用户之间建立起了良性循环。

展望

随着过去我们在异常检测,根因分析,torch容量规划,hawkeye优化大师,僵尸应用治理等各AIOps方向的实践大大降低了成本提高了效率和稳定性,为下一步进行AIOPS平台化建设树立了信心,让搜索各在线服务也都能享受到AIOPS带来的福利。随着搜索云上输出,开放性,易用性是AIOps平台设计首要考虑的两个问题。

我们的初步架构如下:

Kmonitor定位智能运维数据平台,将采集,监控,报警,诊断,处理等基于一身,核心价值是平台使用海量数据结合算法能力让用户更加方便知晓应用的系统状况,可以更快捷的定位问题并解决问题,并且具备自动处理问题的能力。

Kmon-agent 采集端支持丰富的数据源输入如日志,系统指标,容器指标,以及各种用户自定义插件来对接各个系统,持续保持数万个采集实例低消耗稳定采集,计算,过滤,转换。

Gnomon轻量级高可用分布式时序数据库承载每秒上亿数据点写入,时序数据针对性优化高效支持时序数据压缩,聚合,采样,高性能海量时间线自适应索引,内存优先策略保证查询效率。机群高可扩展,数据动态分区,水平扩展,支持动态扩缩容。机群自动控制机制,支持多级数据备份存储保证机群可靠性。

Razor 端到端计算平台,支持海量异构数据源批流一体计算引擎,系统集成Robust-STL异常检测算法,时序异常检测,搜索引擎健康检测自愈,根因分析,弹性调度,容量规划等AIOps解决方案,用户也可以自定义UDF实现自己运维场景上的运维策略。
image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1天前
|
人工智能 运维 自然语言处理
Elasticsearch AI Assistant 集成 DeepSeek,1分钟搭建智能运维助手
Elasticsearch 新支持 DeepSeek 系列模型,使用 AI 助手,通过自然语言交互,为可观测性分析、安全运维管理及数据智能处理提供一站式解决方案。
Elasticsearch AI Assistant 集成 DeepSeek,1分钟搭建智能运维助手
|
1天前
|
人工智能 运维 资源调度
AI 赋能混合云运维:告别手工操作,迈向智能自愈!
AI 赋能混合云运维:告别手工操作,迈向智能自愈!
116 85
|
19天前
|
机器学习/深度学习 人工智能 运维
AI辅助的运维风险预测:智能运维新时代
AI辅助的运维风险预测:智能运维新时代
131 19
AI辅助的运维风险预测:智能运维新时代
|
28天前
|
弹性计算 人工智能 运维
云产品评测|告别传统运维挑战!阿里云OS控制台引领智能管理新时代
阿里云OS控制台是专为运维人员设计的高效管理工具,旨在提升用户体验和简化操作流程。它不仅集成了OS Copilot等智能助手,还提供了系统诊断、订阅管理和AI组件等功能,支持API、SDK、CLI等多种管理方式。通过该平台,用户可以轻松纳管服务器、监控健康状态、执行故障排查,并享受针对阿里云环境优化的运维体验。整体而言,阿里云OS控制台为运维工作带来了极大的便利与效率提升。
|
1月前
|
运维 Cloud Native 开发工具
智能运维:云原生大规模集群GitOps实践
智能运维:云原生大规模集群GitOps实践,由阿里云运维专家钟炯恩分享。内容涵盖云原生运维挑战、管理实践、GitOps实践及智能运维体系。通过OAM模型和GitOps优化方案,解决大规模集群的发布效率与稳定性问题,推动智能运维工程演进。适用于云原生环境下的高效运维管理。
|
1月前
|
人工智能 运维 负载均衡
智能运维新时代:AI在云资源管理中的应用与实践
智能运维新时代:AI在云资源管理中的应用与实践
211 23
|
26天前
|
Linux 持续交付 调度
HTTPS 证书自动化运维:https证书管理系统-自动化部署
本指南介绍如何部署Linux服务器节点。首先复制生成的Linux脚本命令,然后将其粘贴到目标服务器上运行。接着刷新页面查看节点记录,并点击“配置证书”选择证书以自动部署。最后,节点部署完成,后续将自动调度,无需人工干预。
HTTPS 证书自动化运维:https证书管理系统-自动化部署
|
26天前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
|
26天前
|
运维
HTTPS 证书自动化运维:https证书管理系统之自动化签发
通过访问【https://www.lingyanspace.com】注册账户,进入证书服务菜单并新增证书。填写域名(单域名、多域名或泛域名),创建订单后添加云解析DNS记录进行质检。确认完成后可下载证书,并支持后续查看、更新和定时更新功能。证书过期前15天自动更新,需配置邮箱接收通知。
HTTPS 证书自动化运维:https证书管理系统之自动化签发
|
1月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
75 9