Mit lm-sensors und rrd CPU und MB-Temperatur überwachen

Kernel mit i2c-Unterstützung bauen. Folgende Auswahl sollte mit den meisten Mainboards funktionieren:

Device Drivers  --->
  I2C support  --->
    <M> I2C support
    <M>   I2C device interface
    I2C Hardware Bus support  --->
      <M> ALI 1535
      <M> ALI 1563
      <M> ALI 15x3
      <M> AMD 756/766/768/8111 and nVidia nForce
      < >   SMBus multiplexing on the Tyan S4882
      <M> AMD 8111                              
      <M> Elektor ISA card                      
      <M> Intel 82801 (ICH)                     
      <M> Intel 810/815                         
      <M> Intel PIIX4                           
      <M> Nvidia nForce2, nForce3 and nForce4   
      <M> Parallel port adapter                 
      <M> Parallel port adapter (light)         
      <M> S3/VIA (Pro)Savage                    
      <M> S3 Savage 4                           
      <M> NatSemi SCx200 I2C using GPIO pins    
      (12)  GPIO pin used for SCL               
      (13)  GPIO pin used for SDA               
      <M> NatSemi SCx200 ACCESS.bus   
      <M> SiS 5595                    
      <M> SiS 630/730                 
      <M> SiS 96x                     
      < > I2C/SMBus Test Stub         
      <M> VIA 82C586B                 
      <M> VIA 82C596/82C686/823x
      <M> Voodoo 3              
      < > PCA9564 on an ISA bus  
apt-get install lm-sensors
modprobe i2c-dev
sensors-detect

Für ein ASUS P4B800 sollte die Ausgabe am Schluß so aussehen:

To make the sensors modules behave correctly, add these lines to
/etc/modules:

#----cut here----
# I2C adapter drivers
i2c-i801
i2c-isa
# I2C chip drivers
eeprom
w83627hf
#----cut here----

Via modprobe werden nun diese Module geladen. Das sensors-detect-Script frägt, ob es diese Auswahl in die /etc/modules schreiben soll, was man bejat.

Nun erstellt man mit folgendem Kommando die RRD-Datenbank, in die alle Daten eingetragen werden

rrdtool create /var/lib/rrd/lm-sensors/temperatur.rrd \
  DS:cputemp:GAUGE:600:U:U \
  DS:mbtemp:GAUGE:600:U:U  \
  RRA:AVERAGE:0.5:1:5040 \
  RRA:AVERAGE:0.5:12:9600

Dieses Script via Cron alle 5 Minuten aufrufen:

#!/bin/sh

RRDFILE=/var/lib/rrd/lm-sensors/temperatur.rrd
GRAPHFILE=/var/www/lm-sensors/temperatur.png

CPUTEMP=`sensors|grep "CPU Temp"|sed 's/CPU Temp: *+\([0-9]\+\).*/\1/'`
MBTEMP=`sensors|grep "M\/B Temp"|sed 's/M\/B Temp: *+\([0-9]\+\).*/\1/'`

rrdtool update $RRDFILE -t cputemp:mbtemp N:$CPUTEMP:$MBTEMP

rrdtool graph $GRAPHFILE -v "System Temperatur" \\
  DEF:cputemp=$RRDFILE:cputemp:AVERAGE LINE2:cputemp#00FF00:"CPU" \\
  DEF:mbtemp=$RRDFILE:mbtemp:AVERAGE LINE2:mbtemp#0000FF:"MB" \\
  HRULE:65#309030:"WARNING" \\
  COMMENT:"\\n" COMMENT:"`date +\\"%b %d %H:%M:%S %Y\"`\\r"  \\
  -w 600 -h 200 -a PNG

2 Gedanken zu „Mit lm-sensors und rrd CPU und MB-Temperatur überwachen

  1. Ab Version 1.2 der rrdtools funktioniert „rrdtool graph“-Aufruf, so wie er hier dargestellt wird nicht mehr. Man muss ab Version 1.2 die Dopplepunkte im COMMENT escapen:
    COMMENT:“`date +\“%b %d %H\:%M\:%S %Y\“`\r“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.