歡迎您光臨本站 註冊首頁

用MRTG監測Linux系統CPU溫度

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

在Linux下有個叫lm_sensors的軟體可以幫助我們來監控主板,CPU的工作電壓,風扇轉速、溫度等數據。這些數據我們通常在主板的 BIOS也可以看到。當我們可以在機器運行的時候通過lm_sensors隨時來監測著CPU的溫度變化,可以預防呵保護因為CPU過熱而會燒掉。

1. 安裝lm_sensors

現在基本上每個Linux都已經有lm_sensors包了,我們主要安裝了就可以了。或者我們也可以通過源文件來自己編譯。

1)在FC,RH, CENTOS下,用rpm:

[root@securitycn ~]# rpm -ivh lm_sensors-2.10.0-3.1.i386.rpm

3)編譯源文件安裝

我們可以通過:這裡下載源文件

這裡我們要注意的問題是要先安裝libsysfs庫,是Sysfsutils,Sysfsutils-devel軟體

tar xzvf lm-sensors-xxx.tar.gz

make user

make user_install testing

下面我們就用一些簡單的命令來利用lm_sensors來得到CPU的數據。我們要用root的身份來:

sensors-detect,然後它會自動搜索主板上的chipset和相應的driver,我們全部答YES就可以了

[root@securitycn ~]# sensors-detect

# sensors-detect revision 1.413 (2006/01/19 20:28:00)

This program will help you determine which I2C/SMBus modules you need to

load to use lm_sensors most effectively. You need to have i2c and

lm_sensors installed before running this program.

Also, you need to be `root', or at least have access to the /dev/i2c-*

files, for most things.

If you have patched your kernel and have some drivers built in, you can

safely answer NO if asked to load some modules. In this case, things may

seem a bit confusing, but they will still work.

It is generally safe and recommended to accept the default answers to all

questions, unless you know what you're doing.

We can start with probing for (PCI) I2C or SMBus adapters.

You do not need any special privileges for this.

Do you want to probe now? (YES/no):

全部默認YES即可。

然後我們啟動lm_sensors :

/etc/init.d/lm_sensors start

Starting lm_sensors: [ OK ]

我們可以通過lsmod來確定我們需要的driver已經載入了沒有

lsmod | grep i2c

i2c_isa 9153 2 w83627hf,w83781d

i2c_i801 11341 0

i2c_dev 12613 0

i2c_ec 9025 1 sbs

i2c_core 23745 6 w83627hf,w83781d,i2c_isa,i2c_i801,i2c_dev,i2c_ec

然後我們用sensors的命令就可以了:

[root@securitycn ~]# sensors

w83627hf-isa-0290

Adapter: ISA adapter

VCore 1: +3.33 V (min = +0.00 V, max = +0.00 V) ALARM

VCore 2: +3.36 V (min = +0.00 V, max = +0.00 V) ALARM

+3.3V: +0.93 V (min = +3.14 V, max = +3.46 V) ALARM

+5V: +5.11 V (min = +4.73 V, max = +5.24 V)

+12V: +4.56 V (min = +10.82 V, max = +13.19 V) ALARM

-12V: -7.10 V (min = -13.18 V, max = -10.88 V) ALARM

-5V: -1.93 V (min = -5.25 V, max = -4.75 V) ALARM

V5SB: +5.51 V (min = +4.73 V, max = +5.24 V) ALARM

VBat: +0.02 V (min = +2.40 V, max = +3.60 V) ALARM

fan1: 0 RPM (min = 2732 RPM, div = 2) ALARM

fan2: 0 RPM (min = 0 RPM, div = 2)

fan3: 0 RPM (min = 0 RPM, div = 2)

temp1: +38? (high = +50?, hyst = +45?) sensor = thermistor

temp2: +33.5? (high = +80?, hyst = +75?) sensor = thermistor

temp3: +33.5? (high = +80?, hyst = +75?) sensor = thermistor

vid: +0.000 V (VRM Version 10.0)

alarms:

beep_enable:

Sound alarm enabled

這裡我們可以看到溫度還沒有相對應CPU,我們主要稍微修改一下/etc/sensors.conf就可以了,不過其實都不用我們自己去動手,一般我們都可以從主板生產商那裡下載到配置文件。通過lmsensors我們就可以得到主板溫度,CPU電壓,風扇轉速這些信息。我們可以根據這些數據來監察系統的運行情況來預防系統的問題。

接下來讓它和MRTG整合在一起吧

[root@securitycn ~]# cd /usr/local/mrtg/bin

[root@securitycn ~]# vi temp.sh

#內容如下

#!/bin/bash

cputemp=`/usr/bin/sensors | grep temp1 |awk '{print $2}'|cut -c 2-4` #這句是說找出有temp1那一行,印出第二個列的2-4個字

systemp =`/usr/bin/sensors | grep temp2 |awk '{print $2}'|cut -c 2-5` 不用解釋了吧

echo $cputemp

echo $systemp

# the uptime

uptime | sed 's:^.* up \(.*\), [0-9][0-9]* users.*$:\1:'

# my name

uname -n

[root@securitycn ~]# chmod +x temp.sh 改成可執行

[root@securitycn ~]# ./temp.sh 試試看有沒有問題

39

33.5

15:36:19 up 22:28, 1 user, load average: 0.04, 0.09, 0.04

securitycn

再來寫下面的文件

[root@securitycn ~]# cd ../etc/

[root@securitycn ~]# vi temp.cfg

WorkDir: /data1/usr/apache/htdocs/mrtg/temp/

Target[index]: `/usr/local/mrtg/bin/temp.sh`

MaxBytes[index]:80

Options[index]: gauge, nopercent, growright

YLegend[index]: Temp (度)

ShortLegend[index]: 度

LegendO[index]: 系統溫度;

LegendI[index]: CPU溫度;

Title[index]: 系統溫度表

PageTop[index]:

主機溫度表



[root@securitycn ~]# /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/temp.cfg

執行3次就不報錯了

然後加入到crontab裡面

*/5 * * * * /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/temp.cfg

[火星人 ] 用MRTG監測Linux系統CPU溫度已經有950次圍觀

http://coctec.com/docs/linux/show-post-202267.html