本发明涉及服务器运维领域,具体的说是一种针对日志报警功能的通用测试方法及装置。
背景技术:
随着云计算和大数据的飞速发展,客户运维服务器的数量也迅速增长,这对运维团队提出了更高的挑战。服务器运维中关键的一点是监控服务器的各个硬件的运行状态,其中最主要的部分就是CPU、内存和ME,如果此功能存在问题则会给运维造成非常大的麻烦。
以往的CPU、内存和ME的日志报警功能测试都是通过手动模拟fail现象,然后查看对应BMC报警日志是否正确,且不同机型测试方法不统一,这种方法的弊端是效率较低,而且测试覆盖率不够,考虑情况比较单一。
技术实现要素:
为了解决上述问题,提供了一种针对日志报警功能的通用测试方法及装置,不仅适用于所有型号的服务器,还能够大大提高测试效率。
本发明实施例提供了一种针对日志报警功能的通用测试方法,所述的方法包括:
S1:获取测试机器中所有的传感器名称及其对应的地址值;
S2:选取CPU、内存、ME对应的传感器及相应地址;
S3:利用S2中选取的地址模拟失效报警;
S4:检查BMC日志,判断测试结果。
进一步的,步骤S1的具体实现过程为:通过ipmitool sdr elist获取所有传感器信息,并保存的日志文件中。
进一步的,步骤S2中,通过自动检索CPU、内存、ME对应传感器的通用名称来选取CPU、内存、ME对应的传感器。
进一步的,步骤S3的具体实现过程为:
S31:通过遍历每个CPU状态的地址位,逐个模拟故障日志;
S32:通过遍历所有内存状态传感器地址位,逐个模拟内存ECC故障;
S33:通过ipmitool发送模拟ME故障的命令。
进一步的,步骤S4的具体实现过程为:利用ipmitool sel elist抓取所有BMC报警日志,通过对比日志信息是否与模拟的故障一致来判断对应故障报警功能是否正常。
本发明实施例还提供了一种针对日志报警功能的通用测试装置,所述的装置包括:
一级获取单元,用以获取测试机器中所有的传感器名称及其对应的地址值;
二级获取单元,用以选取CPU、内存、ME对应的传感器及相应地址;
故障模拟单元,用以通过ipmitool发送模拟CPU、内存、ME故障;
结果输出单元,利用ipmitool sel elist抓取所有BMC报警日志,通过对比日志信息是否与模拟的故障一致来判断对应故障报警功能是否正常,并输出判断结果。
进一步的,所述的故障模拟单元包括:
CPU故障模拟单元,通过遍历每个CPU状态的地址位,逐个模拟故障日志;
内存故障模拟单元,通过遍历所有内存状态传感器地址位,逐个模拟内存ECC故障;
ME故障模拟单元,通过ipmitool发送模拟ME故障的命令。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
通过脚本命令来自动实现,可以自动获取传感器信息并模拟故障,针对所有主流带有IPMI模块的服务器均适用,实现了不同机型一键测试,解放了人力,提升了测试效率。
附图说明
图1是本发明方法实施例的流程图;
图2是本发明装置的原理图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
本发明设计的原理为:
IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用IPMI监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI最大的优势在于它是独立于CPU、BIOS和OS的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。IPMI是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它IPMI可以监控各个传感器的数据并记录各种事件的日志。
Shell是指“提供使用者使用界面”的软件。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
实施例
如图1所示,本发明实施例提供了一种针对日志报警功能的通用测试方法,所述的方法包括:
S1:获取测试机器中所有的传感器名称及其对应的地址值,具体实现过程为:通过ipmitool sdr elist获取所有传感器信息,并保存的日志文件中。
S2:选取CPU、内存、ME对应的传感器及相应地址。该步骤的原理为:通过自动检索CPU、内存、ME对应传感器的通用名称来选取CPU、内存、ME对应的传感器。
例如,purley平台CPU状态传感器名称都为CPU_Status,内存的传感器名称一般都为CPU_xx_xx,通过排除的方式获取所有内存传感器地址位,ME状态传感器名称一般都为ME_FW_Status。
S3:利用S2中选取的地址模拟失效报警。
步骤S3的具体实现过程为:
S31:通过遍历每个CPU状态的地址位,逐个模拟故障日志。
S32:通过遍历所有内存状态传感器地址位,逐个模拟内存ECC故障。
S33:通过ipmitool发送模拟ME故障的命令。
在实际操作中,整个步骤S3都是通过ipmitool发送模拟故障的命令,把这些命令整合到函数中,在脚本中统一执行。
S4:检查BMC日志,判断测试结果。
步骤S4的具体实现过程为:利用ipmitool sel elist抓取所有BMC报警日志,通过对比日志信息是否与模拟的故障一致来判断对应故障报警功能是否正常。
如图2所示,本发明实施例还提供了一种针对日志报警功能的通用测试装置,所述的装置包括一级获取单元、二级获取单元、故障模拟单元、结果输出单元。
所述的一级获取单元,主要用以获取测试机器中所有的传感器名称及其对应的地址值。
所述的二级获取单元,主要在一级获取单元完成操作后,从一级获取单元的结果中选取CPU、内存、ME对应的传感器及相应地址。
所述的故障模拟单元,主要用以通过ipmitool发送模拟CPU、内存、ME故障。该单元可以细分为以下三个单元:
1)CPU故障模拟单元,通过遍历每个CPU状态的地址位,逐个模拟故障日志。
2)内存故障模拟单元,通过遍历所有内存状态传感器地址位,逐个模拟内存ECC故障。
3)ME故障模拟单元,通过ipmitool发送模拟ME故障的命令。
所述的结果输出单元,利用ipmitool sel elist抓取所有BMC报警日志,通过对比日志信息是否与模拟的故障一致来判断对应故障报警功能是否正常,并输出判断结果。
尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。