基于人工智能的日志清理方法的研究与应用
2021-01-21郭磊王承志徐万新
郭磊 王承志 徐万新
摘要:在企业IT系统的日常运营管理中心,主机磁盘管理是一项繁琐、频繁且重要的工作,耗费大量人力,稍有疏忽就会影响主机的正常使用,给IT系统带来不稳定性。随着人工智能的蓬勃发展,人工智能在日常工作中的应用也逐渐崭露头角。本文研究并使用人工智能的技术如时间序列和回归算法,综合历史同期业务量,工程师调优参数等多因子进行磁盘使用率变化趋势预测,按照日志重要程度分优先级进行日志自动化清理的方法,并支持分布式系统大批量主机管理。使用本方法解决了IT系统运营管理中心一大难题,提高了运营人员效率,同时提高了系统可用性和稳定性。
关键词:人工智能;自动化运维;主机巡检;日志清理
一、引言
本文主要基于企业IT系统日常运营管理中的痛点,结合大规模主机日志清理工作的现状,分析传统管理方案的弊端,提出了基于人工智能进行日志清理的方法,并深入研究了人工智能中可应用到本场景的技术如时间序列和回归算法,运营管理经验可作为因子输入到算法中,做到技术结合业务,形成一套可行的方法和技术方案,解决实际生产问题。
二、日志管理现状
电信运营商有很多业务数据规模较大的IT系统,这些系统的日常维护过程中,比较繁琐的一项工作就是对运行中不断产生的日志文件进行及时清理,这些日志文件包括系统启动日志、用户登录日志、服务访问日志、服务报错日志等,可以帮助查看系统访问痕迹、安全信息、系统服务异常原因等。在服务器的持续运行中,随着日志的不断产生,系统的可用空间会被逐渐占用,如果不及时清理,会影响系统正常运行,甚至写满整个磁盘导致系统宕机,影响业务的正常使用。
日志清理是保证系统稳定运行的重要工作,常规的清理方法是人工登陆服务器进行日志文件清理,或是基于程序脚本定时清理。以上清理方式或是基于工程师个人经验,或是基于固定程序/任务,判断清理频率、清理条件,清理方式、清理内容。常规方式难以适应不同重要程度日志的清理要求,例如:不重要日志可直接进行删除,重要日志需要保留一定时间,或者备份后删除源文件。难以适应不同机器类型日志的清理要求,例如:磁盘空间大的机器可保留时间稍长,空间小的需要频繁的清理。难以适应不同业务压力机器的清理要求,例如:系统访问频率高的会更快的产生日志需要更高的清理频率,而业务压力小的机器则无需经常清理。因此,面对多种场景,原有方式或是基于工程师个人丰富经验判断,难以固化,若相关工程师转岗会带来系统运行不稳定的风险。基于有限人力,面对目前越来越多的机器数量也难以高效应对。基于固定程序定时运行的方式,需要不同场景定制不同程序,也较为繁琐,效率低下,容易出错。
三、研究目的
面对以上日志清理的运营痛点问题,本发明提出基于人工智能的日志清理方式,可基于机器磁盘空间大小、业务压力、日志类型、日志重要程度等因素综合考虑进行日志清理,提高运营效率和维护操作的安全性。并且在机器系统信息或业务产生变化后,可基于机器學习自动调优以达到智能清理日志的目的。
四、基于人工智能技术的日志清理技术方案
接下来详细说明下这种基于人工智能日志清理方法的技术方案。方案整体架构如附图一所示,基于人工智能的日志清理系统支持多台机器的日志自动清理,无需人工登陆主机清理,也无需在主机上定制脚本定时清理。支持智能预测,智能清理,清理效果统一展示,工程师评分优化,模型训练,不断优化清理效果。具体流程如附图2所示。
1、当有机器接入网络时可自动注册到日志清理系统中,并将系统信息如磁盘数量,磁盘空间大小等信息发送给日志清理系统。
2、机器系统信息发生改变时,如扩容了磁盘,可自动反馈更新信息。
3、日志清理系统可实时自动采集已注册机器的日志信息,如日志文件名称,日志文件路径,日志文件大小,磁盘空间剩余大小等。
4、日志清理系统进行日志清理分析,使用但不限于以下算法:
(1)利用采集数据,使用时间序列算法或回归算法预测日志增长趋势。
(2)结合系统业务历史数据,如往年同期业务情况进行日志增长预测修正。
(3)支持外部信息输入,如预期接下来一段时间会新增业务,工程师可反馈系统调整优化,模型训练。
(4)结合磁盘空间大小与日志增长预测磁盘还可使用时间。
(5)分析往期预测与实际情况数据的差异,不断进行因子调优,增加预测准确度。
(6)结合日志类型,日志重要性,日志最近修改时间等做出日志清理的操作,计算需要清理的日志名称,清理方式;如优先删除重要性低的日志,优先删除老旧日志,压缩保留重要性高的日志等。
(7)根据系统计算结果下发清理命令给不同机器进行个性化清理操作。
5、机器清理结果反馈给日志清理系统。
6、展示清理记录、清理效果,支持工程师评分,调优,输入专家经验优化下次清理准确度。
五、概述应用案例
这里将针对本申请提出的技术方案给出更详细的示例性应用案例。基于人工智能的日志清理方法及系统实现实例如下。
(1)视需要清理机器的数量,使用单台机器或者集群部署日志清理系统。机器通过部署代理的方式注册到日志清理系统,并通过接口发送系统信息到日志清理系统。
(2)机器系统信息发生改变时,如扩容了磁盘,可触发系统信息通过接口发送系统更新信息到日志清理系统。
(3)日志清理系统可实时通过接口采集已注册机器的日志信息,如日志文件名称,日志文件路径,日志文件大小,磁盘空间剩余大小等并将数据写入kafka进行保存。
(4)使用scala消费Kafka数据队列写入Redis,供算法程序使用,使用python读取Redis的数据,进行数据清洗、训练模型、进行预测、计算结果,预测结果写入Mysql进行存储。根据计算结果进行界面展示。使用以下算法:
1.利用采集数据,使用时间序列算法和回归算法预测日志增长趋势。
针对时间序列数据的预测问题,可以用时间序列算法实现,也可以用回归算法实现。时间序列算法一般默认数据是平稳无剧烈波动的,但是非平稳数据经过差分等预处理后,也可以进行预测,只是增加了时间成本。主机性能指标,像磁盘空间使用率,一般是呈线性或非线性增长,且再结合实际运维场景,如磁盘空间达到告警警戒线时,通过分析近2个小时的增长情况,预测达到100%使用率所需的时间,由此可见,使用回归分析算法更加合适。
自变量和因变量是回归预测中重要的概念,在主机性能指标趋势预测中,时间可以作为自变量,使用率作为因变量,当使用率达到100%时,通过已经训练好的回归模型,反推时间。下面以简单线性回归来举例。
上面的公式是多元线性回归方程式,具有多个自变量,但是主机性能指标的趋势预测是单指标的预测,所以自变量只有时间,所以下面的回归公式更加合适:
只要训练模型求出回归系统和截距,当使用率为100%时,求出相应的即可以知道多长时间达到100%使用率。
2.结合系统业务历史数据,如往年同期业务情况进行日志增长预测修正。支持专家经验输入,如系统预期接下来一段时间会新增业务,工程师可反馈系统调整优化,模型训练。调整磁盘达到100%的时间。
3.分析往期预测与实际情况数据,不断进行因子调优,增加预测准确度。
4.结合日志类型,日志重要性,日志最近修改时间等做出日志清理的操作,计算需要清理的日志名称,清理方式;如优先删除重要性低的日志,优先删除老旧日志,压缩保留重要性高的日志等。
如系统访问日志,系统运行日志,系统报错日志重要性因子可给一个略低的初始值,可以进行删除操作。而系统登录日志,重要操作日志需要给一个高的因子,进行压缩保留。因子支撑工程师经验输入进行调整,
5.根据系统计算结果下发清理命令给不同机器进行个性化清理操作。
(5)机器清理结果反馈给日志清理系统。
(6)展示清理记录,清理效果,支持工程师评分,调优,优化下次清理准确度。
六、应用效果
采用人工智能的方法进行日志清理。提出一整套基于多因子如使用磁盘空间大小,日志大小增长数据,磁盘空间剩余大小,历史业务量数据,日志类型如重要性等因子智能预测,智能清理日志。并支持工程师专家经验输入,如:调整日志重要性程度因子,基于即将开展的业务预期调整日志增长预测结果,对清理效果进行评分来进行模型训练,优化系统。
本方案可自动进行日志清理,无需人工登陆主机清理,无需每台机器定制程序,节约了人力,基于多种因子智能清理,增加了清理准确性,合理性。解决了以往清理程序分布各个机器清理结果难以掌握,人员变更后难以交维的IT系统日志清理的运营痛点。当有新机器接入时可自动注册,十分方便。支持清理效果展示,评分不斷训练模型。
参考文献:
[1]人工智能时代带来什么?[N]. 张烨. 南通日报. 2021-12-01 (A02)
[2]人工智能新图景,比想象更“无限”[N]. 何明. 安徽日报. 2021-09-07 (010)
作者介绍: 郭磊(1992.8.16),性别:男;籍贯:安徽;民族:汉;学历:本科、学士;研究方向:自动化运维。