本发明涉及运维管理技术领域,具体涉及一种自动化运维平台的故障根源分析定位系统及分析方法。
背景技术
随着各种业务对it的依赖性渐重以及云计算技术的普及,企业平均的it基础架构的规模正在不断扩张,有些web2.0企业可能会需要在两个星期内增加上千台服务器,因此对运维而言,通过手动来一个一个搭建的方法不仅麻烦、效率低下,而且非常不利于维护和扩展,即使是在传统的企业当中,日常的备份、服务器状态监控和日志,通过手动的方式来进行的效率也很低,是一种人力的浪费,因此,自动化早已是每个运维都必须掌握的看家本领。在不同的企业中,自动化的规模、需求与实现方式都各不相同,因此在技术细节层面,运维之间很难将别的企业的方法整个套用过来。然而在很多情况下,自动化的思路是有共通之处的。
目前市场上的自动化运维软件有很多,如ibm的tivoli产品、bmc的bladelogic产品、hp的openview产品、ansible的ansible系统等,这些产品的架构类似,根据面向对象的不同使用不同功能的产品,包括有服务器的、网络的、存储的、应用的自动化产品,其中运维自动化一般包括三个阶段:1、纯手工阶段:手工操作重复地进行软件部署和运维;2、脚本阶段:通过编写脚本、方便地进行软件部署和运维;3、工具阶段:借助第三方工具高效、方便地进行软件部署和运维。
监控模块是自动化运维软件中的一个非常重要的模块,系统出现故障后必然会伴随事件的产生,运维人员看到故障后有产生大量的疑问:是不是服务器宕机,有没有影响到业务系统,什么情况引起的故障等等。目前市场上大多数商业/开源自动化运维软件的故障判断依据都是根据同一种告警类型,如服务器告警、网络告警、机房告警、应用告警等,从而无法真正的定位到故障发生的根源、故障对系统的影响程度。这不仅增加了企业运维人员的工作量,延长了系统故障的解决时间,还会给企业带来经济上的损失。
技术实现要素:
针对现有技术中的不足,本申请提供一种自动化运维平台的故障根源分析定位系统,提升企业运维人员的工作效率,减少系统故障处理的时间,同时也提供对应该故障根源分析定位系统的故障根源分析方法,其技术方案如下:
一种自动化运维平台的故障根源分析定位系统,包括:
性能采集模块,用于负责管理对象的性能采集及事件采集,并将采集的数据发送至数据处理模块;
数据处理模块,用于负责对采集到的数据进行分类汇总,数据处理完成后发送给数据存储模块,同时将最新的数据放入数据缓存模块中;
数据存储模块,用于接收并存储数据处理模块发来的数据至数据库中;
数据清洗模块,作用于数据存储模块,通过数据存储的配置对数据库中的数据进行包括清洗、裁剪的工作;
策略管理模块,包括事件关联模块,用于配置策略,根据不同的对象进行分类创建,同时配置策略与管理对象的关联关系,配置的策略存放到配置库中;
策略判断模块,用于缓存策略库中的策略,当新的数据采集成功后,策略判断模块会判断新采集的数据是否达到策略的阈值,达到阈值的数据会生成一条事件并发送给事件管理模块;
事件定位模块,依靠事件信息直接的相互关联性进行事件根源定位,并产生新的数据发送给事件管理模块,同时将分析结果存放到知识库中;
事件管理模块,用于负责对产生的事件进行包括分析、内容丰富的处理;
配置管理模块,负责对系统进行自动化规则的关联,关联的规则进行数据存放;
自动化处理模块,用于读取配置管理模块中配置的策略进行自动化处理,同时结合定时任务模块中配置的定时任务策略进行关联处理;
系统管理模块,用于负责系统的管理;
定时任务模块,用于负责定时任务的配置;
监控展现模块,用于负责对管理对象进行图表展现,包括管理对象的数据、事件状态;
报表展现模块,用于负责对管理对象的数据进行报表提供。
进一步地,所述性能采集模块包括代理采集模块和第三方集成模块。
进一步地,所述事件管理模块包括事件分析模块、事件丰富模块和事件处理模块;
事件分析模块,基于系统内置的分析规则对事件进行分析处理;
事件丰富模块,用于对原始的事件进行内容丰富;
事件处理模块,负责对事件进行处理,包括进行删除、压缩、降级、通知。
进一步地,所述系统管理模块包括用户管理模块、权限管理模块、日志管理模块和通知管理模块;
用户管理模块,负责系统用户管理,包括用户的创建、删除、修改、禁止功能;
权限管理模块,负责对用户的操作权限进行控制,其中用户包括管理员、普通用户、操作员、来宾;
日志管理模块,负责系统的日志配置;
通知管理模块,负责系统的消息通知。
一种自动化运维平台的故障根源分析方法,包括以下步骤:
s1、新的事件接入进来后,判断该事件是否是一个故障,如果该事件不是一个故障则系统不做任何处理直接结束,否则进行步骤s2;
s2、故障产生后,事件关联模块立即启用,同时会向设备信息库发出指令进行事件的信息丰富,事件丰富的规则依据事件的类型、级别标识进行,信息丰富成功后会把丰富结果反馈给事件关联模块,并把数据发送到事件分析模块;
s3、事件分析模块接收到事件关联模块传送过来的数据,开始读取kpi库的信息,根据kpi的重要性、分类标识进行关联,关联成功后把结果反馈给事件分析模块;
s4、事件分析模块接收到关联成功后更新的数据,执行2个步骤,步骤1:发送指令给通知管理模块;步骤2:发送数据给事件处理模块;
通知管理模块接收到事件分析模块的指令后,根据事件丰富到的管理员信息调用相关的通知接口开始信息发送;
事件处理模块接收到事件分析模块的数据开始进行事件的处理并最终发出执行命令,事件的处理分为2种方式,1、自动化处理;2、人工处理;
s6、执行脚本模块接收到执行命令开始工作,执行的过程中实时反馈执行的结果;
s7、结果反馈模块接收到相关的信息后,向通知管理模块申请调用消息通知并把执行的结果通知给相关管理员,消息通知方式包括短信、邮件、微信和app。
进一步地,步骤s4中事件处理的2种方式具体为:
自动化处理:自动化处理模块接收到事件处理模块发出的处理指令后,请求事件处理模块调用知识库中处理建议,事件处理模块要求知识库中搜索出符合该事件的处理步骤(通过唯一标识进行判断),知识库会立即给出处理建议,自动化处理模块接收到知识库给出的处理建议,开始调用salt接口进行远程操作,salt接口进行操作之前向用户管理模块申请获取操作对象服务器的用户名及密码信息,salt接口拿到用户名/密码信息后,开始自动化操作,根据知识库给出的处理建议,向服务器远程发送执行脚本的执行命令;
人工处理:管理员登陆到相关的服务器,根据知识库中给出的处理建议进行人工处理,最终反馈出执行结果。
依据上述技术方案,本发明运用大数据的理念及智能学习的方法,建立kpi关联模型,同时与企业的cmdb库相结合,得到每个对象的ci之间的关联关系,达到降维的目的,最后利用这些关系,通过时间相关性的分析算法,加上链路关系权重的计算,最终帮助企业客户定位到事件的根源,提升企业运维人员的工作效率,减少系统故障处理的时间。
附图说明
下面通过具体实施方式结合附图对本发明作进一步详细说明。
图1为本发明的功能框图;
图2为本发明的故障分析流程图;
图3为本发明中的故障信息丰富流程图。
其中,1、性能采集模块;100、代理采集模块;101、第三方集成模块;2、数据处理模块;200、数据缓存模块;3、数据存储模块;4、数据清洗模块;5、策略管理模块;500、事件关联模块;6、策略判断模块;7、事件定位模块;8、事件管理模块;800、事件分析模块;801、事件丰富模块;802、事件处理模块;9、配置管理模块;10、自动化处理模块;11、系统管理模块;110、用户管理模块;111、权限管理模块;112、日志管理模块;113、通知管理模块;12、定时任务模块;13、监控展现模块;14、报表展现模块。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
如图1所示,一种自动化运维平台的故障根源分析定位系统,包括:
性能采集模块1,用于负责管理对象的性能采集及事件采集,并将采集的数据发送至数据处理模块2;
数据处理模块2,用于负责对采集到的数据进行分类汇总,数据处理完成后发送给数据存储模块3,同时将最新的数据放入数据缓存模块200中;
数据存储模块3,用于接收并存储数据处理模块2发来的数据至数据库中;通过配置对数据进行管理,如配置数据保存的时长,数据裁剪的规则等。
数据清洗模块4,作用于数据存储模块3,通过数据存储的配置对数据库中的数据进行包括清洗、裁剪的工作;
策略管理模块5,包括事件关联模块500,用于配置策略,根据不同的对象进行分类创建,同时配置策略与管理对象的关联关系,配置的策略存放到配置库中;其中事件关联模块500是根据采集到不同对象的事件进行事件丰富、事件关联规则配置,如服务器事件关联、网络事件关联、应用事件关联等。
策略判断模块6,用于缓存策略库中的策略,当新的数据采集成功后,策略判断模块6会判断新采集的数据是否达到策略的阈值,达到阈值的数据会生成一条事件并发送给事件管理模块8;
事件定位模块7,依靠事件信息直接的相互关联性进行事件根源定位,并产生新的数据发送给事件管理模块8,同时将分析结果存放到知识库中;
事件管理模块8,用于负责对产生的事件进行包括分析、内容丰富的处理;所有产生的事件都会发送给事件管理模块8进行事件处理。
配置管理模块9,负责对系统进行自动化规则的关联,关联的规则进行数据存放;如对事件进行时段控制、维护期、事件通知规则等配置,这些配置的规则会进行数据存放。
自动化处理模块10,用于读取配置管理模块9中配置的策略进行自动化处理,同时结合定时任务模块12中配置的定时任务策略进行关联处理;
系统管理模块11,用于负责系统的管理;其中包括有:用户管理、权限管理、日志管理、通知管理。
定时任务模块12,用于负责定时任务的配置;如周报、月报的发送时间,自动化脚本运行的时间等。
监控展现模块13,用于负责对管理对象进行图表展现,包括管理对象的数据、事件状态,可以通过拖拉方式进行展现的配置。
报表展现模块14,用于负责对管理对象的数据进行报表提供,有日报、周报、月报、年报、性能报表、同比报表、环比报表、事件报表等。报表支持自动生成、自动发送邮件,支持excel、pdf、png图片等格式。
其中,所述性能采集模块1包括代理采集模块100和第三方集成模块101。代理采集主要分成2种方式:有代理和无代理方式,第三方集成则是通过各种协议或接口进行集成,如snmp/trap、syslog、jdbc、webservice等。
另外所述事件管理模块8包括事件分析模块800、事件丰富模块801和事件处理模块802;
事件分析模块800,基于系统内置的分析规则对事件进行分析处理;
事件丰富模块801,用于对原始的事件进行内容丰富,如所属的系统、地域、服务器ip等信息;
事件处理模块802,负责对事件进行处理,包括进行删除、压缩、降级、通知。
进一步地,所述系统管理模块11包括用户管理模块110、权限管理模块111、日志管理模块112和通知管理模块113;
用户管理模块110,负责系统用户管理,包括用户的创建、删除、修改、禁止功能;
权限管理模块111,负责对用户的操作权限进行控制,其中用户包括管理员、普通用户、操作员、来宾;
日志管理模块112,负责系统的日志配置;
通知管理模块113,负责系统的消息通知。
如图2所示,一种自动化运维平台的故障根源分析方法,包括以下步骤:
s1、新的事件接入进来后,判断该事件是否是一个故障,如果该事件不是一个故障则系统不做任何处理直接结束,否则进行步骤s2;
s2、故障产生后,事件关联模块500立即启用,同时会向设备信息库发出指令进行事件的信息丰富,事件丰富的规则依据事件的类型、级别标识进行,信息丰富成功后会把丰富结果反馈给事件关联模块500,并把数据发送到事件分析模块800;
其中如图3所示为故障信息丰富流程,系统初建时,根据客户相关的需要会创建对应的知识库。根据不同的对象进行分类存放,如服务器(包括操作系统、数据库、中间件等)、网络(交换机、路由器、防火墙、线路等)、业务信息(应用系统名称、相关管理员、地域等)。
故障发生后,根据事件的分类及来源进行信息丰富。如网络的事件则关联网络的信息库。事件丰富完成后会更新事件内容,最终同步到知识库中存放下来。
s3、事件分析模块800接收到事件关联模块500传送过来的数据,开始读取kpi库的信息,根据kpi的重要性、分类标识进行关联,关联成功后把结果反馈给事件分析模块800;
s4、事件分析模块800接收到关联成功后更新的数据,执行2个步骤,步骤1:发送指令给通知管理模块113;步骤2:发送数据给事件处理模块802;
通知管理模块113接收到事件分析模块800的指令后,根据事件丰富到的管理员信息调用相关的通知接口开始信息发送;
事件处理模块802接收到事件分析模块800的数据开始进行事件的处理并最终发出执行命令,事件的处理分为2种方式,1、自动化处理;2、人工处理;
s6、执行脚本模块接收到执行命令开始工作,执行的过程中实时反馈执行的结果;
s7、结果反馈模块接收到相关的信息后,向通知管理模块113申请调用消息通知并把执行的结果通知给相关管理员,消息通知方式包括短信、邮件、微信和app。
进一步地,步骤s4中事件处理的2种方式具体为:
自动化处理:自动化处理模块10接收到事件处理模块802发出的处理指令后,请求事件处理模块802调用知识库中处理建议,事件处理模块802要求知识库中搜索出符合该事件的处理步骤(通过唯一标识进行判断),知识库会立即给出处理建议,自动化处理模块10接收到知识库给出的处理建议,开始调用salt接口进行远程操作,salt接口进行操作之前向用户管理模块110申请获取操作对象服务器的用户名及密码信息,salt接口拿到用户名/密码信息后,开始自动化操作,根据知识库给出的处理建议,向服务器远程发送执行脚本的执行命令;
人工处理:管理员登陆到相关的服务器,根据知识库中给出的处理建议进行人工处理,最终反馈出执行结果。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。