munin: Graph wird nicht angezeigt

djrick

Registered User
Genau deswegen überlege ich ob dieser Teil vllt nicht richtig ist:
Code:
	echo 'graph_title Temperature of RAID-Controller'
	echo 'graph_args --base 1000 -l 0 '
	echo 'graph_vlabel Temperature'
	echo 'graph_category Disk'
	echo 'graph_order temp1'
	echo 'graph_info This graph shows the temperature of the RAID-Controller.'
	echo 'temp1.label Temperature C'
 	echo 'temp1.draw LINE1'
	exit 0
 

wstuermer

Blog Benutzer
ich weiß gerade nicht ganz, worauf du zielst, aber die ausgelesen Werte werden in den weiteren Pipes soweit zerlegt, dass nur noch die jeweilige Ganzzahl übergeben wird. Was hinter der Dezimaltrennung steht, interessiert mich relativ wenig.

Von daher dürfte das meiner Meinung nach keinen Unterschied machen. Ich lasse mich jedoch gerne eines Besseren belehren ;)
 

djrick

Registered User
Hmm wie gesagt, ich rate im Moment auch mehr.
Meine Überlegung:
Diesen Teil:
Code:
	echo 'graph_title Temperature of RAID-Controller'
	echo 'graph_args --base 1000 -l 0 '
	echo 'graph_vlabel Temperature'
	echo 'graph_category Disk'
	echo 'graph_order temp1'
	echo 'graph_info This graph shows the temperature of the RAID-Controller.'
	echo 'temp1.label Temperature C'
 	echo 'temp1.draw LINE1'
Hast du von einem Graphen abgeschrieben der Kommazahlen behandelt.

Der einzige Unterschied zwichen dem RAID Script und dem CPU Temp Script ist:
Das eine sind Ganze zahlen, das andere Kommazahlen.

Vielleicht müsste man dann also etwas hier irgendwo ändern:
Code:
	echo 'graph_title Temperature of RAID-Controller'
	echo 'graph_args --base 1000 -l 0 '
	echo 'graph_vlabel Temperature'
	echo 'graph_category Disk'
	echo 'graph_order temp1'
	echo 'graph_info This graph shows the temperature of the RAID-Controller.'
	echo 'temp1.label Temperature C'
 	echo 'temp1.draw LINE1'
Da dieser Teil ja relevant für die Erstellung der RRDs ist.

Mein Gedankengang ist der:
Dieser Code erzeugt ein RRD das eine Kommzahl erwartet aber eine Ganz-Zahl bekommt und deswegen eventuell NAN schreibt.
 

wstuermer

Blog Benutzer
wie flobbie schon sagte, interessieren mich Nachkomma-Stellen nicht, weil ich den Wert ja erst auf Ganzzahlen zerhacke, bevor die Variable den zum Übergeben bekommt.
Und das Script welches ich als Quelle für meine Scripte genommen habe, hatte auch Ganzzahlen gemacht. Das ist das iptables--Script von Firewire2002 vom Honeypot gewesen.
 
Last edited by a moderator:

djrick

Registered User
hmmm naja wenn dann könnte es ja auch nur die Zeile sein in der es um die graph_args geht.

Ich hab mir das mal angesehen:
graph_args - Munin - Trac

Wo ist denn der Unterschied zwichen base 1000 und 1024. Was sind SI Units?

Achja noch etwas was man überprüfen könnte:
Welche Testwerte hast du genommen mit denen es klappte?
Nimm doch mal als feste Werte: 41 und 42, also das was eigentlich dem entspräche was eigentlich auch im Graphen stehen soll, vielleicht stoßen wir mit der 41 ja an eine obere Schranke.
 
Last edited by a moderator:

djrick

Registered User
Dann beachte mal meinen Edit...ich würde es sogern auf einem eigenen Testsystem austesten, aber ich hab keinen Raidcontroller auf meiner Spielwiese ;)
 

wstuermer

Blog Benutzer
42 manuell übergeben und schon wird der Graph richtig dargestellt. Also keine Grenze, an die wir stoßen :cool:
 

djrick

Registered User
Ganz dumme Frage:
Als welcher User wird das Script ausgeführt? Vllt liefert das arcconf ja wirklich nichts ;)
 

wstuermer

Blog Benutzer
arcconf liefert was. und dank Brainstoming im IRC sind wir nun soweit, dass da Hirse kommt. Hier mal das Script, wie es aktuell ist.

Code:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

if [ "$1" = "autoconf" ]; then
	echo yes 
	exit 0
fi

if [ "$1" = "config" ]; then
	echo 'graph_title Temperature of RAID-Controller'
	echo 'graph_args --base 1000 -l 0'
	echo 'graph_vlabel Temperature'
	echo 'graph_category Disk'
	echo 'graph_order temp1'
	echo 'graph_info This graph shows the temperature of the RAID-Controller.'
	echo 'temp1.label Temperature C'
 	echo 'temp1.draw LINE1'
	exit 0
fi

$temperature=`/usr/local/bin/arcconf GETCONFIG 1 AL | grep Temperature | awk '{ print $3 }'`
echo $temperature >/tmp/hddtemp
echo `cat /tmp/hddtemp`
Wenn ich das jetzt von Hand ausführe:

Code:
kerneloops:~# /usr/share/munin/plugins/hddtemp
/usr/share/munin/plugins/hddtemp: line 21: =41: command not found
und die /tmp/hddtemp bleibt leer, weil das Script abbricht.
 

wstuermer

Blog Benutzer
Nach fast 2 Stunden Brainstorming passiert nun genau dass, was ich erwarte...

Hier das aktuelle Script, welches die Werte richtig weitergibt und somit auch die Graphen richtig erstellt werden.

Code:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

if [ "$1" = "autoconf" ]; then
	echo yes 
	exit 0
fi

if [ "$1" = "config" ]; then
	echo 'graph_title Temperature of RAID-Controller'
	echo 'graph_args --base 1000 -l 0'
	echo 'graph_vlabel Temperature'
	echo 'graph_category Disk'
	echo 'graph_order temp1'
	echo 'graph_info This graph shows the temperature of the RAID-Controller.'
	echo 'temp1.label Temperature C'
 	echo 'temp1.draw LINE1'
	exit 0
fi

temperature=`/usr/local/bin/arcconf GETCONFIG 1 AL | grep Temperature | awk '{ print $3 }'`
echo $temperature >/tmp/hddtemp
echo "temp1.value" `cat /tmp/hddtemp`
Das ist nun sicher nicht der sauberste Code, aber er erfüllt das erwartete Ziel :)

An der Stelle sei auch nochmal ein besonderer Dank an flobbie gerichtet, der im Brainstorming irgendwann diese Lösung hatte :)
 
Top