国泰君安智能运维场景落地实践


需求和挑战:

日志作为运维人员最为关注的一类数据,是程序运行过程中由代码打印记录的对一些程序完成的任务和系统的状态。

国泰君安专家团队在对日志异常检测进行充分解读和分析和,发现目前面临如下挑战:

归类设置告警困难:每天数据中心会产生数以千万计的系统日志信息,且系统日志格式多样,因此归类设置告警困难。

NLP方法不适用:当下流行的NLP方法并不适用,国泰君安需要结合运维领域知识从日志中提炼日志模板。

错误日志数量多:当线上发生异常时,打印的大量错误日志难以阅读。

日志变化频繁:日志会随着设备厂商和设备型号的变化而变化,如何对日志模板进行增量式学习,是对算法性能提出的巨大挑战。

 

 

面对上述这些问题国泰君安专家团队认为需要提供一种日志异常检测机制,准确、高效地解析日志,且自动、准确地检测各种型号设备或应用的多语法语义的单条异常日志和异常日志序列,从日志结构中找到未知故障,完善当前监控体系,对感知不及时、维护工作量巨大和误报率高等现状问题进行解决。

整体设计

检测模式

运用机器学习方法,首先通过识别重要日志中的变量,对日志做实时聚类形成日志模式,并与正常时段日志模式对比,出现异常时发出告警来辅助运维人员快速定位异常,这弥补现有业务监控中,难以通过规则事先设置监控。


算法逻辑

日志异常检测的核心处理步骤分为三步:实时读取日志、模式提取和模式异常检测。

l 实时读取日志:国泰君安系统的应用实践采用的是每次读取固定长度时间段日志,如每次读取某5分钟的日志;

l 模式提取:对一定数量的日志做聚类,基于提取的日志模式的时序趋势,根据同环比、基线偏离度、波动性、时间窗口等特征判定其是否异常;

l 模式异常检测:在出现异常时发出告警,有效解决新增、时段新增、数量异常等三种故障情况,弥补现有业务监控中,难以通过规则事先设置的监控。

 

应用效果

日志异常检测的优越性体现在如下几个方面:

l 海量接入:允许接入海量日志,并对其进行必要的格式清洗。目前,日志异常检测应用已接入多达34种日志,每日分析日志量1.5T以上实时解析:支持对海量日志进行实时解析。日志从接入到解析完毕归档的时间延迟不超过1分钟,并且可对解析出来的日志模板数量异常情况进行实时检测。

l 告警收敛:借助日志异常检测应用,告警降噪聚类效果达到近90%。

l 捕捉异常:借助日志异常检测应用,发现多起原有监控系统未报出的问题。日志异常检测应用较好地捕捉到如新增错误日志、日志数量突增、指标异常、无数据等多种异常情况,对提升运维监控质量有很好的促进作用。

l 提高效率:日志异常检测智能算法有效解决基于人工规则检测单条异常日志存在的人工开销大、召回率低、不通用、计算效率低等缺点

 

运维实例

以生产系统某一次故障为例:

某业务系统在一次变更后,运维人员收到业务密码错增多的告警信息,查看后发现,平时休市之后该类日志仅有几条,而该日却频繁出现。排查之后发现是变更引起登录接口报错。通过这种方式,使得管理员在变更后能第一时间发现问题,故障隐患及时被解决。且该类报错属于业务错误而非系统错误,一般情况下管理员不会去配置这一类的关键字告警。通过这种基于算法的检测,丰富监控范围,使得收集的各类日志能够发挥效用。