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

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

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate