前段时间有个属于笔者维护的小机房空调故障,温度过高导致系统卡慢,多日无人发现。于是想着使用zabbix监控CPU温度并设置告警阀值,同时也能监控到风扇异常、挡风板太脏空气不畅、进程死锁导致CPU使用率超高等异常,侧面监控服务器多种异常状况。   服务器有两台四路x86服务器,系统是CentOS,用到软件lm_sensors。使用zabbix监控系统自定义监控项,采集监控数据并设置告警。下面详细介绍。

安装 lm_sensors 并获取CPU温度

yum install lm_sensors
安装后运行  sensors-detect 检测内核模块,在引导下直接enter,使用默认选项
检测结束后运行 sensors ,可以看到每颗CPU每个核心的温度

配置zabbix,自定义监控项、自定义模板、设置触发器

修改客户端配置文件zabbix_agentd.conf 第一次自定义监控时要设置 UnsafeUserParameters=1 在配置文件中添加一行: UserParameter=get_temp_cpu[*],sensors|grep "Physical id $1"|cut -c 17-20 //字符串截取位置以系统返回的实际结果为准调整 重启客户端

新建模板,配置监控项,单位设置为℃ 由于设置发现规则比较费事,就在这里为四路服务器创建了四个监控项,两路服务器另外复制出一份模板删减或在主机配置里关闭无用监控项。 在模板中配置触发器 为四个监控项分别添加触发器,阀值根据历史记录或个人经验自定义

查看历史监控数据

将模板应用到主机一段时间后可以查看到监控数据。如下图所示,对其中一台服务器做压力测试期间,CPU温度有明显变化。