lm-sensors 从零到跑通:Linux 传感器监控完整实战 lm-sensors 从零到跑通Linux 传感器监控完整实战【免费下载链接】lm-sensorslm-sensors repository项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensorslm-sensors把内核里的温度、风扇、电压读数翻译成能直接看的报告帮你设阈值、自动报警。读完能编译安装它跑出第一条传感器监控数据知道下一步该调什么。它能干什么一次读出温度、风扇、电压三类指标扫描主板告诉你要加载哪些驱动读数超阈值时写日志、发告警按温度自动调节风扇转速3分钟跑起来环境检查编译需要gcc、GNU make、bison和flex解析配置文件语法用运行sensors-detect还需要 perl一条命令确认齐全which gcc make bison flex perl编译安装四行命令完成安装首次编译报一堆找不到.d文件的警告忽略即可git clone https://gitcode.com/gh_mirrors/lm/lm-sensors cd lm-sensors make all # 构建 libsensors 库和全部程序 sudo make install # 默认装到 /usr/local安装后有三个关键产物/usr/local/bin/sensors主读数程序/usr/local/lib/libsensors.so核心库/etc/sensors3.conf主配置文件验证成功跑一次读数sensors机器上有监控芯片且加载了驱动时会按芯片分组打印温度、风扇、电压输出为空不算失败只是驱动还没加载下一节解决。日常怎么用把传感器监控跑进日常检测并加载驱动sensors-detect是传感器监控使用技巧的第一步它扫描I2C/SMBus总线和 Super-I/O 芯片列出该加载的模块sudo sensors-detect过程中会逐个询问是否扫描某条总线全部回答 yes 结果最全。结尾给出 modprobe 清单挑你机器的加载sudo modprobe coretemp # Intel CPU 温度 sudo modprobe k10temp # AMD CPU 温度看读数核心命令就一个输出按芯片分组每行带当前值和阈值sensors效果大致长这样coretemp-isa-0000 Adapter: ISA adapter Core 0: 45.0°C (high 80.0°C, crit 90.0°C) Core 1: 43.0°C (high 80.0°C, crit 90.0°C)加-f输出华氏度加-u输出原始值写配置时用它对照引脚名。把读数喂给脚本JSON 输出方便接入自动化sensors -j标准 JSON每个芯片一个对象接jq直接取字段。把配置调舒服首次输出的标签常是in0、temp1这类原始引脚名因为内核只按引脚上报libsensors需要知道怎么命名和换算。规则写在/etc/sensors3.confchip coretemp-isa-0000 label temp1 CPU 核心温度 # 重命名 set temp1_crit 90 # 临界阈值 ignore in2 # 隐藏不用的读数改前先备份一份旧文件。写回阈值需要 rootsudo sensors -s同机型的现成配置在仓库configs/目录里按厂商分文件夹把匹配的小节拷进sensors3.conf微调即可。让它自己跑传感器监控自动值班用 sensord 后台值班sensord定期检查传感器告警、把读数写进syslog。默认构建不含它要先加进编译make PROG_EXTRAsensord # 把守护进程加进构建 sudo make install启动后每分钟查一次告警每半小时记一次全量读数sudo sensord -i 60 -l 30m告警以 alert 级别进 syslog记得配 logrotate否则日志每月涨几个 MB。让风扇跟着温度转fancontrol读温度、自动写PWM值转速在最小最大之间线性变化风扇停转还会自动重启。交互式生成配置sudo pwmconfig # 逐个 pwm 输出做测试 sudo fancontrol -c /etc/fancontrol配置核心就这么几行INTERVAL10 # 每 10 秒算一次 FCTEMPSpwm1hwmon0/temp1 # 用哪个温度驱动哪个 pwm MAXTEMPpwm170 # 超过 70 度全速对接现有监控Prometheusnode_exporter 本来就直读 /sys 下的 hwmon 数据现成的也可以写个自定义 exporter 包一层sensors -j。Zabbix/Nagios注册自定义监控项定期执行sensors -j判字段、sensors判ALARM关键字超限就报警。踩坑记录sensors-detect 什么都没找到笔记本最常见它们一般不暴露硬件监控芯片CPU 温度靠ACPI拿。sensors-detect在笔记本上找空是正常结局改用cat /sys/class/thermal/thermal_zone*/temp看温度。某块芯片报错或读数明显不对多半是内核驱动的问题不是 lm-sensors 的。逐个卸载驱动重跑sensors定位哪个卸完错误消失就是谁sudo rmmod 驱动名 # 卸载嫌疑驱动 sensors # 看错误是否消失改了 sensors3.conf 不生效两种情况chip 名没对上照抄sensors输出第一行或者set语句只写了配置没写回芯片要执行sudo sensors -s。继续深挖doc/目录开发文档、API、发布检查单给想自己写监控程序的人看etc/sensors.conf.eg全量配置示例写 sensors3.conf 时当字典翻configs/目录社区贡献的主板配置找同型号直接抄lm-sensors 把内核里散落的传感器读数变成可读、可调阈值、可记录的数据价值不在单条命令而在读数、设限、告警这条完整链路。下一步给自己的主板补一份配置放进configs/给 sensord 配好 logrotate 再让它长期跑低负载时段跑 fancontrol画出你的温度-转速曲线温度数字从此在你手边出问题的时候看一眼终端心里就有数了。【免费下载链接】lm-sensorslm-sensors repository项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考