Mit ‘rrd’ Tagged einträge

Pool Temperatursennsor Teil 2

Mittwoch, Mai 15th, 2013

Da die Hardware nun Funktionierte wollte ich natürlich auch schöne RRD Graphen erstellen. Alles was man dafür braucht das Debian Weezey Image für den PI und Installiertes RRD:
apt-get install rrdtool

Dazu müssen die folgenden Module geladen sein:
modprobe wire
modprobe w1_gpio
modprobe w1_therm

Dieses Script such nun automatisch alle 1-Wire Sensoren ab und erstelle für sie ein RRD Graph.

#!/bin/bash

rrddata=/usr/local/rrd
rrdimg=/var/www/img

if [ ! -d "/sys/bus/w1/devices/w1_bus_master1/" ]; then
	echo "dir not exist: /sys/bus/w1/devices/w1_bus_master1/ kernel module laden?"
	echo "  modprobe wire; modprobe w1_gpio; modprobe w1_therm"
	exit 1
fi
if [ ! -e "/usr/bin/rrdtool" ]; then
	echo "rrdtool not installd"
	exit 1
fi

for dev in $(ls /sys/bus/w1/devices/w1_bus_master1/ | grep ^10 ); do 
	echo $dev
	if [ ! -e "$rrddata/$dev.rrd" ]; then
		echo "create: $rrddata/$dev.rrd"
		if [ ! -d "$rrddata" ]; then
			mkdir -pv "$rrddata"
		fi
		rrdtool create "$rrddata/$dev.rrd" --step 60 \
                        DS:celsius:GAUGE:600:U:U \
                        RRA:AVERAGE:0.5:1:2880 \
                        RRA:AVERAGE:0.5:60:700 \
			RRA:AVERAGE:0.5:240:720 \
			RRA:AVERAGE:0.5:1440:730 || exit 1
	fi

	temperatur=$(grep 't=' /sys/bus/w1/devices/w1_bus_master1/$dev/w1_slave | awk -F '=' '{print $2}')
	echo "$temperatur"
	/usr/bin/rrdupdate "$rrddata/$dev.rrd" N:$temperatur

	if [ ! -d $rrdimg ]; then
		mkdir -p "$rrdimg"
	fi
	/usr/bin/rrdtool graph $rrdimg/$dev.png -a PNG -w 1000 -h 300 -M -s -129600 -v "Grad Celsius" \
                "DEF:c=$rrddata/$dev.rrd:celsius:AVERAGE" \
                "CDEF:gc=c,1024,/" \
                "AREA:gc#00FF00:Grad Celsius" \
                "GPRINT:gc:LAST:Last \:    %3.2lf °C" \
                "GPRINT:gc:AVERAGE:Average \: %3.2lf °C" \
                "GPRINT:gc:MIN:Min \: %3.2lf °C" \
                "GPRINT:gc:MAX:Max \: %3.2lf °C"
done

exit 0

Das Script habe ich dann in crontab -e eingetragen, so das es Jede Minute ausgeführt wird. Damit meine CF Karte dabei nicht kaputt geschrieben wird habe ich für das erstelle Image eine tmpfs angelegt. Für mein Beispiel habe ich in der /etc/fstab
tmpfs /var/www/img tmpfs defaults,size=2M 0

10-0008028994f4

[Update]
mit einem Kernel Update waren plötzlich alle Sensoren verschwunden. Hierfür musste man die in der /boot/config.txt folgenden Option hinzufügen.

dtoverlay=w1-gpio

RRD Graphen über SNMP erstellen

Sonntag, Januar 30th, 2011

Hier Dokumentire ich mal wie wir im Wohnheim den Cisco Catalist 4006 über SNMP abfragen um RRD Graphen zu erstellen. Zuerst muss man auf den Cisco natürlich SNMP einschalten und ein Passwort Sätzen.

snmp-server community password RO
snmp-server enable traps tty

Als erstes müssen vollende Pakete installiert werden:
apt-get install php-cli snmp rrdtool

Dann habe ich ein Script geschrieben das die insgesamt 195 Port abfragt.

#!/usr/bin/php5

Das ganze sieht dann so aus, hier ist der Aktelle Graph des Netzwerk Trafik des Wohnheims:
network traffic

Ich könnte mir den ganzen Tag Statistiken anschauen.

Freitag, Januar 11th, 2008

Aber erst mal will ich hier beschreiben, wie das geht. Zunächst müssen einige Pakete installiert werden. Dazu gehören der collectd der die Logfils erstellt. Nicht wundern der verbraucht ein bisschen Leistung und taucht ab und zu in der top auf. Dann die rrdtools, die daraus dann schöne 2D Bilder machen. Optional für alle die es morgens früh in ihrem Postfach liegen haben wollen mime-construct und sendmail zum Versenden.

apt-get install collectd collectd-sensors collectd-dev collectd-hddtemp collectd-ping rrdtool

Achtung! Falls Postfix oder bereits ein anderer E-Mail-Server installiert ist könnt ihr die Installation von, sendmail weglassen.
apt-get install mime-construct sendmail

Optionale Pakete für Collectd um weiter Werte mitzuloggen. Es gibt aber noch viel mehr.
collectd-apache collectd-mysql collectd-sensors collectd-dev collectd-hddtemp collectd-ping librrds-perl defoma-doc psfontmgr x-ttcidfont-conf dfontmgr libfreetype6-dev

Die folgenden Scripte für Log und E-Mail in das Verzeichnis /root/collectd speichern. Darin muss dann noch ein log/ Ordner vorhanden sein.
rrdtool_scripte.tar.gz

nice -n 19 /root/collectd/log.sh > /dev/null && nice -n 19 /root/collectd/mail_log.sh > /dev/null

Die Nice ist schon fast überflüssig, da die Abarbeitung sehr schnell geht. So kann der Befehl dann auch in einer Cron verwendet werden.

Dann nicht vergessen noch einmal rechte drüber zu bügeln:
chmod 0700 /root/collectd/ -r

Das ganze sieht dann beispielsweise so aus:

Wenn ihr Scripte für rrdtools erstellt habt könnt ihr sie mir gerne mal E-Mailen, Support kann ich aber nicht geben.