基于人工智能化IT运维服务解决方案
2018-02-27石磊
石磊
摘要
随着信息技术的不断发展,信息化应用水平不断提升和增多,随之而来的运维工作也在不断的增加。信息化应用基于硬件与软件结合,以达到智能化工作模式,提高工作效率。为了保证信息化应用的稳定可持续使用,对于硬件与软件的运行环境监控由为重要,随时发现或预判断软件与硬件的运行状态及可能出现的故障情况。传统的监控办法需要人为的检测核实,由于信息化应用的普及,给各个应用运维检测的工作量增加。随之提出人工智能化监控平台主机与应用服务运行状态的解决方案。通过人工智能化监控体系各种应用监控探针,采集主机与应用的运行数据并判断,随时发现故障并上报或解决故障等一系列智能化操作。
【关键词】人工智能 监控探针 IT运维
人工智能(Artificial Intelligence)它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。借助人工智能技术来帮助IT运维工作,不仅解放劳动力而且提高生产效率。对运维故障的发现及修复时效得到大力提升。
1 监控结构
IT运维监控是在机房基础建设之上的,不包括机房的风、水、电等基础建设的监控。IT运维监控主要分為三大领域基础环境监控、安全监控、应用监控。基础环境监控指针对数据中心所有运行的服务器、数据库、存储、网络设施的运行状态的监控,如CPU/内存/磁盘空间使用率、网络延迟、带宽占用、数据库死锁、磁盘KIPS等,可理解为IaaS层的监控;安全监控包括对内网用户访问的审计和外部攻击的监控等。对于金融企业而言,信息安全永远是最重要的话题之一,所以要单独把安全监控列出来,作为单独的一个领域;应用监控是在基础和安全监控之上的领域,侧重应用系统的运行指标,如访问量、交易时长、交易占比、业务指标等,可理解为PaaS或SaaS层的监控。
基础环境监控、安全监控、应用监控室最主要的三大领域,撑起这些领域的,是广泛部署的监控探针。就像汽车的传感器,道路的摄像头一样,探针作为监控系统的末梢,接入大量的被采集服务器,肩负起了获取最原始监控数据的重任。再好的监控算法、再牛的实时计算平台,若原始数据都无法准确、实时获取,都是白费。
2 监控方法
针对应用平台的机器与软件的运行状态数据的监控,通过引入探针的概念,在终端应用上安装探针来采集相关运行状态数据,再转发到后台监控平台,通过采集数据分析硬件与软件的运行状态情况。
2.1 创建探针程序
监控的核心部分是末梢的探针采集程序,针对不同的开发语言可实现多种版本的,本文主要通过Go语言实现。
目前所实现的采集应用模块如图1所示。
操作系统:主机服务器运行操作系统,包括windows、centos、Ubuntu、Redflat等硬件包括:机器相关型号与参数。
应用软件:关系型数据库管理系统MySQL,Web应用服务器Tomcat,轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器NGINX。
2.2 采集数据并发送
通过创建的探针程序来监控云主机和各个应用服务。首先采集到主机和应用服务的指标参数,再上报到后端监控综合分析平台,通过对指标参数值的分析,达到监控和预警目的。
2.2.1 主机与服务
采集云主机服务器基本指标参数和操作系统相关参数。具体详细参数见表1。
2.2.2 MYSQL服务
采集Mysql数据库服务基本指标参数。详细参数如表2。
2.2.3 TOMCA]服务
监控Tomcat,同样也是通过JMX远程监控服务来监控Tomcat.为了收集这些指标,会调用一个轻量级的Java插件JMXFetch连接到MBean服务器。详细指标参数如表3。
2.2.4 NGINX服务
通过监控探针采集Nginx提供的监控参数及其简单释义。详细见表4。
3 人工智能告警与预警
前面提到的监控探针、采集指标数据,有了这些数据就可以根据指标参数值分析出机器和应用系统运行状态情况。借助人工智能化综合分析平台,可以对IT运维工作起到告警与预警启示。所以云平台机器和应用系统的运行状态可以分人工智能告警与人工智能预警两大类别。
3.1 智能告警
所谓智能告警就是在系统发生故障后或指标达到预设的阈值后发出告警,阈值是事先固定的,当探针采集到的指标参数值,超过或低于系统默认配置的阈值,这时智能告警启动,会以系统、邮件、短信等不同方式发出告警信息。
采集到的指标数据,都可以配置告警阀值,设置报警条件,性能指标在多少分钟内,平均值、至少一次、总是、总计,大于、等于、小于某个值时,触发报警。如图2。
云平台宕机条件设置:超过多少分钟,平台不上报数据时,初步判断该平台宕机。每个成功安装探针客户端的平台,都会向后端上传心跳值。若后端没有收到该心跳值,可以初步判定该平台已经宕机。如图3。
3.2 智能预警
在系统发生故障后或指标达到预设的阈值后发出告警,阈值是事先固定的,例如CPU使用率超过85%,是一个固定的值,不会随着系统及时间的变化而变化。固定值会有一个问题:假如我们设定CPU使用率超过85%就告警,那么请问系统在凌晨没什么人使用的时候,CPU使用率超过了50%,系统是正常还是异常的?按照固定阈值算法,CPU使用率未超过85%,系统正常,不触发告警。但是用常识想一想,业务闲时系统的CPU使用率也超过50%,明显不正常啊!
遇到这样的问题把告警阈值动态调整,闲时设低一点,忙时设高一点。这个想法不错,但是会有两个问题:
(1)怎么识别闲时和忙时?
(2)每个指标都动态调整的话,自定义的量太大。
所以,智能预警就非常重要。简单地说,所谓智能预警就是根据该指标历史数据,动态调整当前的告警阈值,做到早发现、早追踪、早处理。智能预警引入了时间的维度,利用大数据和实时计算技术,将之前几周甚至几个月的指标进行聚合计算,得出当前时间的动态告警阈值,并根据时间的变化而不断调整。如果说监控是看现在,那么智能预警就是观过去,测未来。做到防患于未然,把系统或应用服务故障发生情况,扼杀在摇篮里。
4 实验与结果分析
人工智能化IT运维服务,成功的在湖南省湘西土家族苗族自治州吉首市智慧城市云主机监控及各应用系统的运行状态监控中实施应用。在运行过程中,大大的减少了运维人员的工作量,同时提高了工作效率,在系统稳定不间断运行中,智能预警起到很重要的作用,在故障发生之前,通过智能预警机制,早发现问题所在,运维人员第一时间解决了隐患问题。确保云平台稳定,应用系统运行状态良好。在智能告警方面也同样为运维帮助很大,当故障不可避免的发生后,及时的通知智能告警机制,第一时间通知运维人员,及时处理故障问题。提高故障处理时效,缩短故障时间。为整个云平台和应用系统保驾护航。监控管理平台如图4。
5 结束语
监控的目的是更早、更准确地预测及发现系统故障,为运维人员争取恢复时间。通过人工智能手段提高运维效率,保证云平台安全稳定运行。随着科技的进步与人工智能技术的不断提升,越来越多的解放运维工作,同时更智能化解决和维修系统平台的稳定。人工智能不仅仅在IT运维方面,往后各行各业都能够更好的体验人工智能所带的方便与快捷。
参考文献
[1]邹蕾,张先锋.人工智能及发展应用[J].信息网络安全,2012(02).
[2]国务院[R].新一代人工智能发展规划,2017.
[3]艾伦A.A.多诺万.Go程序设计语言.
[4]王辉,赵志军.基于TCP/IP网络探针实现技术[J].计算机与现代化,2003.