本发明涉及云计算技术领域,尤其云计算技术领域中的一种云计算告警方法及装置。
背景技术
在云计算时代,云计算集群需要监控大量软硬件信息和大量的监控项。
当一个故障产生告警时,会以反应链的形式导致另外的故障,从而产生无数告警,从而掩盖真正的故障。如何实时的聚类告警,提高告警质量是大规模云计算集群待解决的问题。
技术实现要素:
本发明要解决的技术问题是提出一种云计算告警方法和装置,提高了告警效率。
为了解决上述技术问题,本发明提供了一种云计算告警方法,包括:
周期性获取一个或多个资源类的一个或多个监控项的告警项,其中,所述资源类包括mysql、oracle、主机、虚拟机,所述监控项是指预先设置的监控指标;
对于各资源类,分别根据该资源类的监控项的告警项,确定该资源类的资源状态;
当任一个资源类的资源状态满足预定条件后,发出告警。
进一步地,上述方法还具有如下特点:
所述周期性获取一个或多个资源类的一个或多个监控项的告警项包括:
每当到达预设的监控定时长度后,获取一个或多个资源类的一个或多个监控项的告警项,并将所述一个或多个资源类的一个或多个监控项的告警项存储到数据库。
进一步地,上述方法还具有如下特点:
所述告警项的状态包括:严重状态、中度状态和正常状态;
所述确定该资源类的资源状态包括:
若该资源类的各告警项中至少一个告警项存在严重状态,则该资源类的资源状态为严重;若该资源类的各告警项不存在严重状态,但存在中度状态,则该资源类的资源状态为中度;若该资源类的各告警项不存在严重状态和中度状态,则该资源类的所述资源状态为正常。
进一步地,上述方法还具有如下特点:
所述根据该资源类的监控项的告警项,确定该资源类的资源状态前还包括:
对于各资源类,分别比较本次存储的监控项的告警项与上一次存储的监控项的告警项;当所述监控项的告警项发生变化时,对该资源类执行根据该资源类的监控项的告警项,确定该资源类的资源状态的操作执行。
进一步地,上述方法还具有如下特点:
当任一个资源类的资源状态满足预定条件后,发出告警,包括:
对于各资源类,分别比较该资源类的本次资源状态与上一次的资源状态,若该资源类的资源状态发生变化,则发出告警。
为了解决上述问题,本发明还提供了一种云计算告警装置,包括:存储器和处理器。
所述存储器,用于保存用于云计算告警的程序;
所述处理器,用于读取执行所述用于云计算告警的程序,执行如下操作:
周期性获取一个或多个资源类的一个或多个监控项的告警项,其中,所述资源类包括mysql、oracle、主机、虚拟机,所述监控项是指预先设置的监控指标;
对于各资源类,分别根据该资源类的监控项的告警项,确定该资源类的资源状态;
当任一个资源类的资源状态满足预定条件后,发出告警。
进一步地,上述装置还具有如下特点:
所述处理器,读取执行所述用于云计算告警的程序,还执行如下操作:
所述周期性获取一个或多个资源类的一个或多个监控项的告警项包括:
每当到达预设的监控定时长度后,获取一个或多个资源类的一个或多个监控项的告警项,并将所述一个或多个资源类的一个或多个监控项的告警项存储到数据库。
进一步地,上述装置还具有如下特点:
所述告警项的状态包括:严重状态、中度状态和正常状态;
所述处理器,读取执行所述用于云计算告警的程序,还执行如下操作:
所述确定该资源类的资源状态包括:
若该资源类的各告警项中至少一个告警项存在严重状态,则该资源类的资源状态为严重;若该资源类的各告警项不存在严重状态,但存在中度状态,则该资源类的资源状态为中度;若该资源类的各告警项不存在严重状态和中度状态,则该资源类的所述资源状态为正常。
进一步地,上述装置还具有如下特点:
所述处理器,读取执行所述用于云计算告警的程序,还执行如下操作:
所述根据该资源类的监控项的告警项,确定该资源类的资源状态前还包括:
对于各资源类,分别比较本次存储的监控项的告警项与上一次存储的监控项的告警项;当所述监控项的告警项发生变化时,对该资源类执行根据该资源类的监控项的告警项,确定该资源类的资源状态的操作执行。
进一步地,上述装置还具有如下特点:
所述处理器,读取执行所述用于云计算告警的程序,还执行如下操作:
当任一个资源类的资源状态满足预定条件后,发出告警,包括:
对于各资源类,分别比较该资源类的本次资源状态与上一次的资源状态,若该资源类的资源状态发生变化,则发出告警。
综上,本发明提供一种云计算告警方法和装置,提高了告警效率。
附图说明
图1为本发明实施例的云计算告警方法的流程图。
图2为本发明实施例的应用示例的流程图。
图3为本发明实施例的云计算告警装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实施例的云计算告警方法的流程图,包括下面的步骤:
s10、周期性获取一个或多个资源类的一个或多个监控项的告警项。
其中,所述资源类包括mysql、oracle、主机、虚拟机,所述监控项是指预先设置的监控指标。
s02、对于各资源类,分别根据该资源类的监控项的告警项,确定该资源类的资源状态。
s03、当任一个资源类的资源状态满足预定条件后,发出告警。
可选地,上述步骤还包括:
所述告警项的状态包括:严重状态、中度状态和正常状态;
所述确定该资源类的资源状态包括:
若该资源类的各告警项中至少一个告警项存在严重状态,则该资源类的资源状态为严重;若该资源类的各告警项不存在严重状态,但存在中度状态,则该资源类的资源状态为中度;若该资源类的各告警项不存在严重状态和中度状态,则该资源类的所述资源状态为正常。
可选地,所述根据该资源类的监控项的告警项,确定该资源类的资源状态前还包括:
对于各资源类,分别比较本次存储的监控项的告警项与上一次存储的监控项的告警项;当所述监控项的告警项发生变化时,对该资源类执行根据该资源类的监控项的告警项,确定该资源类的资源状态的操作执行。
可选地,当任一个资源类的资源状态满足预定条件后,发出告警,包括:
对于各资源类,分别比较该资源类的本次资源状态与上一次的资源状态,若该资源类的资源状态发生变化,则发出告警。
通过将若干个原始告警聚合为资源类告警,实现把若干个原始告警聚合成超级告警,并且对超级告警的可信度、紧急程度进行评估,提高了告警效率和质量。
图2为本发明实施例的应用示例的流程图,包括下面步骤:
步骤201:将资源大类表、资源小类表和资源规则表关联后得到监控项维度资源,并将其同步到内存数据库(例如redis)。其中,比如资源项为主机1(即上文中的资源类),监控项维度例如是:主机1包括cpu使用率(即上文中的监控项);内存使用率(即上文中的监控项);网卡速度(即上文中的监控项)等。
部署时初始化资源大类表、资源小类表和资源规则表。
资源大类包括例如数据库、服务、开源云管理平台openstack等,资源小类是指将资源大类中的某一类再进行分类得到的资源类型,比如数据库可以包括mysql、oracle、postgresql等。如表1所示,资源大类表包括资源大类标识id、资源大类名称等。如表2所示,资源小类表包括资源小类标识id、资源大类id、资源小类名称等。
如表3所示,资源规则表包括资源大类id、资源小类id、数据存储表、资源key等。其中数据存储表中存储了监控数据的表的名称,对应于数据库(例如infludb)中的表名。资源key表示例如infludb中哪个字段能唯一确认一个资源。上述监控数据通过监控程序采集得到的,包括主机名、cpu利用率、cpu负载、cpu系统使用率、cpu用户使用率等。
表3资源规则表
资源自动发现程序定时运行,根据监控数据、资源大小类表和资源规则表发现新资源,将所发现的新资源插入到资源表。资源表为资源小类实例表。如资源小类为mysql,资源小类的实例是mysql_1和mysql_2。
步骤202:对于监控项维度资源中的资源项(即上文中的资源类),通过监控软件对监控项的监控获取某资源项的告警项,将告警项信息写入内存数据库,当该资源项的告警项信息发生变化时,则跳转到步骤203,否则,跳转到步骤204。
步骤203:计算该资源项的资源状态。
其中,计算该资源项的资源状态包括:根据告警项严重程度确定资源告警,若该资源项的告警项存在严重状态,则资源状态为严重,若该资源项的告警项不存在严重状态,但存在中度状态,则资源状态为中度,若该资源项的告警项不存在严重和中度状态,则资源为正常。
步骤204:结束。
步骤205:若该资源项的资源状态与上一状态比较发生变化,则跳转到步骤206。否则,跳转到步骤204。
比如,资源状态从中度到严重,或由中度到正常等,将告警信息加入通知发送队列,通知发送队列中的通知会被定时扫描并发送。
步骤206:发送通知。
将告警通知加入到通知发送队列,定期扫描并发送所述通知发送队列。
图3为本发明实施例的云计算告警装置的示意图。本发明的装置包括存储器和处理器;
所述存储器,用于保存用于云计算告警的程序;
所述处理器,用于读取执行所述用于云计算告警的程序,执行如下操作:
周期性获取一个或多个资源类的一个或多个监控项的告警项,其中,所述资源类包括mysql、oracle、主机、虚拟机,所述监控项是指预先设置的监控指标;
对于各资源类,分别根据该资源类的监控项的告警项,确定该资源类的资源状态;
当任一个资源类的资源状态满足预定条件后,发出告警。
其中,所述周期性获取一个或多个资源类的一个或多个监控项的告警项包括:
每当到达预设的监控定时长度后,获取一个或多个资源类的一个或多个监控项的告警项,并将所述一个或多个资源类的一个或多个监控项的告警项存储到数据库。
所述告警项的状态包括:严重状态、中度状态和正常状态;
所述处理器,读取执行所述用于云计算告警的程序,还执行如下操作:
所述确定该资源类的资源状态包括:
若该资源类的各告警项中至少一个告警项存在严重状态,则该资源类的资源状态为严重;若该资源类的各告警项不存在严重状态,但存在中度状态,则该资源类的资源状态为中度;若该资源类的各告警项不存在严重状态和中度状态,则该资源类的所述资源状态为正常。
所述根据该资源类的监控项的告警项,确定该资源类的资源状态前还包括:
对于各资源类,分别比较本次存储的监控项的告警项与上一次存储的监控项的告警项;当所述监控项的告警项发生变化时,对该资源类执行根据该资源类的监控项的告警项,确定该资源类的资源状态的操作执行。
当任一个资源类的资源状态满足预定条件后,发出告警,包括:
对于各资源类,分别比较该资源类的本次资源状态与上一次的资源状态,若该资源类的资源状态发生变化,则发出告警。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。