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

March 24th, 2007 Leave a comment Go to comments

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
  1. kp
    March 24th, 2007 at 00:41 | #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”

  2. Franz
    July 21st, 2009 at 13:58 | #2

    Danke. Ich habe heute genau das gesucht (und gefunden).

  1. No trackbacks yet.