Plotting CPU Temperature on MRTG graph
From WBITT's Cooker!
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 than 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