本发明涉及服务器技术领域,具体涉及一种基于IPMI服务的监控管理压力测试整合方法。
背景技术:
服务器监控是实时掌握服务器工作状态,并在需要时可以随时调用监控记录进行查看,监控管理作为服务器领域中重要的一个模块,起着监控整个服务器运行状态的命脉端口。通过监控管理的网络端口,我们可以获取服务器的开关机状态、传感器的健康状态、系统产生的事件等等。在远端控制整个在监控管理的测试过程中,稳定性的测试是必不可缺的,基于监控管理目前的压力测试脚本对每个专案的不通用性和脚本管理的复杂性,需要将监控管理压力测试整合。
技术实现要素:
本发明的技术任务是提供一种基于IPMI服务的监控管理压力测试整合方法,基于Shell环境下的压力稳定性测试的改良,在原来压力测试脚本的基础上易管理、具有通用性和延伸扩展性。
本发明解决其技术问题所采用的技术方案是:
一种基于IPMI服务的监控管理压力测试整合方法,关闭防火墙,保证测试机能够和待测试的节点或者模块能够Ping通,即保证两台机器的IP在同一地址段;在远程Linux客户端,打开终端直接运行shell脚本:
按照提示,输入待测节点或模块的监控管理端IP,选择需要运行的压力稳定性测试类型;自动记录运行次数、传感器状态和读值,系统事件日志等;
脚本执行完成之后,测试结果放在脚本所在目录下的相应IP的文件夹中,测试人员查看log文件,判断测试结果是否符合要求。
优选的,该shell脚本执行中会提示输入测试平台IP和测试类型,自动执行。
本发明的一种基于IPMI服务的监控管理压力测试整合方法与现有技术相比,具有以下有益效果:
具有易管理性,将现有的监控管理的远程控制端的压力稳定性测试脚本集合至一个脚本下;
具有通用性,在测试中无需根据各专案的sensor类别不一样而做出修改;
具有延伸扩展性,目前加入的压力稳定性测试只有sensor读取、reset加压测试、网络远程控制系统开关机等压力测试,后续如果测试需要,可以加入更多的压力稳定性测试,增加相应的条目即可;
能够适应多平台,自动化操作,shell脚本执行中会提示输入测试平台IP和测试类型,自动执行,不需要测试人员记住因平台而异的、复杂的sensor名,只需要执行完成之后查看脚本就可以完成相关稳定性测试;操作步骤简便,大幅提高测试效率。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
一种基于IPMI服务的监控管理压力测试整合方法,关闭防火墙,保证测试机能够和待测试的节点或者模块能够Ping通,即保证两台机器的IP在同一地址段;在远程Linux客户端,打开终端直接运行shell脚本:
主要代码:
#!/bin/bash
#program:
echo " ==================================================
BMC STRESS IPMI SESSION KEEP FORE OPTION
usage: ./ipmi.stress.sh
1. bmc info (check the session link info)
2. Sensor_reading Stress
3. Reset Stress
4. Mix_power Stress
================================================"
echo "BMC IP"
read IP
read -p "input your choice(1-4): " choice
case $choice in
"1")
echo "bmc info"
ipmitool -I lanplus -H $IP -U admin -P admin bmc info
;;
"2")
echo "Sensor_reading"
mkdir -p $IP
for i in $(seq 1 1 10000 )
do
echo $i |tee -a $IP/sdr.log
echo $i >> $IP/bmcinfo.log
echo $i >> $IP/temp.log
echo $i >> $IP/volt.log
echo $i >> $IP/fan.log
echo $i >> $IP/sel.log
echo "=================" >> $IP/fan.log
echo "=================" >> $IP/temp.log
echo "=================" >> $IP/volt.log
echo "=================" >> $IP/bmcinfo.log
echo "=================" >> $IP/sel.log
echo "=================" |tee -a $IP/sdr.log
date | tee -a $IP/sdr.log
date >> $IP/volt.log
date >> $IP/temp.log
date >> $IP/fan.log
date >> $IP/bmcinfo.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr elist |tee -a $IP/sdr.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr type temp >> $IP/temp.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr type volt >> $IP/volt.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr type fan >> $IP/fan.log
ipmitool -I lanplus -H $IP -U admin -P admin bmc info >> $IP/bmcinfo.log
ipmitool -I lanplus -H $IP -U admin -P admin sel elist >> $IP/sel.log
ipmitool -I lanplus -H $IP -U admin -P admin sel clear
sleep 10
done
;;
"3")
echo "BMC_reset"
mkdir -p $IP
for i in $(seq 1 1 1000 )
do
echo $i |tee -a $IP/sdr.log
echo $i >> $IP/bmcinfo.log
echo $i >> $IP/temp.log
echo $i >> $IP/volt.log
echo $i >> $IP/fan.log
echo $i >> $IP/sel.log
echo "=================" >> $IP/fan.log
echo "=================">> $IP/temp.log
echo "=================" >> $IP/volt.log
echo "=================" >> $IP/bmcinfo.log
echo "=================" >> $IP/sel.log
echo "=================" |tee -a $IP/sdr.log
date | tee -a $IP/sdr.log
date >> $IP/volt.log
date >> $IP/temp.log
date >> $IP/fan.log
date >> $IP/bmcinfo.log
ipmitool -I lanplus -H $IP -U admin -P admin raw 0x06 0x02
sleep 180
ipmitool -I lanplus -H $IP -U admin -P admin sdr elist |tee -a $IP/sdr.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr type temp >> $IP/temp.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr type volt >> $IP/volt.log
ipmitool -I lanplus -H $IP -U admin -P admin sdr type fan >> $IP/fan.log
ipmitool -I lanplus -H $IP -U admin -P admin bmc info >> $IP/bmcinfo.log
ipmitool -I lanplus -H $IP -U admin -P admin sel elist >> $IP/sel.log
ipmitool -I lanplus -H $IP -U admin -P admin sel clear
sleep 10
done
;;
"4")
echo "Mix_power"
for ((i=1; i<=1000; i++))
do
echo $i
ipmitool -I lanplus -U admin -P admin -H $IP raw 0x00 0x02 0x02 2>>powerCycle.log 1>>/dev/null
sleep 300
ipmitool -I lanplus -U admin -P admin -H $IP raw 0x00 0x02 0x03 2>>hardrest.log 1>>/dev/null
sleep 300
ipmitool -I lanplus -U admin -P admin -H $IP raw 0x00 0x02 0x00 2>>powerdown.log 1>>/dev/null
sleep 15
ipmitool -I lanplus -U admin -P admin -H $IP raw 0x00 0x02 0x01 2>>poweron.log 1>>/dev/null
sleep 300
done
;;
Esac
按照提示,输入待测节点或模块的监控管理端IP,选择需要运行的压力稳定性测试类型;自动记录运行次数、传感器状态和读值,系统事件日志等;
脚本执行完成之后,测试结果放在脚本所在目录下的相应IP的文件夹中,测试人员查看log文件,判断测试结果是否符合要求。
该shell脚本执行中会提示输入测试平台IP和测试类型,自动执行。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。