Plotting CPU Temperature on MRTG graph

From WBITT's Cooker!

Jump to: navigation, search

Contents

lm_sensors package must be installed and the service running:

[root@www mrtg]# rpm -q lm_sensors
lm_sensors-2.10.7-9.el5
[root@www mrtg]#

service lm_sensors restart
chkconfig --level 35 lm_sensors on

Detect Sensors (one time activity):

[root@www mrtg]# sensors-detect

Answer the questions with YES, when asked by sensors-detect command. Next, issue "sensors -s" command. After that you can issue the "sensors" command and view the output.

[root@www mrtg]# sensors -s
[root@www mrtg]# sensors
w83793-i2c-0-2f
Adapter: SMBus I801 adapter at 1100
VCoreA:    +1.32 V  (min =  +0.92 V, max =  +1.38 V)
VCoreB:    +1.26 V  (min =  +0.00 V, max =  +2.05 V)
Vtt:       +1.21 V  (min =  +1.08 V, max =  +1.33 V)
in3:       +0.54 V  (min =  +0.40 V, max =  +0.67 V)
in4:       +1.82 V  (min =  +1.62 V, max =  +1.98 V)
+3.3V:     +3.23 V  (min =  +2.96 V, max =  +3.63 V)
+12V:     +12.10 V  (min = +10.75 V, max = +13.25 V)
+5V:       +5.05 V  (min =  +4.64 V, max =  +5.65 V)
5VSB:      +5.05 V  (min =  +4.64 V, max =  +5.65 V)
VBAT:      +3.25 V  (min =  +2.96 V, max =  +3.63 V)
fan1:        0 RPM  (min =  712 RPM)                   ALARM
fan2:        0 RPM  (min =  712 RPM)                   ALARM
fan3:        0 RPM  (min =  712 RPM)                   ALARM
fan4:        0 RPM  (min =  712 RPM)                   ALARM
fan5:     3040 RPM  (min =  712 RPM)
fan6:        0 RPM  (min =  712 RPM)                   ALARM
fan7:     2160 RPM  (min =  712 RPM)
fan8:        0 RPM  (min =  712 RPM)                   ALARM
fan9:        0 RPM  (min =  712 RPM)                   ALARM
fan10:       0 RPM  (min =  712 RPM)                   ALARM
CPU1 Temp: +26.0°C  (high = +75.0°C, hyst = +70.0°C)
CPU2 Temp:-117.5°C  (high = +75.0°C, hyst = +70.0°C)
temp3:    -119.0°C  (high = +75.0°C, hyst = +70.0°C)
temp4:    -128.0°C  (high = +75.0°C, hyst = +70.0°C)
temp5:       +41°C  (high =   +50°C, hyst =   +45°C)

w83627hf-isa-0290
Adapter: ISA adapter
VCore 1:   +0.24 V  (min =  +1.09 V, max =  +1.50 V)       ALARM
VCore 2:   +0.24 V  (min =  +1.09 V, max =  +1.50 V)       ALARM
+3.3V:     +0.24 V  (min =  +2.82 V, max =  +3.79 V)       ALARM
+5V:       +4.97 V  (min =  +6.85 V, max =  +4.97 V)       ALARM
+12V:      +0.91 V  (min = +15.02 V, max = +11.13 V)       ALARM
-12V:     -13.68 V  (min =  -3.48 V, max =  +3.10 V)       ALARM
-5V:       -6.96 V  (min =  +5.10 V, max =  +3.69 V)       ALARM
V5SB:      +5.48 V  (min =  +6.83 V, max =  +4.97 V)       ALARM
VBat:      +3.23 V  (min =  +3.94 V, max =  +2.46 V)       ALARM
fan1:        0 RPM  (min =    0 RPM, div = 2)
fan2:        0 RPM  (min = 2689 RPM, div = 2)              ALARM
fan3:        0 RPM  (min = 4470 RPM, div = 2)              ALARM
temp1:      +122°C  (high =    -1°C, hyst =   -73°C)   sensor = thermistor   ALARM
temp2:    +122.0°C  (high =   +80°C, hyst =   +75°C)   sensor = thermistor   ALARM
temp3:    +122.0°C  (high =   +80°C, hyst =   +75°C)   sensor = thermistor   ALARM
vid:      +1.519 V  (VRM Version 11.0)
alarms:   Chassis intrusion detection                      ALARM
beep_enable:
          Sound alarm enabled

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +23°C  (high =   +85°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +30°C  (high =   +85°C)

[root@www mrtg]#

Create the following script:

[root@www mrtg]# cat /usr/local/bin/sensors-mrtg.sh
#!/bin/bash
SENSORS=/usr/bin/sensors
UPTIME=$(uptime | awk -F, '{print $1}' )
TEXT="CPU Temperature"

CPU1TEMP=$( ${SENSORS} | grep "CPU1 Temp" | awk '{print int($3)}' )

# http://people.ee.ethz.ch/~oetiker/webtools/mrtg/reference.html
# "The external command must return 4 lines of output:
# Line 1
# current state of the first variable, normally 'incoming bytes count'
# Line 2
# current state of the second variable, normally 'outgoing bytes count'
# Line 3
# string (in any human readable format), telling the uptime of the target.
# Line 4
# string, telling the name of the target. "

echo ${CPU1TEMP}
echo ${CPU1TEMP}
echo ${UPTIME}
echo ${TEXT}
[root@www mrtg]#

Add the following code to your MRTG config file:

Target[CPUTemperature]: `/usr/local/bin/sensors-mrtg.sh`
Options[CPUTemperature]: nopercent,growright,unknaszero,gauge
MaxBytes[CPUTemperature]: 75
AbsMax[CPUTemperature]: 100
Unscaled[CPUTemperature]: dwmy
Title[CPUTemperature]: CPU Temperature
PageTop[CPUTemperature]: <H1>CPU Temperature</H1>
ShortLegend[CPUTemperature]: Celcius
YLegend[CPUTemperature]: Celcius
Personal tools