利用服务器温感实现机房报警
2019-06-04河北温帅
■ 河北 温帅
编者按:笔者在工作中发现一款监测温度的软件,利用该软件,可以实现机房温度监测报警机制。
笔者单位机房的普通格力120空调出现两次故障,一次出现报错,一次直接关机,两次故障导致的原因都是外机温度过高。
第一次发现是在例行检查时,机房温度已经超过了45度,两台服务器(加配外置风扇)的温度已经超过了50度,网络设备温度未报警,风扇正常运转。
图1 Core Temp软件
发现后马上开启备用空调,清理空调外机,外机进风口已经完全被糊住了,导致进风困难,持续运转温度升高,经过清理恢复运行。
第二次还是在例行检查时发现空调关闭,没有报错,机房温度超过44度,服务器温度超过50度。
两次故障幸亏是在例行检查的时候发现,如果有其他工作耽误了例行检查,很有可能造成温度更高,甚至服务器损坏。
图3 监测界面
于是研究如何检测机房温度,以便在不稳定的空调宕机时能及时收到消息。
第一想法是使用服务器的温度传感器监测温度,并经过一定的触发报警,通知到管理人员。
经过从网上搜索,找到一款Core Temp软件(如图1所示),可以持续监测服务器各个核心的温度,并触发过热保护,通过声音报警或触发程序报警,并自动向邮箱发送邮件。
以前的脚本发现是vbs的,而该软件需要bat或者exe格式的文件,于是笔者从网上搜了一下,找到一个脚本,这个脚本的特点是,扩展名为vbs或者bat,两种脚本都可以用,其中的语句在vbs和bat中具有不同的意义,或者被忽略,但都能实现发邮件的效果。
具体脚本如图2所示。
软件安装到了一台物理服务器上后,还需要对温度持续监测,了解到正常温度的最大值是多少,才能设定报警值。
经过1周的监测,发现在空调设置24度恒温的情况下,4个CPU核心最高温度为45,我手动同时运行多个大型程序,也不会超过这个温度,于是将过热保护值设定为46度,触发过热保护后,运行sendmail.bat脚本,发送邮件,如图3所示。
该报警方式实现服务器温度传感器同时应用于服务器温度检测和机房温度检测,实现硬件的复用,节省费用,也实现了高温报警,运行效果良好。
图2 具体脚本内容