Plugin für Digitemp in munin
Plugin für Digitemp in munin
Hallo!
Ich habe versucht die Daten meiner 1-Wire Temperatursensoren mit der Software Munin zu erfassen. Die Sensoren werden von mir mit Digitemp ausgelsen. Dazu habe ich folgendes Plugin erstellt (Modularer Aufbau wäre besser, es geht aber erstmal ja nur um die Funktion).
http://nopaste.debianforum.de/4279
Sowohl auf der Console, als auch mit munin-run lässt sich das Plugin ausführen, gibt auch richtige Daten zurück. Per Telnet mit fetch kommt nur
sensor0.value
sensor1.value
Die Werte werden aber nicht ausgegeben. Deshalb werden auch keine Graphen erstellt.
Kann mir jemand helfen??
Vielen Dank!
Ich habe versucht die Daten meiner 1-Wire Temperatursensoren mit der Software Munin zu erfassen. Die Sensoren werden von mir mit Digitemp ausgelsen. Dazu habe ich folgendes Plugin erstellt (Modularer Aufbau wäre besser, es geht aber erstmal ja nur um die Funktion).
http://nopaste.debianforum.de/4279
Sowohl auf der Console, als auch mit munin-run lässt sich das Plugin ausführen, gibt auch richtige Daten zurück. Per Telnet mit fetch kommt nur
sensor0.value
sensor1.value
Die Werte werden aber nicht ausgegeben. Deshalb werden auch keine Graphen erstellt.
Kann mir jemand helfen??
Vielen Dank!
hi,
probier mal:
damit sollten Fehlermeldungen auch per telnet zu sehen sein.
probier mal:
Code: Alles auswählen
echo sensor0.value `/usr/bin/digitemp_DS9097 -t 0 -q -o %.2C 2>&1`
Beware of programmers who carry screwdrivers.
Wahrscheinlich laeuft das Plugin unter verschiedenen Usern,
je nachdem wie du es aufrufst. Alle muessen in der Gruppe
"dialout" sein und ls sollte ungefaehr das anzeigen:
oder eben ttyUSBx, wenn's ueber einen USB-Adapter geht.
Wie funktioniert dieses "telnet fetch" eigentlich? Telnet kenn'
ich schon, aber "fetch"? Ist das eine munin- oder eine digitemp-
Angelegenheit?
je nachdem wie du es aufrufst. Alle muessen in der Gruppe
"dialout" sein und ls sollte ungefaehr das anzeigen:
Code: Alles auswählen
ls -l /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 Oct 6 2005 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Oct 10 21:39 /dev/ttyS1
Wie funktioniert dieses "telnet fetch" eigentlich? Telnet kenn'
ich schon, aber "fetch"? Ist das eine munin- oder eine digitemp-
Angelegenheit?
Beware of programmers who carry screwdrivers.
Hallo!
Per Telnet komme ich mit Port 4949 an die Schnittstelle, über die Munin die Daten abholt.
Dort gibt es das Kommando fetch in verbidnung mit dem Namen des munin Plugins.
Laut Anleitung sollte munin-run mit den gleichen Rechten wie das Telnet Programm arbeiten, deshalb wundert mich das. Wie finde ich denn heraus, welchen Benutzer ich zu diers Gruppe hinzufügen muss.
Kann ich alle Benutzer zu dieser Gruppe hinzufügen??
MfG
Danke!
Per Telnet komme ich mit Port 4949 an die Schnittstelle, über die Munin die Daten abholt.
Dort gibt es das Kommando fetch in verbidnung mit dem Namen des munin Plugins.
Laut Anleitung sollte munin-run mit den gleichen Rechten wie das Telnet Programm arbeiten, deshalb wundert mich das. Wie finde ich denn heraus, welchen Benutzer ich zu diers Gruppe hinzufügen muss.
Kann ich alle Benutzer zu dieser Gruppe hinzufügen??
MfG
Danke!
ja hallo!
eigentlich wollte ich munin schon immer mal installieren, jetzt muss es
wohl wirklich sein Aber gerade jetzt mit GSM-Internet...
probieren wir nochmal sowas:
sollte einen Hinweis auf Port 4949 (in der Spalte "Local Address")
oder auf munin (in der Spalte "PID/Program name") liefern. Da steht
dann in der Spalte "User" entweder root (dann Pech gehabt) oder
eben $USER. Mit
und einem Neustart des Daemons könnte es besser werden.
Indem man alle Benutzer der Gruppe hinzufügt, bringt man das evt. zum
Laufen, aber auf einem System mit mehr als einem Benutzer möchte man
sowas wirklich vermeiden. Notfalls kurzzeitig zur Fehlersuche meinetwegen,
aber nicht vergessen, das wieder rückgängig zu machen.
eigentlich wollte ich munin schon immer mal installieren, jetzt muss es
wohl wirklich sein Aber gerade jetzt mit GSM-Internet...
probieren wir nochmal sowas:
Code: Alles auswählen
netstat -tulpe
oder auf munin (in der Spalte "PID/Program name") liefern. Da steht
dann in der Spalte "User" entweder root (dann Pech gehabt) oder
eben $USER. Mit
Code: Alles auswählen
addgroup $USER dialout
Indem man alle Benutzer der Gruppe hinzufügt, bringt man das evt. zum
Laufen, aber auf einem System mit mehr als einem Benutzer möchte man
sowas wirklich vermeiden. Notfalls kurzzeitig zur Fehlersuche meinetwegen,
aber nicht vergessen, das wieder rückgängig zu machen.
Beware of programmers who carry screwdrivers.
Gelöst
Mit folgeden Skript geht es jetzt - der Trick bestand darin, dass auch die Konfigurationsdatei des Digitemp-Tools entsprechende Rechte benötigt, nicht nur die Serielle Schnittstelle.
#!/bin/sh
#
if [ "$1" = "config" ]; then
echo 'graph_title Digitemp Sensors'
echo 'graph_args --upper-limit 100 -l 0'
echo 'graph_vlabel Celsius'
echo 'graph_category Temperature'
echo 'graph_info This Graph shows Digitemp Sensors.'
echo 'sensor0.label Sensor 0 Wasserspeicher'
echo 'sensor0.info Warmwasserspeicher.'
echo 'sensor0.draw LINE2'
echo 'sensor1.label Sensor 1 Serveraum'
echo 'sensor1.info Serveraum'
echo 'sensor1.draw LINE2'
exit 0
fi
echo sensor0.value `digitemp -t 0 -q -c /etc/digitemp.conf -o %.2C`
echo sensor1.value `digitemp -t 1 -q -c /etc/digitemp.conf -o %.2C`
#!/bin/sh
#
if [ "$1" = "config" ]; then
echo 'graph_title Digitemp Sensors'
echo 'graph_args --upper-limit 100 -l 0'
echo 'graph_vlabel Celsius'
echo 'graph_category Temperature'
echo 'graph_info This Graph shows Digitemp Sensors.'
echo 'sensor0.label Sensor 0 Wasserspeicher'
echo 'sensor0.info Warmwasserspeicher.'
echo 'sensor0.draw LINE2'
echo 'sensor1.label Sensor 1 Serveraum'
echo 'sensor1.info Serveraum'
echo 'sensor1.draw LINE2'
exit 0
fi
echo sensor0.value `digitemp -t 0 -q -c /etc/digitemp.conf -o %.2C`
echo sensor1.value `digitemp -t 1 -q -c /etc/digitemp.conf -o %.2C`