杨澎涛 范永合 孙剑 贾立辉
摘要:随着云计算技术的发展应用,资源高度集中共享服务,系统运维压力大,管理员处理问题滞后,经常是以救火员的身份去补救,无法提前预知系统的故障或应用瓶颈,时常会导致用户应用中断,影响生产进度。针对这种情况,如果能提前预测出系统应用趋势,提前进行预警处置,既可以避免影响用户使用,又可以减少突发的运维压力。为此,本文采用开源的zabbix监控系統实现对服务器资源应用趋势的预测,辅助运维人员进行日常管理,有效提升云计算中心的智能化运维管理水平。
关键词:zabbix;趋势预测;应用服务器
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)27-0273-02
1 引言
随着云计算技术的快速发展,IT资源高度集中,应用类型多种多样,管理员的运维压力越来越大,除了要处理系统硬件故障,还要时时处理出现的各类应用瓶颈。同时,运维管理人员往往在硬件资源发生故障、应用产生瓶颈,影响到用户应用时才以“救火员”的身份去补救,缺乏有效的手段对故障和性能瓶颈进行提前预测和防范,往往影响到用户的生产进度。如果能提前预测出系统应用趋势,提前进行预警处置,既可以避免影响用户使用,又可以减少突发的运维压力。这就需要采用一种趋势预测技术来实现智能化的预测分析。这种预测技术是一种统计或数据挖掘解决方案,包含可在结构化和非结构化数据中使用以确定未来结果的算法和技术。目前,一些商业化软件具备了相关预测功能,但是价格高且定制灵活性较低。经过对多个开源软件的调研分析,发现zabbix开源监控系统具有趋势预测功能,而且该开源系统具有良好的社区支持和插件较多,有特别良好的开发文档及中文支持,因此采用zabbix解决方案来实现对服务器资源应用趋势进行预测。
2 zabbix趋势预测函数分析
在zabbix4.0版本中,提供了2个函数timeleft和forecast用于趋势预测:
(1)Timeleft函数(该函数的含义就是监控项达到预设的阈值需要多长时间)
Timeleft主要由4个参数构成:timeleft(sec|#num,
Sec表示时间,如5s 表示5秒,5m表示5分钟。
#num 表示最近获取到值的次数,#10表示最近10次的值。Sec和#num是必须参数,二选一。
time_shift表示时间偏移,如1d表示已过去的1天,是可选参数
threshold 表示阈值
fit表示预测算法模型,默认是liner(线性模型)
示例:timeleft(1h,1d,10)—根据前一天零一小时的数据预测取值达到10所需的时间
(2)Forecast函数(该函数的含义是根据现有取值预测未来可能检测到的值)
Forecast主要由5个参数构成:forecast(sec|#num,
Sec表示时间, #num 表示最近获取到值的次数, Sec和#num是必须参数,二选一。
time_shift表示时间偏移,如1d表示已过去的1天,是可选参数
time表示要预测未来什么时间的值
fit表示预测算法模型,默认是liner(线性模型)
mode表示输出结果选项(最大值、最小值、平均值等)
示例:forecast(1h,1d,12h)—基于前1天零1小时的数据预测12小时之后的数据
3 趋势预测功能配置及展示
要进行趋势预测,需要创建新的监控项,这里在zabbix原有模板Template OS Linux上创建新的监控项预测磁盘及内存趋势。
具体配置过程如下:
首先进入Template OS Linux模块,选择监控项选项,进入监控项展示界面,如图1,
然后点击“创建监控项”按钮弹出监控项创建界面,如图2所示。
在该界面的重点是在类型中选择“可计算的”选项,键值根据作用自己定义一个,不能和已有键值重名。最核心的是写公式,如果要根据之前24小时的值预测内存未来30分钟的可用值公式如下:forecast(vm.memory.size[available],24h,,30m);如果要根据前1天的数据预测cpu使用值达到90%还需要多长时间的公式:timeleft(system.cpu.util[,user],1h,1d,90)
还可以来预测磁盘空间多长时间能达到指定的阈值等等。设置好监控项后,等待数据收集一段时间,就可以在界面上查看预测图形。如图3所示是cpu要达到指定阈值所需时间的预测图,图4是内存未来1小时使用情况预测。
4结束语
随着资源中心服务器数量的不断增长和应用复杂度的增加,对资源应用趋势的预测需求会越来越大,通过趋势预测避免了突发问题导致的运维管理人员的疲于奔命,提升了生产用户的应用体验。同时趋势预测也是智能运维的一部分,随着智能运维的不断推进,趋势预测技术必将快速发展,本文基于zabbix进行的趋势预测算法较为简单,能满足基本需求,稳定性可靠,但是面对更加复杂的应用环境,需要在此基础上使用神经网络、机器学习等技术完善预测算法,综合多方面参数,提高预测的准确度,完全代替人工巡检,把运维管理员在日常巡检中彻底解放出来。
参考文献:
[1] 吴夫丹.基于云平台的服务器监控系统设计[D].西安:西安工业大学,2014.
[2] 董波,沈青,肖德宝.云计算集群服务器系统监控方法的研究[J].计算机工程与科学,2012,34
(10):68-72.
[3] 朱瑞斌.服务器集群监控系统的设计与实现[D].北京:北京交通大学,2015.
[4] 周萌,林国策,杨厚云.CENTOS下 ZABBIX的配置与使用[J].北京信息科技大学学报(自然科学版),2015,30(1):90-94.
【通联编辑:光文玲】