)
Linux 硬件監控快速上手用 lm-sensors 三步拿到溫度與風扇轉速免費開源【免費下載鏈接】lm-sensorslm-sensors repository項目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors凌晨兩點告警系統彈出來機柜里那臺服務器 CPU 拉滿、風扇狂轉你卻只能看到占用率看不到溫度。這正是 Linux 硬件監控工具 lm-sensors 要解決的事它通過內核驅動讀取主板的溫度、風扇轉速和電壓一條命令就能把讀數擺在你面前。先跑起來從源碼到第一次讀數的最短路徑發行版倉庫里如果有包直接用包管理器裝 lm-sensors 即可步驟完全一樣。想用最新代碼就從源碼編譯前提是系統里有 gcc、make、bison、flex# 克隆源碼并進入目錄 git clone https://gitcode.com/gh_mirrors/lm/lm-sensors cd lm-sensors # 編譯并安裝到系統 make all sudo make installlm-sensors 安裝完成后下一步是檢測。用 root 跑sudo sensors-detect它會逐個掃描 I2C 和 SMBus 總線尋找傳感器芯片最后打印一份該加載的驅動模塊清單。掃描到某條總線時詢問是否探測一路選 yes 才能覆蓋所有可能位置。拿到清單后按提示 modprobe比如 Intel CPU 就是sudo modprobe coretemp。最后運行sensors就能看到這臺機器的第一組讀數coretemp-isa-0000 Adapter: ISA adapter Core 0: 56.0°C (high 80.0°C) Core 1: 52.0°C in0: 1.03 V (min 0.00 V, max 1.71 V) 某行顯示[err]表示該傳感器讀不出來別慌文末有排查方法。看懂讀數chip、傳感器編號和單位各是什么上面每一行輸出都對應一個概念chip 行coretemp-isa-0000驅動名 總線 地址。coretemp是 Intel CPU 溫度芯片的驅動isa-0000是它的掛載位置。機器上有幾顆芯片就有幾個這樣的塊。傳感器編號Core 0、in0芯片上物理通道的序號。編號跟引腳走不跟含義走所以第一眼看到的in0未必是你想的那個電壓。讀數與上限56.0°C是當前值(high 80.0°C)是報警上限超過之后該行會打印ALARM。單位溫度攝氏度、電壓 V、風扇轉速 RPM。sensors加-f切華氏度顯示加-j輸出 JSON方便寫腳本取數。讓它說人話用 sensors3.conf 改傳感器名并套用主板配置直接按引腳編號顯示名字看著費勁。sensors3.conf 配置就是用來把這些編號改寫成你能看懂的名字的。主配置文件在/etc/sensors3.conf倉庫 etc/ 下有一份示例可以參考而 configs/ 主板配置庫已經收了華碩、技嘉、微星等廠商數百個型號的現成配置。最快的路子在配置庫里找到你型號對應的文件把里面的 chip 段拷進 sensors3.conf。手寫的版本也就幾行的事chip coretemp-isa-0000 label temp1 CPU Core 0 # 把 temp1 的顯示名改成你看得懂的 label temp2 CPU Core 1 compute in0 *0.95 # 按 0.95 的系數校正 in0 電壓讀數 ignore in2 # 這個電壓通道用不到隱藏掉改完標簽只是換了顯示名不影響實際采集如果你的型號不在庫里照著同樣的格式自己補一個文件提回項目下一個用同款硬件的人就能直接復用。從「看」到「管」報警閾值和風扇調速的最小配置拿到讀數后第一件事是報警。在 sensors3.conf 對應 chip 段里加一行set temp1_crit 85關鍵溫度上限 85 度執行sensors -s把限值寫進芯片再啟動 sensord 守護進程任何傳感器越限它都會記一條 ALARM 日志。想讓風扇隨溫度自動調速跑一次sudo pwmconfig按提示走完幾個問題就會生成 fancontrol.conf關鍵行長這樣INTERVAL10 # 每 10 秒重新計算一次 DEVPATHhwmon0devices/platform/coretemp.0 DEVNAMEhwmon0coretemp FCTEMPShwmon1/pwm1hwmon0/temp1_input # 用 CPU 溫度驅動這組風扇 FCFANShwmon1/pwm1hwmon1/fan1_input # 被調速的風扇 MINTEMPhwmon1/pwm120 # 20 度以下基本不轉 MAXTEMPhwmon1/pwm160 # 60 度拉滿邏輯就一句話每隔 INTERVAL 秒看一眼 FCTEMPS 里的溫度把 FCFANS 的風速調到讓溫度落在 MINTEMP 與 MAXTEMP 之間。生成文件后用sudo fancontrol前臺跑起來或者用 prog/init/ 里的啟動腳本注冊成服務開機自啟??ㄗ×嗽趺崔k三個高頻故障的檢查命令現象檢查命令解法sensors無輸出或整塊芯片[err]lsmod \| grep -E coretemp\|nct6775對應驅動沒加載重跑 sensors-detect 檢測并 modprobe 建議的模塊sensors-detect 找不到任何傳感器芯片i2cdetect -l內核沒開 I2C 或 Hardware Monitoring 選項或芯片壓根沒有驅動換更新的內核光升級 lm-sensors 沒用個別傳感器顯示[err]逐個rmmod驅動后重跑sensors哪個驅動卸掉后錯誤消失問題就出在它身上記錄過程反饋給對應內核驅動的維護者接入你現有的監控體系Prometheus Grafananode_exporter 的 collector 直接讀 /sys 下的 hwmon 數據和 lm-sensors 同源不用額外寫腳本。Zabbix寫一個 UserParameter 腳本包住sensors -j把返回的 JSON 交給 Zabbix 解析。Nagios / Icinga寫個小插件grepsensors輸出里的讀數跟閾值比一下輸出 OK 或 CRIT。收尾溫度、風扇、電壓都裝進了一條命令里閾值報警和風扇調速也都有了最小可用的配置。詳細行為可以看 doc/ 下的官方文檔你的主板配置缺了就照著 configs/ 的格式補一份提回去。下一步建議讓 sensord 先跑滿一天拿到一輪連續數據再決定哪些閾值值得配告警?!久赓M下載鏈接】lm-sensorslm-sensors repository項目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考