告警方法及装置与流程

文档序号:23628708发布日期:2021-01-12 10:42阅读:125来源:国知局
告警方法及装置与流程
本申请涉及通信
技术领域
,尤其涉及告警方法及装置。
背景技术
:openstack是一个为公共云、私有云及混合云的建设与管理提供软件的开源项目,也是目前最大的开源云平台。openstack包含多个项目,如telemetry项目。其中,telemetry项目包含ceilometer子项目和aodh子项目,ceilometer子项目主要负责telemetry项目中计量监控信息的采集、入库、查询等功能;aodh子项目主要负责告警服务,包括告警定义、告警评估、告警通知等功能。目前,telemetry项目提供三种告警方式,包括:阈值(threshold)告警、composite告警和gnocchi告警。这三种告警方式均需要针对每个资源分别创建告警规则,这在大规模资源场景下效率较低。因此,在openstack平台下,如何提高大规模资源场景下的告警效率是目前亟待解决的问题。技术实现要素:本申请的实施例提供告警方法及装置,以至少解决目前现有的告警方式在大规模资源场景下效率较低的问题。为达到上述目的,本申请的实施例采用如下技术方案:一方面,提供一种告警方法,应用于openstack平台,该方法包括:根据预先创建的告警规则中定义的资源过滤条件,获取符合该资源过滤条件的目标资源列表,该告警规则定义了该资源过滤条件、该目标资源的监控参量和该监控参量的告警阈值;对于该目标资源列表中的每一个目标资源,分别执行以下操作:获取该目标资源的监控参量的当前值;确定该当前值是否在该告警阈值范围内;若该当前值在该告警阈值范围内,则发送告警消息。在openstack平台的大规模资源场景下,对一组资源的同一个监控参量创建告警时,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警方法仅需创建一个告警规则即可进行告警监控,从而减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。在一种可能的设计中,该告警规则还定义了该监控参量的聚合函数和监控该目标资源的时间跨度;该获取该目标资源的监控参量的当前值,包括:根据该目标资源的标识、该监控参量和该时间跨度,调用该聚合函数查询统计数据库,得到该目标资源的监控参量的当前值,其中,该统计数据库中包括该目标资源的标识、该监控参量和该时间跨度的对应关系。在一种可能的设计中,该资源过滤条件包括:该目标资源的类型;或者,符合预设条件的该目标资源的类型。由于告警规则中定义的资源过滤条件可以为符合预设条件的目标资源的类型,因此,可以根据用户需求对一组特殊的资源创建告警规则进行监控,进一步提升了用户体验。在一种可能的设计中,该告警消息包括该目标资源的标识。在一种可能的设计中,该告警规则还定义了分组关键字;在该根据预先创建的告警规则中定义的资源过滤条件,获取符合该资源过滤条件的目标资源列表之后,还包括:根据该分组关键字,将该目标资源列表中的目标资源进行分组,获得至少一组目标资源。在一种可能的设计中,该告警消息还包括该目标资源所在分组的组标识。又一方面,本申请实施例提供一种告警装置,该装置应用于openstack平台,该告警装置包括:获取模块、确定模块和发送模块;该获取模块,用于根据预先创建的告警规则中定义的资源过滤条件,获取符合该资源过滤条件的目标资源列表,该告警规则定义了该资源过滤条件、该目标资源的监控参量和该监控参量的告警阈值;对于该目标资源列表中的每一个目标资源:该获取模块,还用于获取该目标资源的监控参量的当前值;该确定模块,用于确定该当前值是否在该告警阈值范围内;该发送模块,用于若该当前值在该告警阈值范围内,则向外部设备发送告警消息。在openstack平台的大规模资源场景下,对一组资源的同一个监控参量创建告警时,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警设备仅需创建一个告警规则即可进行告警监控,从而减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。在一种可能的设计中,该告警规则还定义了该监控参量的聚合函数和监控该目标资源的时间跨度;该获取模块,还用于取获该目标资源的监控参量的当前值,具体包括:根据该目标资源的标识、该监控参量和该时间跨度,调用该聚合函数查询统计数据库,得到该目标资源的监控参量的当前值,其中,该统计数据库中包括该目标资源的标识、该监控参量和该时间跨度的对应关系。在一种可能的设计中,该资源过滤条件包括:该目标资源的类型;或者,符合预设条件的该目标资源的类型。由于告警规则中定义的资源过滤条件可以为符合预设条件的目标资源的类型,因此,可以根据用户需求对一组特殊的资源创建告警规则进行监控,进一步提升了用户体验。在一种可能的设计中,该告警消息包括该目标资源的标识。在一种可能的设计中,该告警规则还定义了分组关键字,该告警装置还包括分组模块;该分组模块,用于在该获取模块根据预先创建的告警规则中定义的资源过滤条件,获取符合该资源过滤条件的目标资源列表之后,根据该分组关键字,将该目标资源列表中的目标资源进行分组,获得至少一组目标资源。在一种可能的设计中,该告警消息还包括该目标资源所在分组的组标识。又一方面,本申请的实施例提供一种告警设备,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该告警设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该告警设备执行如上述任意一项的告警方法。又一方面,本申请实施例提供了一种计算机存储介质,用于储存为上述任意一项的告警方法所用的计算机软件指令,其包含用于执行上述任意一项告警方法所设计的程序。又一方面,本申请实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述任意一项的告警方法中的流程。另外,上述告警装置实施例中任一种设计方式所带来的技术效果可参见上述告警方法实施例中不同设计方式所带来的技术效果,此处不再赘述。本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明图1为本申请实施例所应用的openstack的逻辑架构图;图2为本申请实施例提供的telemetry项目的架构示意图;图3为本申请实施例提供的一种计算机设备示意图;图4为本申请实施例提供的一种告警方法的流程示意图;图5为本申请实施例提供的一种告警装置的结构示意图;图6为本申请实施例提供的另一种告警装置的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。图1为本申请实施例所应用的openstack的逻辑架构图。如图1所示,openstack包括多个项目,这些项目构成一套完整功能的openstack云环境。其中最核心的项目包括:nova、cinder和neutron,这些项目构成了一个openstack云环境最基本的功能。当然,除了nova、cinder和neutron项目之外,还有一些非常重要的项目用来提供完善的openstack云平台能力,比如glance、keystone、horizon、swift、ironic、trove、sahara、heat以及ceilometer。其中,openstack中的这些项目均运行在虚拟机(英文:virtualmachines,缩写:vms)中。下面对openstack中各个项目的功能简要介绍如下:nova:提供了物理机资源的虚拟机化能力管理,以及虚拟机生命周期管理。cinder:提供了虚拟机的块存储设备管理的能力。neutron:提供了虚拟化网络资源的管理,包括网络、子网、端口以及虚拟专用网络(英文:virtualprivatenetwork,缩写:vpn)等高级服务。glance:提供了镜像管理服务,包括虚拟机所需的镜像以及快照等。keystone:提供了用户管理及认证服务。horizon:提供了openstack的仪表盘(网页(英文:web)界面)服务。swift:提供了对象存储服务。ironic:提供了裸机管理服务。trove:提供了“数据库即服务”的功能。sahara:提供了大数据服务。heat:提供了业务编排及软件配置服务。ceilometer项目:提供了监控计量服务。其中,图1中的ceilometer项目在openstackm版(openstack使用字母表的顺序来命名其版本)以及m版以后更名为telemetry项目。telemetry项目将openstackm版之前的ceilometer项目的功能拆分成两个部分:一个为ceilometer子项目,专门负责telemetry项目中计量监控信息采集、入库、查询等功能,例如采集openstack环境中虚拟机、卷、镜像等虚拟机相关资源以及物理主机的计量信息和状态信息;一个为aodh子项目,专门负责告警的定义、评估、告警通知等功能。图2为telemetry项目的架构示意图。如图2所示,telemetry项目包括:ceilometer子项目、数据库、应用程序编程接口(英文:applicationprogramminginterface,缩写:api)和aodh子项目。下面对telemetry项目中各个模块的功能简要介绍如下:ceilometer子项目:包括轮询代理(英文:pollingagents)服务、通知代理(英文:notificationagents)服务和采集服务(英文:collectors)。轮询代理:是运行在一套openstack的控制节点和所有计算节点上的资源信息采集代理。其中,各个管理服务运行的节点为控制节点,虚拟机运行的节点为计算节点。若运行在控制节点上,轮询代理负责通过openstack各模块的api来采集openstack的资源信息,例如调用glance的api来采集镜像大小的信息;若运行在计算节点上,轮询代理负责该节点上虚拟机的信息采集,例如采集该主机上面运行的虚拟机的中央处理器(英文:centralprocessingunit,缩写:cpu)使用率、内存使用率、磁盘读写速率等。通知代理:在openstack中,各服务会在处理一些虚拟化资源并且该资源状态发生变化的时候发出通知消息到通知总线(通知总线也称为消息队列)。通知代理负责接收openstack中其他组件发送的通知消息,同时也负责从通知总线接收轮询代理发送的消息并进行处理。采集器:通知代理在处理完消息后,将采集的消息继续发送到通知总线中,而采集器会监听通知总线,接收采集的消息,并将采集的消息格式化为一条条采样记录存储到数据库。api:包括ceilometer-api和aodh-api。其中,ceilometer-api提供了ceilometer子项目的api服务。主要的api包括:查询计量数据(英文:sample-list)的api、查询计量指标(英文:meter-list)的api、查询计量数据的统计结果(英文:statistic-list)的api、查询已经被采集过的资源对象列表(英文:resource-list)的api等。aodh-api提供了aodh子项目的api服务。数据库:用于存储ceilometer的采集器采集的数据以及经过api输入的数据。aodh子项目:包括aodh评估(英文:aodh-evaluater)服务和aodh通知(英文:aodh-notifier)服务。其中,本申请实施例提供的告警方法主要是通过aodh子项目来实现。本申请实施例中,将运行aodh子项目的装置称作告警装置,当然,运行aodh子项目的装置也可能是其他名称,本申请实施例对此不作具体限定。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,本文中的“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。“多个”是指两个或多于两个。如本申请所使用的术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。如图3所示,本申请实施例中的告警装置可以通过图3中的计算机设备(或系统)来实现。图3所示为本申请实施例提供的计算机设备示意图。计算机设备300包括至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。处理器301可以是一个通用中央处理器(英文:centralprocessingunit,缩写:cpu),微处理器,特定应用集成电路(英文:application-specificintegratedcircuit,缩写:asic),或一个或多个用于控制本申请方案程序执行的集成电路。通信总线302可包括一通路,在上述组件之间传送信息。通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(英文:radioaccessnetwork,缩写:ran),无线局域网(英文:wirelesslocalareanetworks,缩写:wlan)等。存储器303可以是只读存储器(英文:read-onlymemory,缩写:rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(英文:randomaccessmemory,缩写:ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(英文:electricallyerasableprogrammableread-onlymemory,缩写:eeprom)、只读光盘(英文:compactdiscread-onlymemory,缩写:cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。其中,存储器303用于存储执行本申请方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,从而实现本申请实施例中的告警方法。在具体实现中,作为一种实施例,处理器301可以包括一个或多个cpu,例如图3中的cpu0和cpu1。在具体实现中,作为一种实施例,计算机设备300可以包括多个处理器,例如图3中的处理器301和处理器308。这些处理器中的每一个可以是一个单核(英文:single-cpu)处理器,也可以是一个多核(英文:multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。在具体实现中,作为一种实施例,计算机设备300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(英文:liquidcrystaldisplay,缩写:lcd),发光二级管(英文:lightemittingdiode,缩写:led)显示设备,阴极射线管(英文:cathoderaytube,缩写:crt)显示设备,或投影仪(英文:projector)等。输入设备306和处理器301通信,可以以多种方式接受用户的输入。例如,输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。上述的计算机设备300可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备300可以是台式机、便携式电脑、网络服务器、掌上电脑(英文:personaldigitalassistant,缩写:pda)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图3中类似结构的设备。本申请实施例不限定计算机设备300的类型。如图4所示,为本申请实施例提供的一种告警方法的流程示意图,包括步骤s401-s402:s401、告警装置根据预先创建的告警规则中定义的资源过滤条件,获取符合该资源过滤条件的目标资源列表。其中,本申请实施例中,预先创建的告警规则定义了资源过滤条件、目标资源的监控参量和该监控参量的告警阈值。当然,本申请实施例中,预先创建的告警规则中还可以定义告警规则的级别、告警规则的告警状态、租户标识和用户标识等信息,本申请实施例对此不作具体限定。示例性的,目标资源的监控参量可以为虚拟机的cpu使用率,虚拟机的硬盘的使用率,虚拟机的磁盘读写速率,虚拟机的网络速率等,本申请实施例对此不作具体限定。s402、对于目标资源列表中的每一个目标资源,告警装置分别执行以下操作:t1:告警装置获取目标资源的监控参量的当前值。t2:告警装置确定目标资源的监控参量的当前值是否在告警阈值范围内。t3:若目标资源的监控参量的当前值在告警阈值范围内,则告警装置向外部设备发送告警消息。可选的,该告警消息中可以包括目标资源的标识,这样外部设备在接收到该告警消息之后,可以根据该目标资源的标识查询到发生告警的资源的位置,进而针对发生告警的资源进行处理。可选的,本申请实施例中,在告警装置确定目标资源的监控参量的当前值是否在告警阈值范围内之后,还可以向存储目标资源的监控参量的数据库发送更新消息,更新消息中携带目标资源的监控参量对应的告警状态以及目标资源的标识,以使得数据库根据更新消息中携带的告警状态更新数据库中存储的目标资源的监控参量对应的告警状态。其中,如果一个告警规则适用于资源列表中m个资源,其中,m为大于等于1的正整数,则需要更新m个资源的监控参量对应的告警状态,以便于外部设备根据更新后的告警状态查询到发生告警的资源的标识,进而根据发生告警的资源的标识确定发生告警的资源的位置,从而对发生告警的资源进行处理。其中,告警状态通常包括三种类型:数据不足,正常和告警。本申请实施例中,若目标资源的监控参量的当前值在告警阈值范围内,则对应的告警状态为“告警”;若目标资源的监控参量的当前值不在告警阈值范围内,则对应的告警状态为“正常”;若目标资源的监控参量的当前值缺失,无法判断是否在告警阈值范围内,则对应的告警状态为“数据不足”。在openstack平台的大规模资源场景下,对一组资源的同一个监控参量创建告警时,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警方法仅需创建一个告警规则即可进行告警监控,从而减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。进一步的,告警规则还可以定义目标资源的监控参量的聚合函数和监控目标资源的时间跨度,则告警装置获取目标资源的监控参量的当前值具体可以包括:告警装置根据目标资源的标识、目标资源的监控参量和时间跨度,调用目标资源的监控参量的聚合函数查询统计数据库,得到该目标资源的监控参量的当前值。其中,该统计数据库中包括目标资源的标识、目标资源的监控参量和时间跨度的对应关系。可选的,聚合函数可以为求平均值的函数、求最小值的函数、求最大值的函数、求方差的函数,本申请实施例对此不作具体限定。一种可能的实现方式中,资源过滤条件可以包括:目标资源的类型;或者,符合预设条件的目标资源的类型。例如,目标资源的类型可以为虚拟机、硬盘、服务器等。本申请实施例中,可以在资源过滤条件中直接定义目标资源的类型,也可以通过在资源过滤条件中定义与目标资源的类型相关的一些参数来确定目标资源的类型,比如,当目标资源类型为虚拟机时,资源过滤条件中可以定义虚拟机相关的一些参数,这些参数可以唯一确定该目标资源的类型为虚拟机;或者,当目标资源类型为硬盘时,资源过滤条件中可以定义硬盘相关的一些参数,这些参数可以唯一确定该目标资源的类型为硬盘;或者,当目标资源类型为服务器时,资源过滤条件中可以定义服务器相关的一些参数,这些参数可以唯一确定该目标资源的类型为服务器;本申请实施例对此不作具体限定。符合预设条件的目标资源的类型可以是用户添加“vip_vm”标签的一组虚拟机,等。其中,由于告警规则中定义的资源过滤条件可以为符合预设条件的目标资源的类型,因此,可以根据用户需求对一组特殊的资源创建告警规则进行监控,进一步提升了用户体验。可选的,当在openstack平台中新增加一个虚拟机时,用户可以为新增加的虚拟机也添加“vip_vm”标签,这样可以利用数据库中存储的针对携带“vip_vm”标签的虚拟机的同一监控参量进行告警监控的一个告警规则,对新增加的虚拟机的同一监控参量进行告警监控,不再需要按照现有的告警方法针对某一监控参量重新创建一个告警规则,减少了创建多余的告警规则产生的冗余,提高了告警的效率,进而降低了openstack平台的管理成本。进一步的,该告警规则还可以定义分组关键字。这样,在告警装置根据预先创建的告警规则中定义的资源过滤条件,获取符合该资源过滤条件的目标资源列表(步骤s401)之后,还可以包括:告警装置根据分组关键字,将目标资源列表中的目标资源进行分组,获得至少一组目标资源。比如,本申请实施例可以以资源的唯一标识作为分组关键字对目标资源列表中的目标资源进行分组,得到至少一组目标资源,其中,每一组目标资源中包含一个目标资源。资源的唯一标识例如可以是虚拟机通用唯一识别码(英文:universallyuniqueidentifier,缩写:uuid),磁盘的uuid等。当然,本申请实施例中,分组关键字也可以为其他,分组后得到的至少一组目标资源中的某一组目标资源中也可以包含多个目标资源,本申请实施例对此不作具体限定。可选的,告警装置向外部设备发送的告警消息还可以包括目标资源所在分组的组标识。这样外部设备在接收到该告警消息之后,可以根据该目标资源所在分组的组标识快速查询到发生告警的资源所在分组的位置,进而可以根据发生告警的资源的标识确定发生告警的资源的位置,从而针对发生告警的资源进行处理。需要说明的是,本申请实施例中的告警方法也可以适用于现有的composite方式,例如将一组资源中的多个监控参量的多个阈值范围,通过“和(and)”“或(or)”等结合定义一个告警规则对一组资源进行监控,具体可参考上述方法实施例的描述,本申请实施例在此不再赘述。综上,在openstack平台的大规模资源场景下,对一组资源的同一个监控参量创建告警时,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警方法仅需创建一个告警规则即可进行告警监控,从而减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。示例性的,假设系统a包括5个虚拟机和5个硬盘,每个虚拟机中包括1个cpu。表1为系统a的5个虚拟机在时刻1的cpu的使用率,表2为系统a的5个硬盘在时刻1的使用率。表1表2资源列表监控参量系统a的硬盘1硬盘1的使用率67%系统a的硬盘2硬盘2的使用率54%系统a的硬盘3硬盘3的使用率85%系统a的硬盘4硬盘4的使用率49%系统a的硬盘5硬盘5的使用率23%假设用户需要对系统a的两组资源进行监控:1、监测系统a的5个虚拟机在某一时刻的cpu的使用率是否大于等于80%,如果大于等于80%,触发告警,并向外部设备发送一个请求释放资源的消息。2、监测系统a的5个硬盘在某一时刻的硬盘的使用率是否大于等于80%,如果大于等于80%,触发告警。按照现有的创建告警规则的方法,用户需要对系统a中两组资源创建10条告警规则,但是10告警规则中前5条告警规则中除了uuid不同,其他都相同,后5条告警规则中除了uuid不同,其他的都相同。以监测系统a的5个虚拟机的cpu的使用率为例,根据上述实施例提供的告警方法可以对该组虚拟机进行如下处理:首先,告警装置根据用户的需求,创建一个告警规则,该告警规则具体可以为:系统a的虚拟机在某一时刻的cpu使用率大于等于80%则触发告警,触发告警后向外部设备发送请求释放资源的消息。其中,该告警规则中定义的资源过滤条件为系统a的虚拟机、目标资源的监控参量为虚拟机的cpu的使用率、目标资源的监控参量的阈值为大于等于80%,触发告警后的执行动作为向外部设备发送请求释放资源的消息。需要说明的是,本申请实施例中,告警装置在创建告警规则时,通常需要校验定义的各个参数是否正确,正确则创建告警规则并存入数据库中。需要说明的是,本申请实施例中的告警规则可以定义触发告警后执行的动作,也可不定义触发告警后执行的动作,本申请实施例对此不作具体限定。其次,告警装置根据预先创建的告警规则中定义的资源过滤条件“系统a的虚拟机”,获取符合资源过滤条件的目标资源列表为表1中的第一列,包括系统a的5个虚拟机。再次,告警装置对于符合资源过滤条件的目标资源列表中的5个虚拟机,分别执行以下操作:对于系统a的虚拟机1:首先,告警装置获取虚拟机1的cpu1的使用率的当前值,由表一可以看出,cpu1的使用率在时刻1为40%。其次,告警装置确定cpu1的使用率的当前值是否大于等于80%,如果大于等于80%,则触发告警。由于40%小于80%,因此cpu1的使用率的当前值不在告警阈值范围内,因此可以不用发送告警消息。可选的,告警装置可以向存储目标资源的监控参量的数据库发送更新消息,更新消息中携带虚拟机1的cpu1的使用率的告警状态为“正常”以及虚拟机1的标识,以使得数据库根据更新消息中携带的告警状态为“正常”来更新数据库中存储的虚拟机1的cpu1的使用率告警状态对应的告警状态为“正常”。对于系统a的虚拟机2至虚拟机4:由表一可以看出,虚拟机2的cpu2的使用率、虚拟机3的cpu3的使用率和虚拟机4的cpu4的使用率在时刻1都不在告警阈值范围内,因此均可以参照上述对虚拟机1的处理方式进行处理,本申请实施例在此不再赘述。对于系统a的虚拟机5:首先,警装置获取虚拟机5的cpu5的使用率的当前值,由表一可以看出,cpu5的使用率在时刻1为81%。其次,告警装置确定cpu5的使用率的当前值是否大于等于80%,如果大于等于80%,则触发告警。由于81%大于80%,因此cpu5的使用率在告警的范围,因此告警装置向外部设备发送告警消息。可选的,告警装置可以向存储目标资源的监控参量的数据库发送更新消息,更新消息中携带虚拟机5的cpu5的使用率的告警状态为“告警”以及虚拟机5的标识,以使得数据库根据更新消息中携带的告警状态为“告警”来更新数据库中存储的虚拟机5的cpu5的使用率告警状态对应的告警状态为“告警”。由于告警规则中还定义了告警触发告警后向外部设备发送请求释放的消息,因此,当告警装置向外部装置发送告警消息之后,还可以向外部设备发送请求释放资源的消息。可选的,告警装置向外部设备发送的告警消息中可以携带系统a的虚拟机5的标识,以用于指示当前是系统a的虚拟机5发出的告警。类似的,当用户需要监测系统a的5个硬盘的使用率时,告警装置可以根据用户的需求,创建一个告警规则。该告警规则具体可以为:系统a的硬盘在某一时刻的硬盘使用率大于等于80%则触发告警。其中,该告警规则中定义的资源过滤条件为系统a的硬盘、目标资源的监控参量为硬盘的使用率、目标资源的监控参量的阈值为大于等于80%。基于该告警规则监测系统a的5个硬盘的使用率的方法可参考上述监控cpu使用率的方法,本申请实施例在此不再赘述。由上面的示例可以看出,在openstack平台的大规模资源场景下,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警方法仅需创建一个告警规则即可进行告警监控,从而,减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。上述主要从告警方法的角度对本申请提供的方案进行介绍。可以理解的是,上述告警方法中的告警装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各实例的模块及方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。本申请实施例可以根据上述方法示例对告警装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉及的告警装置的一种可能的结构示意图,该告警装置500包括:获取模块501,确定模块502和发送模块503。其中,获取模块501用于支持告警装置500执行图4中的步骤s401,步骤s402中的t1;确定模块502用于支持告警装置500执行图4中步骤s402中的t2;发送模块503用于支持告警装置500执行图4中步骤s402中的t3。可选的,告警规则还定义了目标资源的监控参量的聚合函数和监控该目标资源的时间跨度。获取模块501获取目标资源的监控参量的当前值,具体可以包括:根据目标资源的标识、目标资源的监控参量和监控该目标资源的时间跨度,调用目标资源的监控参量的聚合函数查询统计数据库,得到目标资源的监控参量的当前值,其中,统计数据库中包括目标资源的标识、目标资源的监控参量和监控该目标资源的时间跨度的对应关系。可选的,告警规则还定义了分组关键字。如图5所示,该告警装置500还可以包括分组模块504。分组模块504用于在获取模块501根据预先创建的告警规则中定义的资源过滤条件,获取符合资源过滤条件的目标资源列表之后,根据分组关键字,将符合资源过滤条件的目标资源列表中的目标资源进行分组,获得至少一组目标资源。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在openstack平台的大规模资源场景下,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警方法仅需创建一个告警规则即可进行告警监控,从而,减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。在采用集成单元的情况下,图6示出了上述实施例中所涉及的告警装置的一种可能的结构示意图,该告警装置600包括:处理单元601和通信单元602。其中,处理单元601用于支持告警装置600执行图4中的步骤s401、s402中的t1和t2;通信单元602用于支持告警装置600执行图4中的步骤s402中的t3。可选的,告警规则还定义了目标资源的监控参量的聚合函数和监控目标资源的时间跨度。处理单元601还用于根据目标资源的标识、目标资源的监控参量和监控目标资源的时间跨度,调用目标资源的监控参量的聚合函数查询统计数据库,得到目标资源的监控参量的当前值,其中,统计数据库中包括目标资源的标识、目标资源的监控参量和监控目标资源的时间跨度的对应关系。可选的,告警规则还定义了分组关键字。处理单元601还用于在根据预先创建的告警规则中定义的资源过滤条件,获取符合资源过滤条件的目标资源列表之后,根据分组关键字,将符合资源过滤条件的目标资源列表中的目标资源进行分组,获得至少一组目标资源。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在openstack平台的大规模资源场景下,相对于现有的需要为一组资源中的每一个资源都创建告警规则的方法,本申请提供的告警装置仅需创建一个告警规则即可进行告警监控,从而,减少了创建大量告警规则产生的冗余,提高了大规模场景下的告警效率,进而降低了openstack平台的管理成本。本申请实施例还提供了一种计算机存储介质,用于储存为上述告警装置所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行配置的程序,可以实现告警方法。本申请实施例还提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述方法实施例的流程。另外,上述告警装置实施例中任一种设计方式所带来的技术效果可参见上述告警方法实施例中不同设计方式所带来的技术效果,此处不再赘述。尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(英文:comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过internet或其它有线或无线电信系统。本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1