胡恺
摘要:随着云计算和大数据等技术的快速发展,维护互联网及其软硬件系统的稳定运行、检测和修复潜在异常具有重要意义。日志作为软件系统中的重要组成部分,详细描述了当前系统状态,对日志内容和日志输出特征进行分析,可以判断当前系统的运行状态,预测可能发生的异常,为系统管理人员及时采取对应措施节省出宝贵时间。
关键词:层次;数据;媒体;日志
doi:10.3969/J.ISSN.1672-7274.2024.03.048
中图分类号:TP 311.13 文献标志码:A 文章编码:1672-7274(2024)03-0-03
1 日志分析研究背景
由于软件系统的规模和复杂度与日俱增,作为记录软件系统运行状态的日志数据。也呈现出格式复杂、数量庞大、类别失衡等特性。日志作为运维工作中最为核心的监控和分析对象,系统的异常或性能下降一般首先会从日志中体现出来。分析日志记录的动态信息,可以有效帮助运维人员发现、定位、分析并纠正错误,提高广电系统运行的稳定性和安全性。广电媒体集团的技术运维工作对于维护其信息安全及业务稳定至关重要[1]。如何采取方法解析日志事件是精准分析日志信息的前提,现在大部分IT环境已使用统一日志平台,采用关键字检测、统计分析等技术进行日志分析,但仍面临以下问题。
(1)固定阈值告警的设置依赖人员经验,准确性难以保证。
(2)关键字的梳理工作量大、依赖于运维人员经验、覆盖面较窄。
(3)日志分析需要大量研发和运维人员参与,问题处理效率与质量较低,且无法适应日志量快速增长、格式日渐复杂的趋势。
(4)在识别与历史数据的某种表现模式冲突的异常时,但異常阈值难以定义,没有明显界限。
如何提高日志分析效率、充分发挥日志的价值成为一个亟待解决的重要问题。随着大型分布式系统的广泛引入,基于机器学习算法的日志分析方法逐渐在实际项目中被广泛运用,并取得了良好的结果。
2 层次聚类算法原理
层次聚类算法由于其简单、高效、易实现、聚类结果稳定、适合大规模及高维数据、对噪声低敏感等特点,是聚类算法里使用最广泛的主要算法之一[2,3]。层次聚类算法通过对数据集在不同层次进行划分,可形成树形的聚类结构[4]。
其算法原理如下。
(1)数据表示。假设有一个包含N个样本的数据集,每个样本可以用一个d维特征向量表示,其中d是样本的属性维度[5]。
(2)相似度或距离计算。通过选择适当的相似度或距离度量方法,计算任意两个样本之间的相似度或距离值。
(3)初始聚类。将每个样本视为一个单独的聚类簇。
(4)聚合策略(凝聚层次聚类)。从初始聚类开始,选择最相似的两个聚类簇进行合并。
(5)分裂策略(分裂层次聚类)。从一个包含所有样本的聚类开始,通过选择一个样本进行分裂,将数据集分为两个较小的聚类簇。分裂的策略可以是根据某种准则选择样本进行分裂,如离差最大、方差最大等[6]。
(6)聚类树或聚类划分。通过不断迭代合并或分裂操作,可以形成一个聚类树,也称为树状图或谱系图。聚类树展示了聚类簇的层次结构和合并或分裂的顺序。
(7)停止条件。聚类过程中需要设置停止条件,例如,达到预设的聚类数量、相似度或距离的阈值,或者根据某种评估指标确定最佳聚类数目[7]。
层次聚类算法提供了一种直观且灵活的聚类方法,适用于各种数据类型和问题,帮助人们理解数据的内在关系和组织结构。
3 基于聚类的LogMine日志模式解析
算法
本节采用一种快速识别日志模式的日志分析算法LogMine进行介绍,其基本思路如下。
首先对日志预处理,以合适的粒度进行聚类,然后提取每一类日志的行为模式,在监控日志流时,计算新的日志行为模式与正常行为模式的匹配度,以此判断系统是否出现异常,如图1所示。
4 层次聚类算法应用场景
本场景基于上海文化广播影视集团的媒体日志进行介绍。在实际项目应用中,接入网络设备190台,系统主机103台,进行为期一周的日志分析过程。具体过程如图2所示。
系统总计产生了超过5 000万条日志,包括代表基础性能的生产数据、文件上传产生的静态数据等。通过LogMine算法训练出1 800条模式,建立了53个模型库,分别对应属于网络、安全和媒体板块的53种不同的媒体业务,如表1所示。
通过层次聚类算法分析这些日志,可以辅助进一步的监控和决策,提高运维效率,保障业务安全,实现媒体日志的精细化运营。具体应用场景如下。
4.1 模式识别细分
业务日志数量庞大、种类繁多,日志格式输出各异,没有统一标准。聚类算法可自动识别不同类型的日志特征,训练出不同模式,对应不同业务,方便不同业务线的运维人员有针对性地对日志进行分析处理,大大提高运维效率,如图3所示。
4.2 未知异常检测
通过Agent接入实时更新的业务日志后,根据日志间的相似度聚类,将相似度高的日志聚类为一个簇,并从这些簇中提取日志模版,不断接入新日志进行增量学习,形成模型并建立标准模型库。
在系统产生新日志后,导入模型库进行判断,匹配即为正常数据,反之则标记为异常并向运维人员告警。运维人员也可手动对异常日志进行备注,如异常类型、解决方案等。基于日志的异常标记,后续根据异常特征即可快速判断并处理,在应对复杂场景时,多种日志模式的异常检测能力发挥了显著作用,如图4所示。
在对新媒体区的网络设备进行异常分析时,由于网络设备具有固定标准,可以生成统一的日志格式,通过正则表达式进行解析,并结合聚类算法对数据格式的高容错性,可以精准命中异常日志,最大程度实现模型的高性能表现。
4.3 智能风险告警
随着系统架构的日渐复杂,运维人员收到的告警信息也变得多种多样,通过聚类将泛化的告警信息进行概括,可以在告警发出后,结合异常日志标记等信息,第一时间找到最核心的问题。
基于已有模型对日志自动进行分析,可在故障发生之前就精准定位,帮助运维人员判断异常类型并及时排障,为运维工作提供有效的智能数据支撑,进一步实现业务实时监控、风险数据统计及安全合规审计,如图5所示。
在实际项目中,因机房某施工人员误将一台交换机管理口网线拔掉,但该异常属性并未纳入监控工具Zabbix的监控指标集,因此并未监测到这一管理口异常,而系统检测出交换机出现新日志xxx interface down并发出告警,帮助运维人员快速定位故障,恢复正常环境,及时避免了风险进一步扩大。
5 结束语
本文采用层次聚类算法,针对上海文化广播影视集团的网络、安全、业务等媒体业務日志进行聚类划分,帮助运维人员在大量异构业务日志中快速了解并定位故障,有效保障了系统的稳定运行。智能大数据运维理念、方法和工具引入广电媒体行业,提高了媒体平台运维治理的系统化、规范化、精细化、智能化水平。
参考文献
[1] 李健.面向移动终端设备的用户轨迹异常检测研究[D].南京:南京邮电大学,2020.
[2] 丁建立,黄天镜,徐俊洁,等.基于时间序列的多维距离聚类异常检测方法[J].计算机工程与设计,2020(7):1935-1950.
[3] 邹金伟.IaaS云平台异常检测系统的设计与实现[D].北京:北京邮电大学,2020.
[4] 曾子轩.基于层次聚类和CNN-text的系统日志异常检测系统[D].武汉:中南财经政法大学,2020.
[5] 黄天镜.基于多维特征的ADS-B数据异常检测方法研究[D].天津:中国民航大学,2020.
[6] 李洁.基于日志关联分析的异常检测技术研究与实现[D].北京:北京邮电大学,2020.
[7] 李健,付雄,王俊昌.面向物联网移动终端设备的用户轨迹异常检测研究[J].计算机应用研究,2020(10):3135-3138.