一种BMC健康状态监控方法、系统、终端及存储介质与流程

文档序号:19786568发布日期:2020-01-24 13:39阅读:316来源:国知局
一种BMC健康状态监控方法、系统、终端及存储介质与流程

本发明涉及服务器测试技术领域,具体涉及一种bmc健康状态监控方法、系统、终端及存储介质。



背景技术:

随着信息技术的飞速发展以及云计算和物联网的落地,用户对服务器的可靠性和信息处理能力有了更高的要求。与传统服务器相比,基于purley平台的新一代服务器在计算性能和可靠性上与传统服务器相比具有很大的优势,并在对实时性、可靠性和可用性要求苛刻的领域中应用越来越广泛,而bmc作为服务器管理模块在服务器整个系统中担当着十分重要的角色,尤其是在服务器故障诊断方面十分重要。同时基于whitley平台的新一代服务器不但在管理和监控方面要求的更加精细准确,而且对于bmc管理模块自身的稳定性也有着极高的要求,因此bmc不但需要完成日常对服务器整体的健康监控,同时也要监控自身的资源占用,以便出现故障后能够及时的定位问题原因,对bmc自身小系统的故障诊断的准确度有了更高的要求。

目前服务器bmc对自身小系统资源监控方面覆盖面积太窄,收集到的信息很多对故障定位没有帮助,并且收集到的信息不够详细,准确度也不够,容易产生误告警。对此需要对目前的bmc自身监控策略进行优化。



技术实现要素:

针对现有技术的上述不足,本发明提供一种bmc健康状态监控方法、系统、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种bmc健康状态监控方法,包括:

建立独立于ipmimain的服务器健康监控进程并在所述监控进程中建立独立的bmc健康监控线程;

通过所述监控线程轮询获取bmc监控项目数据;

将监控数据超过预设阈值的监控项目定位为异常项目;

解析导致异常项目形成的异常程序,并输出所述异常程序信息。

进一步的,所述通过监控线程轮询获取bmc监控项目数据,包括:

利用系统top命令轮询获取cpu使用率和内存使用率;

利用df-h命令获取主要路径的挂载率;

通过文件获取文件描述符的使用率。

进一步的,所述将监控数据超过预设阈值的监控项目定位为异常项目,包括:

采集预设周期时间段内的cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据;

分别将cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据去掉最大值和最小值后再计算平均值,得到平均cpu使用率、平均内存使用率和平均文件描述符;

将平均cpu使用率与cpu使用率阈值对比,将平均内存使用率与内存使用率阈值对比,将平均文件描述符与文件描述符阈值对比,将超过对应阈值的监控项目记录至日志文件。

进一步的,所述解析导致异常项目形成的异常程序并输出所述异常程序信息,包括:

若cpu使用率或内存使用率异常,则利用top命令和popen函数获取top命令的执行结果,并通过fgets指令解析所述执行结果得到占用率最高的多个进程信息;

若挂载率异常,则使用df-h命令和popen函数获取发生异常的路径名字。

第二方面,本发明提供一种bmc健康状态监控系统,包括:

线程建立单元,配置用于建立独立于ipmimain的服务器健康监控进程并在所述监控进程中建立独立的bmc健康监控线程;

数据获取单元,配置用于通过所述监控线程轮询获取bmc监控项目数据;

阈值评估单元,配置用于将监控数据超过预设阈值的监控项目定位为异常项目;

故障解析单元,配置用于解析导致异常项目形成的异常程序,并输出所述异常程序信息。

进一步的,所述数据获取单元包括:

第一获取模块,配置用于利用系统top命令轮询获取cpu使用率和内存使用率;

第二获取模块,配置用于利用df-h命令获取主要路径的挂载率;

第三获取模块,配置用于通过文件获取文件描述符的使用率。

进一步的,所述阈值评估单元包括:

数据采集模块,配置用于采集预设周期时间段内的cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据;

加权平均模块,配置用于分别将cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据去掉最大值和最小值后再计算平均值,得到平均cpu使用率、平均内存使用率和平均文件描述符;

阈值比对模块,配置用于将平均cpu使用率与cpu使用率阈值对比,将平均内存使用率与内存使用率阈值对比,将平均文件描述符与文件描述符阈值对比,将超过对应阈值的监控项目记录至日志文件。

进一步的,所述故障解析单元包括:

第一解析模块,配置用于若cpu使用率或内存使用率异常,则利用top命令和popen函数获取top命令的执行结果,并通过fgets指令解析所述执行结果得到占用率最高的多个进程信息;

第二解析模块,配置用于若挂载率异常,则使用df-h命令和popen函数获取发生异常的路径名字。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的bmc健康状态监控方法、系统、终端及存储介质,采用异步机制防止对其他功能模块造成影响,对此先建立一个独立的进程来同时监控bmc系统自身与服务器其他部件、模块健康状态,该进程独立于ipmimain,方面对监控模块进行维护管理。进程中建立一个独立的线程来监控bmc小系统的cpu占用率、内存占用率、文件描述符使用率、主要路径挂载率,当某一项资源使用率过高则产生告警日志,为了能够更准确的定位故障原因,当产生cpu、内存告警时,同时记录当前cpu、内存占用率最高的三个进程的名字,便于进行故障分析;当产生主要路径挂载率过高的告警时,记录挂载率超过阀值的路径名。通过本文提出的服务器管理系统下基于linux监控bmc自身健康状态方法可以有效完成对bmc小系统自身的故障监控以及故障管理,更加准确的定位故障发生的位置,使用户可以更及时更有效的处理服务器管理过程中发生的故障。本发明可以在bmc系统自身发生故障时,通过故障日志收集的bmc告警信息更准确更高效的定位故障发生的位置,发生的原因以及处理建议,大大降低服务器的维护成本,提高产品竞争力。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的系统的示意性框图。

图3为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种bmc健康状态监控系统。

如图1所示,该方法100包括:

步骤110,建立独立于ipmimain的服务器健康监控进程并在所述监控进程中建立独立的bmc健康监控线程;

步骤120,通过所述监控线程轮询获取bmc监控项目数据;

步骤130,将监控数据超过预设阈值的监控项目定位为异常项目;

步骤140,解析导致异常项目形成的异常程序,并输出所述异常程序信息。

可选地,作为本发明一个实施例,所述通过监控线程轮询获取bmc监控项目数据,包括:

利用系统top命令轮询获取cpu使用率和内存使用率;

利用df-h命令获取主要路径的挂载率;

通过文件获取文件描述符的使用率。

可选地,作为本发明一个实施例,所述将监控数据超过预设阈值的监控项目定位为异常项目,包括:

采集预设周期时间段内的cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据;

分别将cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据去掉最大值和最小值后再计算平均值,得到平均cpu使用率、平均内存使用率和平均文件描述符;

将平均cpu使用率与cpu使用率阈值对比,将平均内存使用率与内存使用率阈值对比,将平均文件描述符与文件描述符阈值对比,将超过对应阈值的监控项目记录至日志文件。

可选地,作为本发明一个实施例,所述解析导致异常项目形成的异常程序并输出所述异常程序信息,包括:

若cpu使用率或内存使用率异常,则利用top命令和popen函数获取top命令的执行结果,并通过fgets指令解析所述执行结果得到占用率最高的多个进程信息;

若挂载率异常,则使用df-h命令和popen函数获取发生异常的路径名字。

为了便于对本发明的理解,下面以本发明bmc健康状态监控方法的原理,结合实施例中对bmc监控状态进行监控并进行故障定位的过程,对本发明提供的bmc健康状态监控方法做进一步的描述。

具体的,所述bmc健康状态监控方法包括:

s1、建立独立于ipmimain的服务器健康监控进程并在所述监控进程中建立独立的bmc健康监控线程。

先建立一个独立的进程来同时监控bmc系统自身与服务器其他部件、模块健康状态,该进程独立于ipmimain,方便对监控模块进行维护管理。进程中建立一个独立的线程来监控bmc小系统。监控bmc自身状态是位于服务器健康监控进程中的一条独立的线程,该进程独立于ipmimain,这样可以在ipmi主进程发生异常时依然可以监控记录异常信息,通过建立一条独立的线程可以避免对其他监控模块造成影响。

s2、通过所述监控线程轮询获取bmc监控项目数据。

预设设置各个监控项目的监控数据获取周期,例如线程每10秒轮询一次。在监控过程中利用linux系统下的top命令轮训获取cpu、内存使用率,使用df-h来获取主要路径的挂载率,通过文件来获取文件描述符的使用率。

s3、将监控数据超过预设阈值的监控项目定位为异常项目。

监控bmc自身健康状态告警阀值设定:bmc小系统cpu:80%;bmc小系统内存:80%;文件描述符使用率:75%;主要路径挂载率:70%。

当收集cpu、内存、文件描述符时,由于这三项数据变化频率较快。为保证日志结果的准确性,数据处理方面,我们会将一分钟内的6个数据全部记录下来,然后去掉一个最大值与一个最小值,最后计算平均值作为使用率与设定好的阀值比较,即计算加权平均值,超过阀值则记录日志。而对于主要路径挂载率来说,由于该数值变化率较慢,所以不需要计算加权平均值,并且频率上为1分钟一次,降低对bmc自身cpu占用率的使用。将每分钟获取的路径挂载率与挂载率阈值对比,若超出阈值则记录在日志文件中。

s4、解析导致异常项目形成的异常程序,并输出所述异常程序信息。

当监控bmc自身系统中出现cpu、内存占用率超过阀值时,使用top命令加popen函数可以将top命令的执行结果输出到文件中,因此再通过fgets即可对输出结果进行解析,最终得到占用率最高的前三个进程的名字。当出现挂载率超过阀值时,同样可使用df-h加popen函数获取发生告警的路径名字。然后我们将对应名字写入到日志文件中,这样一来不仅可以记录告警事件,也可以记录告警触发源,使故障定位精度大大提高。若文件描述符超过阈值,需测试人员根据步骤s3生成的日志进行故障分析。

如图2示,该系统200包括:

线程建立单元210,配置用于建立独立于ipmimain的服务器健康监控进程并在所述监控进程中建立独立的bmc健康监控线程;

数据获取单元220,配置用于通过所述监控线程轮询获取bmc监控项目数据;

阈值评估单元230,配置用于将监控数据超过预设阈值的监控项目定位为异常项目;

故障解析单元240,配置用于解析导致异常项目形成的异常程序,并输出所述异常程序信息。

可选地,作为本发明一个实施例,所述数据获取单元包括:

第一获取模块,配置用于利用系统top命令轮询获取cpu使用率和内存使用率;

第二获取模块,配置用于利用df-h命令获取主要路径的挂载率;

第三获取模块,配置用于通过文件获取文件描述符的使用率。

可选地,作为本发明一个实施例,所述阈值评估单元包括:

数据采集模块,配置用于采集预设周期时间段内的cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据;

加权平均模块,配置用于分别将cpu使用率监控数据、内存使用率监控数据和文件描述符监控数据去掉最大值和最小值后再计算平均值,得到平均cpu使用率、平均内存使用率和平均文件描述符;

阈值比对模块,配置用于将平均cpu使用率与cpu使用率阈值对比,将平均内存使用率与内存使用率阈值对比,将平均文件描述符与文件描述符阈值对比,将超过对应阈值的监控项目记录至日志文件。

可选地,作为本发明一个实施例,所述故障解析单元包括:

第一解析模块,配置用于若cpu使用率或内存使用率异常,则利用top命令和popen函数获取top命令的执行结果,并通过fgets指令解析所述执行结果得到占用率最高的多个进程信息;

第二解析模块,配置用于若挂载率异常,则使用df-h命令和popen函数获取发生异常的路径名字。

图3为本发明实施例提供的一种终端系统300的结构示意图,该终端系统300可以用于执行本发明实施例提供的bmc健康状态监控方法。

其中,该终端系统300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。

处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

因此,本发明采用异步机制防止对其他功能模块造成影响,对此先建立一个独立的进程来同时监控bmc系统自身与服务器其他部件、模块健康状态,该进程独立于ipmimain,方面对监控模块进行维护管理。进程中建立一个独立的线程来监控bmc小系统的cpu占用率、内存占用率、文件描述符使用率、主要路径挂载率,当某一项资源使用率过高则产生告警日志,为了能够更准确的定位故障原因,当产生cpu、内存告警时,同时记录当前cpu、内存占用率最高的三个进程的名字,便于进行故障分析;当产生主要路径挂载率过高的告警时,记录挂载率超过阀值的路径名。通过本文提出的服务器管理系统下基于linux监控bmc自身健康状态方法可以有效完成对bmc小系统自身的故障监控以及故障管理,更加准确的定位故障发生的位置,使用户可以更及时更有效的处理服务器管理过程中发生的故障。本发明可以在bmc系统自身发生故障时,通过故障日志收集的bmc告警信息更准确更高效的定位故障发生的位置,发生的原因以及处理建议,大大降低服务器的维护成本,提高产品竞争力,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1