当前位置: 首页 > news >正文

从零安装 lm-sensors 硬件监控的完整实战

从零安装 lm-sensors 硬件监控的完整实战

【免费下载链接】lm-sensorslm-sensors repository项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors

3 点 17 分,机房服务器自己重启了。查内核日志,是 CPU 过热触发的保护机制,而风扇转速早就不对劲。要是那天就能直接读到温度和风扇数据,这事本可以提前发现。lm-sensors 就是干这个的:一个开源的 Linux 硬件监控工具,实时采集 CPU 温度、风扇转速、电压等传感器数据。下面带你从零装好、跑通、用起来。

数据是怎么流起来的

内核里的传感器驱动(coretemp、k10temp、nct6775 这类)先把每颗芯片的读数暴露成 /sys/class/hwmon/ 下的一组 sysfs 文件。libsensors 库负责读这些文件,再按配置文件里的 label、compute 规则把原始值换算成人能看懂的标签和单位,核心解析代码在 lib/ 里。最上层的 sensors 命令、sensord 守护进程、fancontrol 风扇调速工具全都从这个库取数,各管一种输出形态。一句话:内核 sysfs → libsensors 加工 → 各工具输出。

3 行命令装好

主流发行版直接用包管理器,两条命令任选其一:

apt install lm-sensors # Debian / Ubuntu dnf install lm_sensors # RHEL / Fedora

只有发行版版本太旧、或要跟踪最新代码时才走源码编译:

git clone https://gitcode.com/gh_mirrors/lm/lm-sensors cd lm-sensors make all && sudo make install # 需要 gcc、make、bison、flex

装完主要用这几个东西:/usr/bin/sensors 看读数,/usr/bin/sensors-detect 扫硬件,/etc/sensors3.conf 存主配置。仓库里还有一份带注释的样例配置,在 etc/sensors.conf.eg。

第一次跑通:检测与加载驱动

先跑检测脚本,一路按提示选 Y:

sudo sensors-detect

它会逐条扫 I2C/SMBus 总线,最后列出缺哪些内核模块。照推荐加载,Intel 机器最常见的是:

sudo modprobe coretemp

然后验证:

sensors

输出里出现这样的芯片块,温度是具体数字,就算通了:

coretemp-isa-0000 Core 0: +45.0 °C (high = +85.0 °C)

改配置让输出可读

主配置在 /etc/sensors3.conf,自己写的板卡配置放 /etc/sensors.d/ 目录更干净。最常改两样:label 重命名,compute 换算公式。一个最小可运行片段:

chip "nct6775-*" label in0 "VCore" label in3 "+12V" compute in3 ((6.8/10)+1)*@, @/((6.8/10)+1) set temp1_max 85

存盘后把阈值写进硬件并验证:

sensors -s && sensors

in3 应该从 1.8V 左右的原始值变成稳定的 +12V 上下,标签也换了名字。

自动化:守护监控、阈值报警、风扇联动 🔧

三个方向各一条命令。后台守护:

sudo sensord -c /etc/sensord.conf

它按固定周期把传感器读数写进日志或 RRD 数据库,不用每次手动敲 sensors。阈值报警不用单独起服务:配置里写 set temp1_max 85,温度一旦越线,sensors 输出里对应数值旁自动挂上 ALARM 标记。风扇联动先交互式生成配置,再启动:

sudo pwmconfig sudo fancontrol

它按映射表把温度转成转速写进 pwm 文件,核心字段只有三个:FCTEMPS(参考哪路温度)、FCFANS(控制哪路风扇)、MINTEMP/MAXTEMP(温度区间边界)。

排错:按症状找药 ⚠️

读数一直是空,或提示找不到芯片

驱动多半没加载。确认 sysfs 里有芯片目录:

ls /sys/class/hwmon/

是空的就按 sensors-detect 推荐列表逐个 modprobe。

检测脚本什么都扫不到

内核 I2C 子系统可能没开。看总线是否枚举出来了:

ls /sys/bus/i2c/devices/

一条 I2C 总线都没有,就得重编内核把 I2C 驱动和板载总线打开。

电压读数明显不对

缺 compute 公式,或者公式和实际分压电阻对不上。翻仓库的 configs/ 目录按主板型号找现成配置抄过来,比对一下公式。

普通用户跑 sensors 报权限错误

用户没有读 sysfs 文件的组权限。看一眼文件属组:

ls -l /sys/class/hwmon/hwmon0/

把用户加进对应组(常见的是 i2c),重新登录生效。

进阶:接进监控系统,或自己写脚本 ⚙️

已有监控栈的话,入口都只有一句话。Prometheus:node_exporter 的 textfile collector 可以直接吐 sensors 数据。Zabbix:定义一个 UserParameter 调用 sensors -j 拿 JSON。最轻的玩法:挂个 cron 定时跑小脚本。直接能用的监控脚本,15 行以内:

#!/bin/bash THRESHOLD=75 LOG=/var/log/cpu-temp.log while true; do t=$(sensors -j | jq -r '.["coretemp-isa-0000"].temp1.temp1_input // 0') if [ "$t" -ge "$THRESHOLD" ]; then echo "$(date) temp ${t}C too high" >> "$LOG" logger -t sens "CPU temp ${t}C" fi sleep 30 done

行动清单

  1. 包管理器装好 lm-sensors,跑一次 sudo sensors-detect,按推荐把驱动加载上。
  2. 执行 sensors,确认输出里能看到温度和风扇转速两个块。
  3. 在 /etc/sensors3.conf 写 label 和 compute 规则,sensors -s 把阈值写回硬件。
  4. 机器多的话部署 sensord 持续落盘,数据接进 Prometheus 或 Zabbix。
  5. 读数还不对,就到 configs/ 目录里按板型搜现成配置对照。

参考资料:配置文件语法 sensors.conf.5,库接口说明 libsensors-API.txt。

【免费下载链接】lm-sensorslm-sensors repository项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4160134.html

相关文章:

  • future/promise并发模型:从内存布局到跨语言实践
  • Marketch:从Sketch设计稿直接量出间距和CSS尺寸的顺手工具
  • RAG 评测体系完整指南
  • 边缘AI时事:PTZ摄像机的边缘算力是怎么来的?
  • Vue3 Ant Design 中后台模板教程:5分钟跑通 vue3-antd-admin
  • 重试机制应用
  • Linux服务器CPU使用率100%排查:从top命令到jstack与perf的完整实战指南
  • 把 Kafka 当队列用,丢了 0.3% 的消息:Kafka 与 RocketMQ 在可靠性、顺序、事务上的 4 笔真实账
  • KMS_VL_ALL_AIO 本地KMS快速激活指南:从零到一,一个批处理搞定 Windows 和 Office 激活
  • ol-ext 上手实操手册:OpenLayers 地图扩展库核心能力拆解
  • `import fnmatch` 是 Python 中导入标准库模块 `fnmatch` 的语句
  • 主题公园移动供电案例:从环球影城场景,看户外频繁插拔工况下工业连接器选型思路
  • 读懂eas.json:expo-react-native-cicd中dev、prod-apk、prod-aab三大构建Profile配置详解
  • PyULog:8条命令解析PX4 ULog日志,导出CSV、KML与SQLite
  • RDMA数据传输操作:Send/Recv与Read/Write全解析
  • AnythingLLM 教程:10 分钟搭建一个本地私有知识库问答应用
  • Element Tiptap富文本编辑器:Vue3项目5分钟接入带菜单的WYSIWYG编辑器
  • SPA 刷新 404 难题终结者:boot-react SinglePageAppConfig pushState 资源解析器深度剖析
  • 我的价值观
  • 如何使用 draw.io 桌面版:离线绘图与批量导出完整指南
  • CEdev 图形编程完全指南:graphx 库调色板、精灵动画与 Tilemap 实战教程
  • iOS跨平台位置模拟实战:基于WebKit调试协议实现GeoPort方案
  • Weasis:内建 2D/3D 影像分析的开源 DICOM 查看器
  • res-downloader完全教程:免费的跨平台资源嗅探器,一键下载视频音乐图片
  • PhoneProfilesPlus新手必学的8个实用场景:会议自动静音、通勤一键飞行模式
  • 让Claude Code、Codex与Gemini协同工作:Agent Relay Harnesses完整指南
  • 训练UniDetector前必看的20+个关键超参数:完整配置项逐条解读
  • 快速上手solid-dnd:10分钟从零搭建你的第一个拖拽应用,新手友好教程
  • 如何系统掌握高级数据结构?AlgorithmsAndDataStructuresInAction官方代码库入门指南
  • Vue-preview 图片预览:新手安装与上手完整指南