热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

老杨谈IT运维|快速实现日志异常检测与根源分析

在智能运维领域,指标和日志是最常用的数据来源,能够有效反映系统的运行状况和健康状态。通过对这些数据的深入分析,可以为监控和告警系统提供关键信息,帮助快速实现日志异常检测与根源分析,提升整体运维效率。

前言:

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

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


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

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

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

 △某指标监测图

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

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

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


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

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

 △日志异常检测优化步骤


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

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


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

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


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

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


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

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


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

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


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

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

1.交易指标异常分析

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

2.日志调用链嵌码

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

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

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

随手关注,更新不迷路~


推荐阅读
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 区块链与IDCC大数据产业的深度融合
    本文探讨了区块链技术如何与IDCC大数据产业结合,推动新型基础设施建设的发展,解决了传统数据处理中的诸多难题,并提出了具体的解决方案。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 本文探讨了在SQL Server 2008环境下,当尝试删除拥有数据库架构的用户时遇到的问题及解决方案,包括如何查询和更改架构所有权。 ... [详细]
  • 本文详细介绍了Android系统的四层架构,包括应用程序层、应用框架层、库与Android运行时层以及Linux内核层,并提供了如何关闭Android系统的步骤。 ... [详细]
  • 本文总结了设计、开发和部署Web应用程序时应遵循的一些最佳实践,这些实践结合了个人经验和权威资料,旨在帮助开发者提高Web应用的安全性。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • PGXC中的两阶段提交机制及其对事务一致性的保障
    PGXC作为一款基于PostgreSQL的分布式数据库系统,利用Sharding技术将数据分散存储于多个数据库实例中。本文探讨了PGXC的两阶段提交过程及其实现事务强一致性的方法。 ... [详细]
author-avatar
哈喽KIKI1990_117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有