查看CentOS CPU温度:lm_sensors安装步骤
机器风扇突然狂转,机箱烫手,却找不到温度数据?在CentOS里,想实时瞄一眼CPU到底几度,lm_sensors是最轻量也最靠谱的那把钥匙。下面这份笔记把安装、报错、读数、开机自启一次讲透,照着敲命令就行,零废话。

为什么非得用lm_sensors
CentOS默认不带温度驱动,/proc/cpuinfo、htop、top统统不会给你摄氏度。lm_sensors把主板Super I/O、Intel DTS、AMD K10等芯片的寄存器扒出来,转成人类能看懂的数字,再丢到/sys/class/hwmon,方便shell直接读取。比起闭源软件,它开源、无广告、不捆绑,仓库里就能拉到。
前置检查:先确认内核已加载模块
终端输入ls /sys/class/hwmon,如果返回空,说明驱动没就位;有文件夹也别高兴,里面没temp标签同样白搭。继续走下面安装流程即可。
步骤一:配置EPEL,别让yum找不到包
CentOS 7/8/Stream都默认关掉EPEL,直接yum install sensors-detect会提示No package。一次性搞定:

yum install epel-release -y
看到Complete!再往下走。
步骤二:安装lm_sensors主包与检测脚本
yum install lm_sensors sensors-detect -y
这条命令会把libsensors、perl检测依赖、fancontrol一并拖下来,省得后面手动补。
步骤三:探测芯片,一路Yes

输入
sensors-detect
程序会让你确认I2C、ISA、Super I/O、DMI等接口,普通台式机或云主机无脑按回车,默认就是Yes。最后会问“Add to /etc/modules?”,写Yes,这样重启后模块自动加载。
步骤四:手动加载模块,立即生效
探测完别急着sensors,先让内核认账:
systemctl restart kmod
或者老派一点:
modprobe coretemp # Intel
modprobe k10temp # AMD
没报错就是成功。
步骤五:跑一下sensors,看读数
直接敲
sensors
典型输出:
coretemp-isa-0000
Package id 0: +47.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +45.0°C
Core 1: +46.0°C
如果看到ALARM或者-128°C,说明模块没对上号,回到sensors-detect再跑一遍,多半把遗漏的芯片打开即可。
步骤六:写个systemd服务,开机自动加载模块
虽然sensors-detect已写/etc/modules,但CentOS 8以后改用modules-load.d,更干净:
echo coretemp > /etc/modules-load.d/temp.conf
echo k10temp >> /etc/modules-load.d/temp.conf
重启后lsmod | grep temp能看到模块,即无虞。
步骤七:用watch持续监控,不用装图形
临时盯温度:
watch -n 1 sensors
一秒刷新一次,跑压力测试时最直观。退出按Ctrl+C。
步骤八:集成到Zabbix或Prometheus
写个UserParameter:
echo 'UserParameter=cpu.temp,sensors | grep Package | awk '{print $4}' | cut -c2-3' >> /etc/zabbix/zabbix_agentd.conf
重启agent,服务端就能画图告警。Prometheus同理,node_exporter自带textfile,把sensors输出重定向到.prom文件即可。
常见坑与急救
1. 虚拟机无数据
VMware、KVM、Xen默认不直通硬件传感器,sensors-detect会提示Sorry, no sensors。换物理机再试。
2. 读数恒为0
某些国产主板把Super I/O锁死,升级BIOS或刷OpenIPC固件才能解开。
3. 模块冲突
nct6775与w83627hf同时加载会死机,黑名单掉一个:
echo blacklist w83627hf > /etc/modprobe.d/blacklist.conf
4. 权限不足
普通用户执行sensors提示段错误,加sudo或者把用户加入video组。
一条命令总结
懒得看长文?复制下面整段,回车即可:
yum install epel-release -y && yum install lm_sensors -y && sensors-detect --auto && modprobe coretemp && sensors
十秒后就能在终端里看到CPU温度。
把lm_sensors玩熟,风扇转速、主板电压、硬盘SMART都能一条链打通,再配个短信告警,机器过热还没死机你就能收到通知。别等蓝屏才后悔,温度监控就是给服务器买的最便宜保险。
