Plugin für Digitemp in munin

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
noname234
Beiträge: 74
Registriert: 23.02.2006 20:41:23

Plugin für Digitemp in munin

Beitrag von noname234 » 08.10.2006 20:04:10

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!

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 08.10.2006 21:48:20

hi,

probier mal:

Code: Alles auswählen

echo sensor0.value `/usr/bin/digitemp_DS9097 -t 0 -q -o %.2C 2>&1`
damit sollten Fehlermeldungen auch per telnet zu sehen sein.
Beware of programmers who carry screwdrivers.

noname234
Beiträge: 74
Registriert: 23.02.2006 20:41:23

Beitrag von noname234 » 10.10.2006 21:06:59

Vielen Dank für deine Hilfe - jetzt wird per Telnet folgendes ausgegeben:

sensor0.value Error, you don't have +rw permission to access

Der Aufruf per munin-run geht nach wie vor.

Wem muss ich denn noch zugriff auf das Device einräumen??

Danke!

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 10.10.2006 21:43:43

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:

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
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?
Beware of programmers who carry screwdrivers.

noname234
Beiträge: 74
Registriert: 23.02.2006 20:41:23

Beitrag von noname234 » 16.10.2006 21:22:26

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!

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 16.10.2006 23:14:10

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:

Code: Alles auswählen

netstat -tulpe
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

Code: Alles auswählen

addgroup $USER dialout
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.
Beware of programmers who carry screwdrivers.

noname234
Beiträge: 74
Registriert: 23.02.2006 20:41:23

Beitrag von noname234 » 18.10.2006 21:04:24

Also ich hab das jetzt mal so probiert. Leider finde ich auf 4949 keinen Hinweis, nur den munin als name. Der Benutzer laut Übersicht ist leider root ;-)...

noname234
Beiträge: 74
Registriert: 23.02.2006 20:41:23

Beitrag von noname234 » 26.10.2006 18:13:19

Kann mir keiner einen Tipp geben??

Danke!

noname234
Beiträge: 74
Registriert: 23.02.2006 20:41:23

Gelöst

Beitrag von noname234 » 29.10.2006 19:45:56

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`

Antworten