老杨说运维 | 如何快速进行日志异常检测和根因定位

2023-10-23 12:40

本文主要是介绍老杨说运维 | 如何快速进行日志异常检测和根因定位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

指标和日志作为智能运维中最常见也最常接触到的两类数据来源,能够有效洞察系统行为和健康状态,为监控、告警等分析中心提供原始材料,从而以便进行后续的检测、分析、溯源、知识沉淀等动作。

在智能运维建设中,为了实现更高效的异常检测和快速根因定位,我们一直在探索能否通过算法和专家经验的融合,从而对这两类数据进行更智能化的分析。

随着银行业务的快速发展,系统体量已达成百上千,被管理对象高达几万至几十万,指标数量已然成为一个天文数字,而单个指标的异常却经常发生,如果每一个指标都要进行管理、检测,依照传统的调参方式会力所不及。

根据这类实际情况,我们在夏洛克指标解析中心里提供了用算法自动调优算法的能力,希望帮客户实现指标异常检测算法的自动化,减轻人力成本、提升运维效率。

简而言之,就是通过算法对指标历史数据特征进行学习。当异常出现时,为系统自动选择合适的检测算法对参数进行优化。

 △某指标监测图

如上第一张图所示,某指标检测默认选择偏向于周期性检测的算法A,但检测出来的指标不具备周期性,大量指标偏离基带,因此会引发大量的误告。

而第二张图,经过夏洛克指标解析中心的算法自动调参优化,对算法B进行检测,同时再对参数和召回率做一个大致的预测,这样生成的算法基带更具合理性,减少系统误告的发生。

另外,在对单个指标异常进行检测的时候,对于该异常的重要级判断首先需要进行关联,即规则关联以及与其他相关指标关联判断。当然,在此之前要对指标做一定的治理,了解该指标的类别属性,如业务指标、基础架构指标、数据库指标等等,进而才能为后续的收敛、分析、建模等提供精准有效的数据支持。

一、日志治理中如何快准狠进行日志异常检测

在复杂冗余的日志治理中我们主推的是用日志聚类算法去加强智能化检测的能力。做日志聚类有个首要前提是对日志进行分词即对格式语义进行区分,然后通过文本相似度算法把不同的日志分到不同的类别上。这样的算法,可以帮助运维人员解决很多问题。如下所示。

 △日志异常检测优化步骤

  • NO.1:自动发现全新的日志格式

对聚类后的日志进行时间序列的转计算,根据其历史特征去判别是否有全新的日志格式出现。新的日志格式代表两种情况,一种是从未出现过的故障,一种是应用变更。这样作为运维人员,能够及时处置故障或检查原有规则是否已经无效,尽早完成修复和调整。

  • NO.2:自动按格式分类日志

发现发生占特别小的日志,这类偶发日志中哪些值得关注?哪些不值得关注?用户不需要预先了解日志的详细含义,就可以自动过滤留下重要异常日志,经人工二次确认后及时安排维护。

  • NO.3:弥补传统日志关键字告警的局限

关键字告警只存在有和没有的两种情况,一般情况下某类日志发生量不会很大,如网口通断,但如果检测到某类日志突然大量增加,可能发生了严重故障,这是关键字告警无法做到的。

  • NO.4:日志聚类检测的定位

是传统日志平台基于关键字和规则告警的补充,并不是替代。它能够帮助运维人员更准确地找到故障问题、精准定位。

  • NO.5:根据日志情况评估适用性

并不是所有日志都适用于聚类检测算法,根据不同的日志类别属性进行筛选,如二进制的日志、Key Value的日志等,仍沿用原本的检测方法或其他检测方法效果会更好。

二、如何实现故障的根因定位

融合指标和日志是否可以一起为故障的根因定位提供更好的支持?这里我们分两个场景来进行实现。

1.交易指标异常分析

通过主交易指标(以下简称主指标),如交易量、延时、成功率等的异常检测告警,触发系统指标、基础架构指标和主指标之间的关联定位,同时触发交易维度和主指标之间的关联定位,了解谁是因谁是果,快速去帮助用户定位故障源头和原因。

2.日志调用链嵌码

在不改造日志的前提下,通过APM工具,如SkyWalking,将调用链信息嵌入交易日志中,实现交易日志的串联;再通过调用链的延时数据发现交易异常,自动关联交易日志,实现快速定位。

以上两种场景已在落地实践中,虽然这样的改造十分艰难,过程十分漫长,但我们相信经过双方共同协作努力,未来的运维效率一定会到非常不错的提升。而擎创夏洛克指标解析中心、日志精析中心、日智速析专家三大产品也会持续尝试新的思路方法,不断演进,为客户的运维数字化转型提供源源不断的助力。

更多运维思路和方法我们将持续更新,敬请期待~

随手关注,更新不迷路~

这篇关于老杨说运维 | 如何快速进行日志异常检测和根因定位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/267902

相关文章

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

python-nmap实现python利用nmap进行扫描分析

《python-nmap实现python利用nmap进行扫描分析》Nmap是一个非常用的网络/端口扫描工具,如果想将nmap集成进你的工具里,可以使用python-nmap这个python库,它提供了... 目录前言python-nmap的基本使用PortScanner扫描PortScannerAsync异

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C