[Tutorial] CPU, RAM & Temperatur Monitoring mit dem Raspberry Pi, einem DS18S20 und MRTG
Hallo zusammen,
vor einiger Zeit habe ich ein Tutorial geschrieben, wie man MRTG auf dem Raspberry zum laufen bekommt. Allerdings habe ich nur beschrieben, wie man seine LAN-Schnittstelle monitored – nun wird es Zeit für mehr!
Diesmal erzeugen wir hübsche Grafiken für die CPU Auslastung & Temperatur, RAM Auslastung & freier RAM und wer dann noch nicht genug hat und bereits einen DS18S20 Temperatur Sensor sein eigen nennt, bekommt gezeigt wie man auch die Temperaturwerte mit MRTG erfasst. Ein eigenes Tutorial zum Anschluss und Inbetriebnahme des Sensors gibt es hier:
DS18S20 Temperatur Sensor an einem Raspberry Pi
Genug der Worte, los gehts!
Voraussetzung ist natürlich, dass MRTG bereits läuft. Sollte dies nicht der Fall sein, gibt es HIER mein erstes Tutorial dazu.
Um es etwas einfacher zu machen, installieren wir zuerst das Paket snmp-mibs-downloader, außerdem brauchen wir das Paket bc für die Berechnung der CPU Temperatur und des Temp-Sensors:
sudo aptitude update
sudo aptitude install snmp-mibs-downloader bc
Um das Mibs Paket zu nutzen, müssen wir noch die Datei /etc/default/snmpd in Zeile 5 ergänzen.
Aus
export MIBS=
wird
export MIBS=UCD-SNMP-MIB
Außerdem ergänzen wir /etc/snmp/snmpd.conf am Ende um
# Don’t log incoming connections, denied connections are still send to syslog.
dontLogTCPWrappersConnects true
da unser syslog sonst jede Minute mit ca. 20 Meldungen a la Connection from UDP: [127.0.0.1]:45123->[127.0.0.1] zugespamt wird. Weitere Infos zu den (Logging-)Parametern von snmpd gibt es HIER und HIER.
Nun noch den Dienst neu starten
sudo /etc/init.d/snmpd restart
Los gehts! Neue Ziele die wir monitoren wollen, müssen wir in /etc/mrtg.cfg eintragen. Am komfortabelsten öffnen wir die Datei unter Windows mit WinSCP (eigenes kleines Tutorial HIER).
In der Reihenfolge, in der wir die neuen Ziele eintragen, werden sie später auf der MRTG Index Seite angezeigt. Falls ihr also lieber die CPU Temperatur als erste Grafik haben möchtet, so muss diese auch am Anfang aller Ziele stehen.
[INFO] Die Werte sind für den Raspberry Pi mit 256MB Ram, wovon 16MB der Grafikeinheit zugeordnet wurden. Für die 512MB Version mit gleicher Ramaufteilung ist der Wert 509485056 anstatt 242565120. Lässt sich mit
free -b
leicht herausfinden. Der Wert unter Total entspricht dem verwendbaren Ram. Mit -m kann man übrigens den Wert auch in Megabyte ausgeben lassen.
Hier übrigens nicht errschrecken, der angezeigte, freie Ram ist nicht wirklich so wenig wie es auf den ersten Blick scheint. Den „echten“ Wert findet ihr in der zweiten Zeile -/+ buffers/cache unter free. Linux cached mit der Zeit Dateien die häufig genutzt werden im Ram und kann diesen, falls mehr Ram benötigt, wieder schnell frei räumen. Eine detaillierte Beschreibung auf Englisch gibt es hier: www.linuxatemyram.com/.
1. CPU Auslastung
### CPU Usage
LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB,/var/lib/mibs/ietf/HOST-RESOURCES-MIB
Target[localhost.cpu]: ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: Raspberry Pi Server – CPU Load
PageTop[localhost.cpu]:<h1>Raspberry Pi Server – Active CPU Load %</h1>
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent
2. RAM Auslastung
### Memory Usage
LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB,/var/lib/mibs/ietf/HOST-RESOURCES-MIB
Target[localhost.mem_used]: 242565120 – ((memAvailReal.0&memAvailReal.0:public@localhost) * 1024)
Title[localhost.mem_used]: Raspberry Pi Server – Used Memory
PageTop[localhost.mem_used]:<h1>Raspberry Pi Server – Used Memory</h1>
Options[localhost.mem_used]: growright,gauge,nopercent,transparent,noo,nolegend
MaxBytes[localhost.mem_used]: 242565120
Unscaled[localhost.mem_used]: dwmy
kilo[localhost.mem_used]: 1024
ShortLegend[localhost.mem_used]: MegaBytes
YLegend[localhost.mem_used]: Mem Used
LegendI[localhost.mem_used]: Used Memory:
3. Freier RAM (ohne Swap)
### Memory Free, not including swap
LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB,/var/lib/mibs/ietf/HOST-RESOURCES-MIB
Target[localhost.mem_free]: (1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost) * 1024
PageTop[localhost.mem_free]:<h1>Raspberry Pi Server – Free Memory (without Swap)</h1>
Title[localhost.mem_free]: Raspberry Pi Server – Free Memory (without Swap)
Options[localhost.mem_free]: growright,gauge,nopercent,transparent,noo,nolegend
MaxBytes[localhost.mem_free]: 242565120
kilo[localhost.mem_free]: 1024
Unscaled[localhost.mem_free]: dwmy
YLegend[localhost.mem_free]: Mem Free
ShortLegend[localhost.mem_free]: MegaBytes
LegendI[localhost.mem_free]: Free Memory:
LegendO[localhost.mem_free]:
Legend1[localhost.mem_free]: Free memory, not including swap, in MegaBytes
4. Wirklich freier RAM (Freier Ram + Buffer + Cache, ohne Swap)
### Total Memory Free (Free memory + Buffer + Cache, not including swap)
LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB,/var/lib/mibs/ietf/HOST-RESOURCES-MIB
Target[localhost.mem_total_free]: ((1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost)+(1.3.6.1.4.1.2021.4.14.0&.1.3.6.1.4.1.2021.4.14.0:public@localhost)+(1.3.6.1.4.1.2021.4.15.0&.1.3.6.1.4.1.2021.4.15.0:public@localhost)) * 1024
PageTop[localhost.mem_total_free]:<h1>Raspberry Pi Server – Total Free Memory (without Swap)</h1>
Title[localhost.mem_total_free]: Raspberry Pi Server – Total Free Memory (without Swap)
Options[localhost.mem_total_free]: growright,gauge,nopercent,transparent,noo,nolegend
MaxBytes[localhost.mem_total_free]: 242565120
kilo[localhost.mem_total_free]: 1024
Unscaled[localhost.mem_total_free]: dwmy
YLegend[localhost.mem_total_free]: Mem Free
ShortLegend[localhost.mem_total_free]: MegaBytes
LegendI[localhost.mem_total_free]: Free Memory:
LegendO[localhost.mem_total_free]:
Legend1[localhost.mem_total_free]: Free memory + Buffer + Cache, not including swap, in MegaBytes
5. CPU Temperatur
Hierzu benötigen wir ein extra Skript. In meinem Fall liegt es unter /home/pi/skripte/mrtg/. Dazu eine neue Datei namens cpu_temp_auslesen.sh anlegen und den folgende Skript-Schnipsel hineinkopieren.
1 2 3 4 5 6 7 8 9 | #!/bin/bash # Read cpu temperature tempread=`cat /sys/class/thermal/thermal_zone0/temp` temp=`echo "scale=2; $tempread / 1000" | bc` # Wert ausgeben echo $temp echo 0 echo 0 echo temperature |
Wichtig: Die Datei muss ausführbar sein:
chmod 750 /home/pi/skripte/mrtg/cpu_temp_auslesen.sh
Der folgende Teil kommt nun wieder in die mrtg.cfg:
### CPU Temperature Raspberry
TimeStrPos[localhost.cpu_temp]: RU
Target[localhost.cpu_temp]: `/home/pi/skripte/mrtg/cpu_temp_auslesen.sh`
Options[localhost.cpu_temp]: gauge,growright,nopercent,expscale,transparent
Title[localhost.cpu_temp]: Raspberry Pi Server – CPU Temperatur
PageTop[localhost.cpu_temp]:
<h1>Raspberry Pi Server – CPU Temperatur</h1>
MaxBytes[localhost.cpu_temp]: 125
Step[localhost.cpu_temp]: 60
Legend1[localhost.cpu_temp]: CPU Temperatur Raspberry Pi Server
LegendI[localhost.cpu_temp]: CPU Temperatur
LegendO[localhost.cpu_temp]:
YLegend[localhost.cpu_temp]: Grad Celsius
ShortLegend[localhost.cpu_temp]: Grad °C
6. DS18S20 Temperatur Sensor
Hierzu benötigen wir wieder ein extra Skript. Es liegt wieder unter /home/pi/skripte/mrtg/. Diesmal eine neue Datei namens update_mrtg_temp.sh anlegen und den folgende Skript-Schnipsel hineinkopieren. 10-0000008a5c35 ist die ID meines Sensors und muss natürlich durch die ID von eurem ersetzt werden!
Wie man den Sensor anschließt seht ihr in diesem Tutorial: DS18S20 Temperatur Sensor an einem Raspberry Pi
Hier nun das Script:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash # Read temperature from sensor tempread=`cat /sys/bus/w1/devices/10-0000008a5c35/w1_slave` temp=`echo $tempread | egrep -o '.{5}$'` temp2=`echo "scale=2; $temp / 1000" | bc` # Update database echo $temp2 echo 0 echo 0 echo temperature |
Wichtig: Die Datei muss wieder ausführbar sein:
chmod 750 /home/pi/skripte/mrtg/cpu_temp_auslesen.sh
Der folgende Teil kommt nun wieder in die mrtg.cfg:
######################################################################
# System: DS18S20 Temperatur Sensor
# Contact: root
# Location: attached to Raspberry Pi
######################################################################### DS18S20 Temperatur SensorWohnzimmer
TimeStrPos[temp_wohnzimmer]: RU
Target[temp_wohnzimmer]: `/home/pi/skripte/mrtg/update_mrtg_temp.sh`
Options[temp_wohnzimmer]: gauge,growright,nopercent,expscale,transparent
Title[temp_wohnzimmer]: Temperatur Wohnzimmer
PageTop[temp_wohnzimmer]:
<h1>Temperatur Wohnzimmer</h1>
MaxBytes[temp_wohnzimmer]: 125
Step[temp_wohnzimmer]: 60
Legend1[temp_wohnzimmer]: Gemessene Temperatur im Wohnzimmer
LegendI[temp_wohnzimmer]: Innentemperatur
LegendO[temp_wohnzimmer]:
YLegend[temp_wohnzimmer]: Grad Celsius
ShortLegend[temp_wohnzimmer]: Grad °C
Wie immer gilt, falls das Tutorial gefallen hat würde ich mich über einen kleinen Kommentar freuen – das gleiche gilt natürlich auch für Kritik oder Verbesserungsvorschläge 😀 Natürlich dürft ihr auch gerne euren Adblocker auf Kopfkino deaktivieren und den kleinen Banner am Ende des Posts klicken – ist aber natürlich absolut freiwillig 😉 Die Werbung ist dezent gehalten und es gibt keine nervigen Flashbanner oder ähnliches 🙂 Einnahmen kommen vollständig der Finanzierung unseres Servers zu Gute 😀
Gruß iro
[Last Edit: 07.05.2014]
Ich habe die Schritte oben soweit durchgeführt.
Jedoch werden die RRD s nicht Verzeichnis /var/www/mrtg angelegt noch gibt mir die /cgi-bin/mrtg-rrd.cgi bringt keine Änderung zu den schritten auf deiner Seite welche ich im Vorfeld ausgeführt habe.
Grüße
Marc
Hey Marc,
bitte zuerst fastCGI deaktivieren und nochmal probieren. Gibt es Fehler in Logs? Wie sieht deine mrtg.cfg genau aus? Läuft MRTG überhaupt noch? -> ps -Af | grep mrtg
Ist immer etwas schwierig mit so wenigen Infos 😉
Gruß iro
Da ich von der Windowsseite komme habe ich so meine Probleme die richtigen Logs zu finden und diese zu interpretieren.
ps -Af | grep mrtg ergiebt
root 2212 1 0 18:45 ? 00:00:00 /usr/bin/perl -w /usr/bin/mrtg /etc/mrtg.cfg
pi 2363 2325 0 19:03 pts/0 00:00:00 grep –color=auto mrtg
und meine mrtg.cfg
Grüße
Marc
Ok, mrtg scheint zu laufen. ### Memory Free hast du 2x drin und komischweiße fehlt das WorkDir. Füg mal bitte am Anfang, vor IconDir, noch folgendes ein
WorkDir: /var/www/mrtg
Das gibt an, wo die rrd-DBs und die Grafiken gespeichert werden.
MRTG muss nicht neu gestartet werden, spätestens nach einer Minute wird die Konfig von selbst neu eingelesen.
Gruß Iro
Hey Marc,
kurze Rückmeldung wäre nett wenn es nun läuft? 😀
Gruß iro
Sorry für die späte Meldung.
Raspberry musste für ein anderes Projekt einspringen und somit bin ich mitten drin stehen geblieben. Sobald mein neuer eintrifft fange ich wieder von vorne an.
Marc
Hi bei mir kommt immer der Fehler :
Error: Parse error in /etc/mrtg.cfg near Raspberry Pi Server – Active CPU Load %
wenn ich den browser öffne
bei dir im text steht drin
„Raspberry Pi Server – Active CPU Load %“
und wenn ich die zeile auskommtiere funktioniert es ausser das die grad zahlen nicht stimmern es steht hier immer nur 2 grad
Hey blubbs,
das hört sich eigentlich danach an, als würde es Probleme mit den HTML Tags geben, evtl. nur ein Copy&Paste Fehler. Allerdings sollte die Ausgabe auch nicht in Grad Celsius, sondern in Prozent erfolgen, schließlich geht es hier nicht um die Temperatur, sondern die Auslastung der CPU.
Poste doch bitte deine Konfig hier oder schick sie mir per Email (siehe Impressum), dass macht das ganze gleich viel einfacher 🙂
Gruß iro
Sind die Werte für die RAM Memory Statistik schon auf das neue 512MB Model berechnet.
Der max Wert 242565120 zeugt eher von 256 MB ?
Die RAM Memory OIDs bekanntermaßen:
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Wieso wird dann bei FreeMem die 1.3.6.1.4.1.2021.4.6.0 abgefragt ??
Das wäre doch eigentlich die 1.3.6.1.4.1.2021.4.11.0 und führt in der Grafik dann auch zu falschen Werten 🙁
snmpwalk localhost -c public -v1 1.3.6.1.4.1.2021.4.6.0
bzw.
snmpwalk localhost -c public -v1 1.3.6.1.4.1.2021.4.11.0
gibt die realen Werte raus die mit der Grafik nicht übereinstimmen.
Alle anderen Werte sind realistisch.
Moin wwinzig,
stimmt, die Werte sind noch für die 256MB Ram Version des Pi. Die Werte für die 512MB Version werde ich demnächst anpassen. Bei den OIDs scheinst du recht zu haben, ich denke mal das war ein Copy&Paste Fehler aus einer alten mrtg.cfg. Schließlich sollten wir dank Mibs auch nicht mehr mit OIDs arbeiten, bei Zahlen bringt man viel eher dreher rein 😉
Ich denke memTotalFree.0 sollte der richtige Wert sein, ergo sollte die Zeile dann
Target[localhost.mem_free]: (memTotalFree.0&memTotalFree.0:public@localhost) * 1024
heißen. Ich werde das allerdings nochmal testen bevor ich das TUT update.
Gruß iro
Moin,
gerade eben die Zeit gefunden die Werte noch einmal zu überprüfen und die RAM Werte für die 512er Version ergänzt.
@wwinzig: 1.3.6.1.4.1.2021.4.11.0 zeigt den freien Ram inkl. Swap an, was meiner Meinung nach nicht sehr hilfreich ist.
1.3.6.1.4.1.2021.4.6.0 zeigt zumindest bei dem Pi den tatsächlichen freien Ram an. Lässt sich leicht mit
free -k
überprüfen. Ram free und Swap free zusammen addiert ergibt den Wert den die OID 1.3.6.1.4.1.2021.4.11.0 ausspuckt. Demnach war das Tut also doch richtig 😉Die in meinem letzten Beitrag gepostete Zeile gibt den selben Wert wie OID 1.3.6.1.4.1.2021.4.11.0 zurück.
Allerdings ist der Wert nur bedingt nützlich, da Linux innerhalb kürzester Zeit Dateien im freien Ram cached und der Wert somit innerhalb kürzester Zeit relativ klein wird. Der logische Wert wäre eigentlich freies Ram + Buffer + Cache. Deshalb hab ich das Tutorial noch um Punkt 4 ergänzt, dass man sich auch diesen Wert anzeigen lassen kann.
Gruß iro
Servus, ich bekomm das Auslesen des DS18b20 nicht hin 🙁
Es wird einfach keine Temperatur aufgezeichnet.
Bei der Installation hab ich nur eine Fehlermeldung mit dem „dontlogtcpwrapper“, den hab ich wieder rausgelöscht. Aber Temp. wird trotzdem keine angezeigt. Was kann ich noch probieren??
Hallo Wolfgang,
da kommen natürlich viele Fehlerquellen in Frage 🙂 Zu aller erst ist die Frage, ob der Sensor richtig angeschlossen ist und erkannt wird. Dazu schaust du unter /sys/bus/w1/devices/ ob du dort die ID deines Sensors siehst. Falls das wi Verzeichnis nicht existiert, dann wurde kein 1-Wire Device erkannt. Falls das der Fall ist, postest du am besten die Anleitung nach der du vorgegangen bist um Verkablungsfehler ausschließen zu können. Bei meinem DS18S20 musste ich z.B. zwischen zwei Beinchen einen Widerstand einlöten. Danach sehen wir weiter 😉
Gruß iro
Hallo,
die Konfiguration passt dank Dir soweit, aber es werden nur die Grafiken für den Netzwerktraffic korrekt angezeigt, die anderen Werte „spukt“ er nur in Textform aus … in der Original mrtg.cfg sind bei den Netzwerk HTML Tags für Tabellen eingebunden, wo könnte der Fehler liegen?
Vielen Dank
Hallo Marcel,
Wenn Daten angezeigt werden, dann scheint immerhin das logging schon zu funktionieren. Schau doch mal ob die Grafiken überhaupt alle erstellt werden. Könnte an einem Rechte Problem liegen. Das mit den Tags verstehe ich allerdings nicht ganz, am besten postest du hier einfach mal deine Konfig und ein Screenshot bei einem externen Hoster schadet natürlich auch nie 😉
Am besten immer so viel Infos posten wie möglich, dann muss man weniger in der Luft stochern 😀
Gruß iro
Hallo irosuarus,
habe mal ein Bildschirmfoto von der Ausgabe erstellt … zu finden unter error.schoenliegen.de.
Hier die config:
# Created by
# /usr/bin/cfgmaker –global „Options[_]: growright“ –global „IconDir: /mrtg“ –global „WriteExpires: Yes“ –global „Language: german“ –global „RunAsDaemon: yes“ –global „EnableIPv6: no“ –global „LogFormat: rrdtool“ –global „Interval: 1“ „–if-filter=$if_admin && $default_iftype“ –output /etc/mrtg.cfg public@localhost
### Global Config Options
# for UNIX
# WorkDir: /home/http/mrtg
# for Debian
WorkDir: /var/www/mrtg
# or for NT
# WorkDir: c:mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
Options[_]: growright
IconDir: /mrtg
WriteExpires: Yes
Language: german
RunAsDaemon: yes
EnableIPv6: no
LogFormat: rrdtool
Interval: 1
######################################################################
# System: raspberrypi
# Description: Linux raspberrypi 3.6.11+ #524 PREEMPT Thu Aug 15 15:48:48 BST 2013 armv6l
# Contact: Me
# Location: Sitting on the Dock of the Bay
######################################################################
### Interface 1 >> Descr: ‚lo‘ | Name: ‚lo‘ | Ip: ‚127.0.0.1‘ | Eth: ‚No Ethernet Id‘ ###
### The following interface is commented out because:
### * it is a Software Loopback interface
### * filter specified by –if-filter rejected the interface
#
# Target[localhost_1]: 1:public@localhost:
# SetEnv[localhost_1]: MRTG_INT_IP=“127.0.0.1″ MRTG_INT_DESCR=“lo“
# MaxBytes[localhost_1]: 1250000
# Title[localhost_1]: Traffic Analysis for 1 — raspberrypi
# PageTop[localhost_1]: Traffic Analysis for 1 — raspberrypi
#
#
#
# System:
# raspberrypi in Sitting on the Dock of the Bay
#
#
# Maintainer:
# Me <me@example.org>
#
#
# Description:
# lo
#
#
# ifType:
# softwareLoopback (24)
#
#
# ifName:
# lo
#
#
# Max Speed:
# 1250.0 kBytes/s
#
#
# Ip:
# 127.0.0.1 (localhost)
#
#
#
…. Auszug
dies ist der vom Tool erstellte Teil, darunter habe ich dann den entsprechenden Part von Deiner config eingefügt.
Eine Idee?
gruss_marcel
WordPress hat wohl die HTML Tags rausgefiltert 🙁 … die config liegt unter error.schoenliegen.de/mrtg.cfg
Danke
Auf den ersten Blick scheint an der Konfig alles zu passen. Sowas hab ich bislang auch noch nicht gesehen 😉 Hilft es evtl. wenn du den Teil für die CPU Auslastung nicht einrückst? Also sprich auch komplett linksbündig machst. Evtl. achtet mrtg da drauf. Falls das nicht hilft schauen wir weiter 😉
Gruß iro
Hallo Iro,
das war es … werde die Konfig noch einmal „durchjagen“ weil die Graphen noch nicht korrekt dargestellt werden … falls es dann noch Probleme gibt werde ich mich melden.
Vielen Dank
Die config und den Screenshot lasse ich online, falls jemand das gleiche Problem haben sollte.
gruss_marcel
Hey Marcel,
schön dass es nun läuft 😀 Haben wir ja beide wieder was gelernt, war mir auch nicht bewusst dass MRTG auch darauf achtet 😉
Gruß iro
Blöde Frage aber wo genau muss ich die Konfigs in der MRTG-RRD.cgi einfügen ?
Ich erkenne in meiner vorhandenen irgendwie gar keine Struktur 😀
Danke!
Hey Marvin,
die mrtg-rrd.cgi muss gar nicht bearbeitet werden, außer du benutzt meine Version die ich zum Download anbiete und möchtest fastCGI abstellen. Generell werden alle Änderungen (z.B. um weitere Graphen anzuzeigen) in der mrtg.cfg gemacht.
Hoffe ich konnte dir weiterhelfen 😀
Gruß
Hallo ich bins nochmal.
Da das mit dem WLAN jetzt klappt hab ich mich noch an die CPU Temp. gemacht. Nachdem ich es eingebunden hatte in der cfg bekomme ich diese Meldung in der MRTG-Anzeige
tempread=`cat /sys/class/thermal/thermal_zone0/temp` temp=`echo “scale=2; $tempread / 1000? | bc` echo $temp echo 0 echo 0 echo temperature
Wenn ich das Temp script manuell ausführe liefert es mir aber den Wert 38470 zurück. Sagt Dir die Fehlermeldung was ?
Gruß
Torsten
Hey Torsten,
das ist das Script, welches die Temperatur abfragt 😉 Wenns auf der HTML Seite mit angezeigt wird, dann ist es nicht richtig in der mrtg.cfg eingetragen. Bitte nochmal die Konfig prüfen.
Gruß iro
Hi iro,
Ich hab meine Config nochmal geprüft und hatte doch tatsächlich den Inhalt des Scripts in die mrtg.cfg gepackt. Naja Anfängerfehler …
Das hab ich jetzt bereinigt. Die mrtg.cfg ist jetz so wie du beschrieben hast.
Leider kommt jetzt dieser Fehler schon beim Starten der mrtg-Anwendung:
pi@raspberrypi ~ $ sudo env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
ERROR: Line 192 (Raspberry Pi Server CPU Temperatur) in CFG file (/etc/mrtg.cfg) does not make sense
Ich denke mal das hängt iregendwie mit der Tastaturbelegung zusammen ?
Hier nochmal meine mrtg.cfg
Übrigens, die CPU Usage hab ich in die cfg auch eingetragen und die taucht in der Webübersicht nicht auf ?!
# Created by
# /usr/bin/cfgmaker –global „Options[_]: growright“ –global „IconDir: /mrtg“ –global „WriteExpires: Yes“ –global „Language: german“ –global „RunAsDaemon: yes“ –global „EnableIPv6: no“ –global „LogFormat: rrdtool“ –global „Interval: 1“ „–if-filter=$if_admin && $default_iftype“ –output /etc/mrtg.cfg public@localhost
### Global Config Options
# for UNIX
# WorkDir: /home/http/mrtg
# for Debian
WorkDir: /var/www/mrtg
# or for NT
# WorkDir: c:mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
Options[_]: growright
WorkDir: /var/www/mrtg
IconDir: /mrtg
WriteExpires: Yes
Language: german
RunAsDaemon: yes
EnableIPv6: no
LogFormat: rrdtool
Interval: 1
######################################################################
# System: Rasperry Pi Ver.B
# Description: Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l
# Contact: Me
# Location: Reichstaedt / Thueringen
######################################################################
### Interface 1 >> Descr: ‚lo‘ | Name: ‚lo‘ | Ip: ‚127.0.0.1‘ | Eth: ‚No Ethernet Id‘ ###
### The following interface is commented out because:
### * it is a Software Loopback interface
### * filter specified by –if-filter rejected the interface
#
# Target[localhost_1]: 1:public@localhost:
# SetEnv[localhost_1]: MRTG_INT_IP=“127.0.0.1″ MRTG_INT_DESCR=“lo“
# MaxBytes[localhost_1]: 1250000
# Title[localhost_1]: Traffic Analysis for 1 — raspberrypi
# PageTop[localhost_1]: Traffic Analysis for 1 — raspberrypi
#
#
#
# System:
# raspberrypi in Sitting on the Dock of the Bay
#
#
# Maintainer:
# Me <me@example.org>
#
#
# Description:
# lo
#
#
# ifType:
# softwareLoopback (24)
#
#
# ifName:
# lo
#
#
# Max Speed:
# 1250.0 kBytes/s
#
#
# Ip:
# 127.0.0.1 (localhost)
#
#
#
### Interface 2 >> Descr: ‚eth0‘ | Name: ‚eth0‘ | Ip: ‚No Ip‘ | Eth: ‚b8-27-eb-0c-58-69‘ ###
#Target[localhost_2]: 2:public@localhost:
#SetEnv[localhost_2]: MRTG_INT_IP=“No Ip“ MRTG_INT_DESCR=“eth0″
#MaxBytes[localhost_2]: 1250000
#Title[localhost_2]: Traffic Analysis for 2 — raspberrypi
#PageTop[localhost_2]: Traffic Analysis for 2 — raspberrypi
#
#
#
# System:
# raspberrypi in Sitting on the Dock of the Bay
#
#
# Maintainer:
# Me <me@example.org>
#
#
# Description:
# eth0
#
#
# ifType:
# ethernetCsmacd (6)
#
#
# ifName:
# eth0
#
#
# Max Speed:
# 1250.0 kBytes/s
#
#
# Ip:
# No Ip (No DNS name)
#
#
#
### CPU Usage
LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB,/var/lib/mibs/ietf/HOST-RESOURCES-MIB
Target[localhost.cpu]: ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: Raspberry Pi Server – CPU Load
PageTop[localhost.cpu]:Raspberry Pi Server – Active CPU Load %
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent
##Interface 3 >> Descr: ‚wlan0‘ | Name: ‚wlan0‘ | Ip: ‚192.168.1.104‘ | Eth: ’80-1f-02-af-0f-78′ ###
Target[localhost_3]: 3:public@localhost:
SetEnv[localhost_3]: MRTG_INT_IP=“192.168.1.104″ MRTG_INT_DESCR=“wlan0″
MaxBytes[localhost_3]: 1875000
Title[localhost_3]: Traffic Analysis for my raspberrypi
PageTop[localhost_3]: Traffic Analysis for Raspberry Pi Nr.1
System:
raspberrypi in Sitting on the Dock of the Bay
Maintainer:
Me <me@example.org>
Description:
wlan0
ifType:
ethernetCsmacd (6)
ifName:
wlan0
Max Speed:
0.0 Bytes/s
Ip:
192.168.1.104 (localhost)
### CPU Temperature Raspberry
TimeStrPos[localhost.cpu_temp]: RU
Target[localhost.cpu_temp]: `/home/pi/skripte/mrtg/cpu_temp_auslesen.sh`
Options[localhost.cpu_temp]: gauge,growright,nopercent,expscale,transparent
Title[localhost.cpu_temp]: Raspberry Pi Server – CPU Temperatur
PageTop[localhost.cpu_temp]:
Raspberry Pi Server – CPU Temperatur
MaxBytes[localhost.cpu_temp]: 125
Step[localhost.cpu_temp]: 60
Legend1[localhost.cpu_temp]: CPU Temperatur Raspberry Pi Server
LegendI[localhost.cpu_temp]: CPU Temperatur
LegendO[localhost.cpu_temp]:
YLegend[localhost.cpu_temp]: Grad Celsius
ShortLegend[localhost.cpu_temp]: Grad °C
Hi Iro,
Das Problem mit der Fehlermeldung habe ich in den Griff bekommen. Es lag an den falschen Formatierungen /Absätzen in der mrtg.cfg. Die Diagramme werden jetzt zwar dargestellt – auch von meinem (bislang) ersten Temperatursenssor. Sie enthalten jedoch keine Daten … 🙁
Fehlermeldung kommt aber keine mehr. Manuell kann ich den Sensor abfragen.
Help ?
Gruß Torsten
Moin Thorsten,
überprüf noch einmal die Rechte, evtl. darf mrtg das Script zum Temperatur auslesen nicht aufrufen. Du kannst auch einmal testweise die RRD Datenbank löschen, evtl. ist diese falsch formatiert. Mrtg erstellt dann automatisch eine neue. Falls das auch nichts hilft, dann prüfe mit „ps -Af | grep mrtg“ ob mrtg auch wirklich läuft. Danch könntest du die RRD Datenbank auch noch manuell auslesen. Mit „rrdtool fetch /var/www/mrtg/localhost.cpu_temp.rrd AVERAGE“ (Pfad evtl. anpassen) bekommst du die Durchschnittswerte der DB, sollte ungefähr so aussehen:
Gruß iro
Hallo,
leider startet er nicht nach einem mrtg /etc/mrtg.cfg kommt ein Fehler: ERROR: CFG Error in „timestrpos[localhost.cpu_temp]“, file /etc/mrtg.cfg line 180: Must be a string of NO, LU, RU, LL, RL
Hier noch meine Config:
### CPU Temperature Raspberry
TimeStrPos[localhost.cpu_temp]: RU
Target[localhost.cpu_temp]: `/home/root/scripte/mrtg/cpu_temp_auslesen.sh`
Options[localhost.cpu_temp]: gauge,growright,nopercent,expscale,transparent
Title[localhost.cpu_temp]: Raspberry Pi Server ~@~S CPU Temperatur
PageTop[localhost.cpu_temp]:
Raspberry Pi Server ~@~S CPU Temperatur
MaxBytes[localhost.cpu_temp]: 125
Step[localhost.cpu_temp]: 60
Legend1[localhost.cpu_temp]: CPU Temperatur Raspberry Pi Server
LegendI[localhost.cpu_temp]: CPU Temperatur
LegendO[localhost.cpu_temp]:
YLegend[localhost.cpu_temp]: Grad Celsius
ShortLegend[localhost.cpu_temp]: Grad °C
Hätte jemand einen Rat.
Gruß
Frank
Moin Frank,
du hast garantiert etwas eingerückt 😉 Überprüfe noch einmal, dass der komplette CPU-Block linksbündig ist, sonst interpretiert mrtg das falsch. Siehe dazu auch die anderen Kommentare hier.
Gruß iro
Hallo Iro,
Das Problem mit der nichtstartenden cfg ist behoben. Ich habe jetzt einen Temp. Sensor angeschlossen und bekomme aber keine Graphen angezeigt.
Meine mrtg.cfg u. die beiden Scripte liegen hier:
Dabei ist aber z. Z. nur eins aktiv (update_mrtg_temp.sh)
https://drive.google.com/folderview?id=0B_liXBiUpqFdWUNpNjFONFpPRW8&usp=sharing
MRTG startet ohne Fehlermeldungen u. in der Log-Datei ist auch nichts zu finden.
Hast Du eine Idee warum der Temp-Graph nicht angezeigt wird ?
Hey Torsten,
hast du denn mal testweise die rrd DB gelöscht? Und was für Werte kommen beim manuellen auslesen der rrd DB? Bitte immer alles lesen und testen 😉 Du darfst übrigens auch gerne mal auf das Werbebanner unterhalb des Posts klicken, in den letzten 2 Wochen gab es sage und schreibe einen Klick… Motiviert doch auch etwas mehr wenn man sieht, dass die Arbeit die man hier macht auch honoriert wird – auch wenns nur Cent-Beträge sind freut man sich 😉
Gruß iro
Hallo Iro,
Leider hab ich mir die Anleitung v. Tobi Oettiker schon zig-mal vorgenommen, habe aber keine Infos gefunden wo die rrd-tools DB liegt und wie man manuelle abfragen macht.
Hast Du nen Link zu ner Anleitung für Anfänger – kann auch in Deutsch sein. 😉
Gruß
Torsten
Hey Torsten,
sudo find /var -iname ‚*.rrd‘ 😉
Gruß iro
Hallo,
so nach etwas basteln habe ich jetzt fast alles laufen auch 5 Tmp. Sensoren laufen gut. Leider läuft der freie Ram nicht.
„LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB“ gibt es nicht und die NET-SNMP-MIB“ geht nicht. Hast du vielleicht noch einen Tipp.
Zudem wird der Ras. nun recht langsam ich greife über den vnc zu. Nun wird’s lahm.
Gruß
Frank
Hey Frank,
hast du denn das Paket snmp-mibs-downloader installiert? Das brauch man auf jeden Fall 😀 Dass der Raspberry langsamer wird wenn du mit VNC connectest ist normal. Am besten den X-Server deaktieren (raspi-config -> Option zum Desktop booten deaktivieren). Wie das genau geht findest du in dem Tutorial Raspberry Pi sauber aufsetzen.
Würde ich dir auf jeden Fall empfehlen. Danach nur noch Zugriff per Putty und WinSCP. Am Anfang sicherlich eine Umgewöhnung, aber das gibt sich schnell 😉 Danach kann man dem Raspberry auch einiges mehr zutrauen. Z.B. läuft der Blog darauf und noch einige andere Seiten und Services 😀 Allerdings habe ich mein root Verzeichnis auf eine externe HDD ausgelagert, die SD-Karte ist mir einfach zu oft abgeschmiert.
Gruß iro
Hallo,
jep ist installiert.
Gruß
Frank
Hallo,
eine kleine Ergänzung noch :
ein sudo snmpwalk -v1 -c public localhost | less
bringt unter iso.3.6.1.2.1.25.2.3.1.6.1 keine Memoryausgabe sondern dort steht bei mir nur ein „“ habe nur ich das Problem ?
Gruß
Frank
Hey Frank,
der Befehl spukt bei mir folgendes aus:
[…]
iso.3.6.1.2.1.25.2.3.1.6.1 = INTEGER: 465404
[…]
Überprüfe noch einmal, dass wirklich alle benötigten Pakete installiert sind und installiere alle installierten Pakete noch einmal neu -> aptitude reinstall
Gruß iro
Hallo Frank,
Da Deine Temp-Sensoren Graphen anzeigen, kannst Du mir deine mrtg.cfg und deine Scripte mal schicken. Ich habe meine immer noch nicht soweit das sie in mrtg angezeigt werden. Die Scripte von Hand laufen jedoch
Danke und Gruß
Torsten
Hi,
ich habe mal Dein „How-to“ nachgebaut. Geht so weit fast alles, nur die CPU Temp will nicht so ganz.
Zuerst einmal die eigentilche Temperatur. Der MRTG Graph bleibt immer bei 2.0 Nun könnte man meinen, er will mir vielleicht 20 Grad sagen, mit seinen 2.0. Aber das pass auch nicht.
Ein Tipp wo ich nach dem Fehler suchen kann?
Hier ein Bild.
https://www.dropbox.com/s/elqdhmukhze6e9c/mrtg-cpu-temp.JPG
Gruß
Hey Muhkuh,
funktioniert denn die Ausgabe wenn du das Script direkt von Hand aufrufst? Falls nicht tippe ich mal darauf dass du das Paket „bc“ nicht installiert hast.
Gruß iro
Hi.
Doch, BC ist installiert. Noch einmal geprüft.
Bei der manuellen Ausführung passiert aber nicht viel mehr als das dort:
Das er ein Command in der Zeile nicht finden kann.
temp=`echo “scale=2; $tempread / 1000″ | bc`
Nunja, BC ist da, ich denke eher ein hat ein Problem mit temp
Hi.
Hat sich erledigt. Es war ein Problem im sh Script.
Jetzt habe ich zwar noch ein Problem mit dem Indexmaker, aber über das cgi File direkt geht es ja.
Gruß
In deinem Tutorial zur Temperaturmessung mit dem DS18S20 schreibst du, Der folgende Teil kommt nun wieder in die mrtg.cfg:
#System: DS18S20 Temperatur Sensor
#Contact: root
#Location: attached to Raspberry Pi
aber bei ich finde bei mir nicht die Datei mrtg.cfg
Wehre schon wenn du mir dabei weiter Helfen könntest.
Gruß
Andreas
Die Datei heißt vollständig: /etc/mrtg.cfg .
Gibt es eine Möglichkeit, die Grafik bzw. das Diagramm zu vergrößern ? Kann man vielleicht irgendwo die Auflösung ändern ?
Hallo Jan,
zwei Möglichkeiten fallen mir da ein:
1) Mit Strg-+ die Zoomstufe des Browsers verändern — sehr einfach, nicht permanent und wahrscheinlich nicht ganz, was Du haben möchtest.
2) Die cgi-Datei macht ja mehreres: Sie gibt die Grafiken zurück und auch den HTML-Code der Seite, die dann die Grafiken enthält. Wenn Du mit „width“- und „height“-Angaben im ausgegebenen HTML-Code die Größe der Grafiken veränderst (z.B. auf das Doppelte; das Seitenverhältnis sollte auf jeden Fall erhalten bleiben, sonst erscheinen die Grafiken verzerrt), wäre das sicher eine einfache und praktikable Lösung.
Hallo und vielen Dank für das hervorragende Tut.
Als Programmierquereinsteiger komme ich an einer Stelle nicht weiter: Ich bekomme keine Werte angezeigt.
Die *.rrd wird laut Zeitstempel regelmäßig aktualisiert. Die rein manuelle Abfrage funktioniert auch:
———-
cat /sys/bus/w1/devices/28-0000055fdd52/w1_slave
76 01 4b 46 7f ff 0a 10 79 : crc=79 YES
76 01 4b 46 7f ff 0a 10 79 t=23375
————
Starte ich aber das Script aus dem Sensor-Tut, bekomme ich eine Fehlermeldung:
—————–
pi@FHEM ~ $ temp
/usr/bin/temp: Zeile 8: bc: Kommando nicht gefunden.
Gemessene Temperatur des Sensors °C
—————–
pi@FHEM ~ $ lsmod
Module Size Used by
w1_therm 2921 0
w1_gpio 2363 0
wire 24832 2 w1_gpio,w1_therm
cn 4783 1 wire
…
—————–
Ist evtl. ein Programm nicht korrekt installiert, dass er den Befehl bc nicht kennt?
Viele Grüße
DocAdams
Wie funktioniert der Aufruf mit mehreren DS1820? Oder geht das nur mit einem Sensor? Wäre prima, wenn Du das Tutorial dahingehend ergänzen könntest.
Merci!
Das funktioniert wie bei einem Sensor, nur dass der zweite sich als anderes Device anmeldet. D.h. du brauchst einen zweiten Eintrag in der conf und ein zweites Ausleseskript, bei dem nur diese eine Zeile entsprechend geändert werden muss:
tempread=`cat /sys/bus/w1/devices/10-0000008a5c35/w1_slave`
Hallo, ich habe mit deinem Tutorial, die Temperaturmessung realisiert. Nun möchte ich mit den Paspberry und einem AD Wandler eine Spannung auslesen. Das auslesen klappt soweit, jedoch möchte ich auch die Spannung in einem Diagrammverlauf darstellen. Welche Datei/Skript und was in der Datei/ im Skript muss ich ändern damit ich den Spannungsverlauf dargestellt bekommen?
Also anstelle von temp habe ich volt wo kann ich das ändern ?
Hallo Jan,
Sollte relativ einfach gehen, schau dir die Ausgabe des Tempsensor Skripts an. In der ersten Zeile wird der Wert übergeben, dann 2x „0“ und in der letzten Zeile wird die Einheit übergeben – müsste bei dir dann „Volt“ stehen. Dein Skript muss exakt das gleiche machen 😉 Das fertige Skript muss dann in der mrtg.cfg eingetragen werden. Mrtg erzeugt dann automatisch die RRD Datenbank.
Über welche Schnittstelle sprichst du denn AD Wandler denn an, SPI oder I2C? Und was für einen Typ nutzt du denn?
Wäre super wenn du das fertige Skript hier posten könntest, dürfte den ein oder andern Leser hier sicherlich interessieren 🙂
Gruß iro
schade klappt leider noch nicht ganz, also die HTML Seite habe ich schon mal, jedoch wird die Spannung nicht ausgelesen. Vielleicht weißt du was falsch sein kann.
hier sind die Skripts:
[b]/home/pi/volt.txt[/b]
[code]1.39458816533[/code]
[b]/home/pi/skripte/mrtg/update_mrtg_volt.sh[/b]
#!/bin/bash
[code]# Read voltCH1
voltread=`cat /home/pi/volt.txt`
volt=`echo $voltread | egrep -o ‚.{5}$’`
volt2=`echo „scale=0; $volt“ | bc`
# Update database
echo $volt2
echo 0
echo 0
echo volt[/code]
[b]/etc/mrtg.cfg[/b]
[code]######################################################################
# System: DS18S20 Temperatur Sensor
# Contact: root
# Location: attached to Raspberry Pi
######################################################################
### DS18S20 Temperatur Sensor
TimeStrPos[temp]: RU
Target[temp]: `/home/pi/skripte/mrtg/update_mrtg_temp.sh`
Options[temp]: gauge,growright,nopercent,expscale,transparent
Title[temp]: Temperatur
PageTop[temp]:
MaxBytes[temp]: 125
Step[temp]: 60
Legend1[temp]: Gemessene Temperatur
LegendI[temp]: Temperatur
LegendO[temp]:
YLegend[temp]: Grad Celsius
ShortLegend[temp]: Grad °C
#################################################################
### Spannung
TimeStrPos[volt]: RU
Target[volt]: `/home/pi/skripte/mrtg/update_mrtg_volt.sh`
Options[volt]: gauge,growright,nopercent,expscale,transparent
Title[volt]: Spannung
PageTop[volt]:
MaxBytes[volt]: 125
Step[volt]: 60
Legend1[volt]: Volt
LegendI[volt]: Volt
LegendO[volt]:
YLegend[volt]: Spannung
ShortLegend[volt]: Volt
[/code]
Ich habe es jetzt hinbekommen, die /home/pi/skripte/mrtg/update_mrtg/update_mrtg_volt.sh Datei muss folgendermaßen aussehen:
#!/bin/bash
[code]# Read voltCH1
voltread=`cat /home/pi/volt.txt`
volt=`echo $voltread `
volt2=`echo „scale=0; $volt“ | bc`
# Update database
echo $volt2
echo 0
echo 0
echo volt[/code]
Trotzdem habe ich noch ein Problem, wie bekomme ich es hin, dass im HTML Dokument 3 Nachkommastelle angezeigt werden. Zurzeit wird wie bei der Temperaturmessung nur eine Nachkommastelle angezeigt.
Kann mir den keiner sagen, wie ich mehr Nachkommastellen im MRTG Diagramm angezeigt bekomme.
Hallo,
danke für das tolle Tutorial.
Leider gibt es ein Problem bei Messung der Außentemperaturen. Der Sensor liefert in die Datei w1_slave einen Wert. Die Hardware sollte also funktionieren. Sobald ich den Sensor allerdings nach außen hänge, wird nichts mehr aufgezeichnet. Also, w1_slave hat einen Wert, die Datenbank temp_sensor2.rrd wird laut Zeitstempel aktualisiert, in den *.png wird nichts dargestellt, auch der Wert der aktuellen Temperatur friert ein.
Da derzeit die Temperatur draußen recht niedrig ist, und deshalb die Sensortemperatur recht schnell sinkt, kann ich nicht genau sagen, ab welcher Temperatur nichts mehr aufgezeichnet bzw. dargestellt wird. Vermutlich ist die Grenztemperatur bei 10 Grad.
Nehme ich den Sensor wieder rein, wird ab einem bestimmten Wert wieder aufgezeichnet. Das Ganze lässt sich wiederholen.
Das verstehe ich nicht. Sind irgendwo Grenztemperaturen eingearbeitet, ab denen nicht mehr aufgezeichnet oder dargestellt wird? Anders kann ich es mir nicht erklären. Wie krieg ich das weg, ich möchte auch Außentemperaturen messen.
Noch einen schönen dritten Advent und schon mal frohes Fest wünscht
DocAdams
Hallo, ich bin´s noch mal.
Könnte es sein, dass die Aufzeichnung bzw. Darstellung dann endet, wenn die Temperatur einstellig wird? Also irgendwo in der Informationskette ein Formatierungsfehler?
Leider verstehe ich nicht ganz den Informationsfluss.
w1_slave –> ../Skripte/mrtg/update-temp.sh –> ?? –> ../www/mrtg/temp-sensor.rrd –> temp_sensor-day.png
So? Bei tiefen Temperaturen scheint die Aufzeichnung in der *.rrd zu enden, denn in der Detailansicht „friert“ der Aktuell-Wert ein.
Wie können wir das Problem lösen?
Hey Adam,
da ich momentan selbst keinen Sensor draußen habe, lässt sich das schwer nachstellen. Evtl. kann ich am Wochenende ein Kabel nach draußen verlegen.
Gruß iro
Danke, das wäre nett 🙂
Oder mal kurz einen Eisbeutel dranhalten.
Ich denke, das lässt sich reproduzieren. Ich habe das jetzt mehrfach wiederholt. Die tiefste registrierte Temperatur lag bei 10,2 Grad, also kurz vor dem Wechsel auf einstellig. Eine andere sinnvolle Erklärung fällt mir nicht ein.
Versuchs mal mit diesem Skript, um die Temperatur auszulesen:
#!/bin/bash
# Read temperature from sensor
tempread=`cat /sys/bus/w1/devices/10-0000008a5c35/w1_slave`
temp=`echo $tempread | egrep -o '[0-9]+$'`
temp2=`echo "scale=2; $temp / 1000" | bc`
# Update database
echo $temp2
echo 0
echo 0
echo temperature
Jetzt klappt es wunderbar, …
… allerdings nur bei Temperaturen >= 1,0Grad Celsius
Im Temperaturbereich größer -1 und kleiner +1 werden wirre Temperaturen angezeigt, also genau dann, wenn in w1_slave weniger als 4 Stellen ausgewiesen werden.
Und bei Temperaturen unter -0,999 steigt die angezeigte Temperatur wieder, das Minus wird also ignoriert.
Viele Grüße
Marc
Gibt es nun eine Lösung wie man auch Negative Temperaturen messen kann?
Hey Jan,
leider kann MRTG keine negativen Werte darstellen, dewegen ist bei 0 °C leider schluss… Da musst du dir das rrdtool anschauen, damit kann man auch beliebige negative Werte darstellen. Leider nicht so komfortabel wie MRTG, da man für alles selbst Skripte erstellen muss. Wie man das ganze bewältigt wird z.B. auf folgender Seite behandelt
Gruß iro
Ich kann jetzt negative Temperaturen messen und darstellen. Ich musste dazu an zwei Stellen etwas ändern:
1. Das Script zum Auslesen des Sensors habe ich so verändert:
#! /bin/bash
# Temperatur des Sensors auslesen 28-0000053f9ac6 28-000005400df8 28-000005404445
tempread=`cat /sys/bus/w1/devices/28-0000053f9ac6/w1_slave`
## temp=`echo $tempread | egrep -o ‚.{5}$’`
temp=`echo $tempread | cut -f3 -d=`
temp2=`echo „scale=2; $temp / 1000“ | bc`
# Update database
echo 0
echo $temp2
echo 0
echo temperature
2. rrd Datenbank
Hier habe ich festgestellt, dass nur Werte zwischen 0 und 125 zugelassen wurden. Ich wusste mir erstmal nicht anders zu helfen und habe die Datenbank mit rrdtool in eine xml-Datei exportiert, dann den Minimalwert von 0 auf -30 geändert und dann das ganze wieder mit rrdtool zu einer rrd zurückgewandelt.
Jetzt bekomme ich auch prima Messwerte aus dem Gefrierschrank ;o)
Ich benutze das MRTG um ein Spannungsverlauf aufzuzeichnen, ist es den möglich, dass im MRTG Diagramm auch 2 oder 3 Nachkommastellen angezeigt werden ? bisher wird ja nur eine Nachkommastelle angezeigt.
Vielen Dank für die super Anleitung!
Gibt es eine Möglichkeit, die Skalierung der Diagramme zu ändern, also ein ymin und ymax vorzugeben? Da die aufgezeichnete Raumtemperatur nur wenige Grade schwankt, ist die automatische Skala 0…25 °C nicht sinnvoll. Wünschenswert wäre zum Beispiel 15…25 °C.
Danke & viele Grüße1
Hey Thorsten,
die Möglichkeit sollte es geben, allerdings habe ich selbst lediglich Maximalwerte ausprobiert. Die Möglichkeit die Config zu tweaken sind schier unendlich 😉 Siehe MRTG Reference. Mit MaxBytes setzt du den Maxwert und zusammen mit Unscaled könnte das klappen. Versuchs doch einfach mal 😀
Gruß iro
Hallo irosaurus!
Danke für die Rückmeldung. Leider scheint es durch die Konfiguration mit mrtg nicht zu funktionieren:
http://oss.oetiker.ch/mrtg/nabble-mrtg.en.html#nabble-td2545693
Gibt es eine für Laien verständliche Anleitung, wie man statt mrtg zu nutzen die Graphen mit RRDGRAPH selbst erstellt?
Danke & Gruß!
Thorsten
Hey Thorsten,
schau doch mal was Steve Shipway in deinem Link geschrieben hat, mit dem Routers2 Frontend sollte sich das realisieren lassen. Allerdings ist die Frage ob das für deine Zwecke nicht schon zu überdimensioniert ist.
Da unser Unterbau allerdings auf dem rrd-tool basiert, solltest du die Werte die MRTG loggt nutzen können, du musst lediglich die RRD Datenbanken selbst auslesen bzw. automatisiert Grafiken erstellen lassen die du dann in eine HTML Seite einbindest. Allerdings hab ich damit selbst noch keine Grafiken erzeugen lassen, da musst du alleine weiter sehen. Allerdings spuckt Google doch einige interessante Links aus 😀
Falls du was gutes findest kannst du den Link hier gerne posten.
Gruß iro
Hallo Leute!
Bin vom Temperatursensor-Skript nun nach mrtg aufgestiegen 😉 Nach einem Nachmittag Frickeln läuft’s prima. Danke für eure Tutorials!
eckermann
Hallo zusammen,
möchte mich auch für das Tutorial bedanken. Ich habe jetzt bei mir drei DS18B20 Sensoren laufen, die auch schön grafisch dargestellt werden.
Nach ein wenig Bastelei in den Dateien habe ich es auch geschafft, negative Temperaturen zu messen und grafisch darstellen zu lassen.
Also, wie gesagt, danke nochmal für das prima Tutorial.
Hallo Jens,
vielen Dank für die Rückmeldung und für den fix mit den negativen Temperaturen, dürfte sich der ein oder andere garantiert drüber freuen 😉
Werd die Anleitung demnächst aktualisieren 😀
Viele Grüße
iro
Hallo irosaurus,
ich habe nochmal ein wenig an der Script-Datei „gefeilt“.
Zuerst eine Überprüfung, ob die Sensor-Datei vorhanden ist.
Dann eine Prüfung, ob die CRC Prüfsumme richtig ist. Wenn ja, wird die Temperatur ausgewertet und ausgegeben.
#! /bin/bash
# Temperatur des Sensors 28-0000053f9ac6 auslesen
# Temperatur des Sensors 28-000005400df8 auslesen
# Temperatur des Sensors 28-000005404445 auslesen
sensor="/sys/bus/w1/devices/28-000005400df8/w1_slave"
if [ -f $sensor ]
then
sensorraw=`cat $sensor`
crc=`echo $sensorraw | cut -f2 -d= | cut -c4-6`
if [ "$crc" == "YES" ]
then
tempraw=`echo $sensorraw | cut -f3 -d=`
temp=`echo "scale=2; $tempraw / 1000" | bc`
# Update database
echo $temp
echo 0
echo 0
echo temperature
fi
fi
Gruß
Jens
Hallo nochmal,
hat sich doch tatsächlich noch ein Fehler eingeschlichen.
Es muss so aussehen:
if [ "$crc" = "YES" ]
Hallo,
vielen Dank für das Tutorial.
ich habe die Graphen für die CPU Usage und Temp sowie die für den Ram hinzugefügt.
Leider monitored jetzt kein einziger Graph mehr (Lan Traffic hat vorher wunderbar funktioniert).
Beim Graphen für die CPU Temperatur bekomme ich diese Fehlermeldung:
Error: RRDs::graph failed, opening ‚/var/www/mrtg/localhost.cpu_temp.rrd‘: No such file or directory
Hey kokajo,
Sobald es einen Fehler in der mrtg.conf gibt, bricht MRTG ab. Das erklärt vermutlich warum nun nichts mehr geloggt wird. Allerdings hast du deinen Fehler fast schon selbst beantwortet, „No such file or directory“ impliziert doch direkt, dass es da Probleme gibt 😉
Warum auch immer wurde die RRD DB für die CPU Temp nicht angelegt und kann somit weder befüllt, noch ausgelesen werden. Für das Skripte, das zum CPU Temp abfragen dient mal direkt von Hand aus und schau ob er da noch eine Fehlermeldung ausspuckt oder ob das sauber durchläuft.
Es schadet z.B. auch nie gleich die relevanten Teile aus der mrtg.conf zu posten, das erspart mir die Fragerei danach 😉
Gruß iro
Entschuldigung.
Wenn ich das Skript ausführe erhalte ich diese Werte hier:
42.77
0
0
temperature
da sollte doch eig alles in Ordnung sein oder ?
meine mrtg.cfg sieht im mom so aus:
# Created by
# /usr/bin/cfgmaker –global „Options[_]: growright“ –global „IconDir: /mrtg“ –global „WriteExpires: Yes“ –global „Language: german“ –global „RunAsDaemon: yes“ –global „EnableIPv6: no“ –global „LogFormat: rrdtool“ –global „Interval: 1“ „–if-filter=$if_admin && $default_iftype“ –output /etc/mrtg.cfg public@localhost
### Global Config Options
# for UNIX
# WorkDir: /home/http/mrtg
# for Debian
WorkDir: /var/www/mrtg
# or for NT
# WorkDir: c:mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
Options[_]: growright
IconDir: /mrtg
WriteExpires: Yes
Language: german
RunAsDaemon: yes
EnableIPv6: no
LogFormat: rrdtool
Interval: 1
######################################################################
# System: Raspberry
# Description: Linux Raspberry 3.10.25+ #622 PREEMPT Fri Jan 3 18:41:00 GMT 2014 armv6l
# Contact: Me
# Location: Behind the TV
######################################################################
### Interface 1 >> Descr: ‚lo‘ | Name: ‚lo‘ | Ip: ‚127.0.0.1‘ | Eth: ‚No Ethernet Id‘ ###
### The following interface is commented out because:
### * it is a Software Loopback interface
### * filter specified by –if-filter rejected the interface
#
# Target[localhost_1]: 1:public@localhost:
# SetEnv[localhost_1]: MRTG_INT_IP=“127.0.0.1″ MRTG_INT_DESCR=“lo“
# MaxBytes[localhost_1]: 1250000
# Title[localhost_1]: Traffic Analysis for 1 — Raspberry
# PageTop[localhost_1]: Traffic Analysis for 1 — Raspberry
#
#
#
# System:
# Behind the TV
#
#
# Maintainer:
# root <me@example.org>
#
#
# Description:
# lo
#
#
# ifType:
# softwareLoopback (24)
#
#
# ifName:
# lo
#
#
# Max Speed:
# 1250.0 kBytes/s
#
#
# Ip:
# 127.0.0.1 (localhost)
#
#
#
### CPU Usage
LoadMIBs: /usr/share/mibs/netsnmp/UCD-SNMP-MIB,/var/lib/mibs/ietf/HOST-RESOURCES-MIB
Target[localhost.cpu]: ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: Raspberry – CPU Load
PageTop[localhost.cpu]:Raspberry – Active CPU Load %
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent
### Interface 2 >> Descr: ‚eth0‘ | Name: ‚eth0‘ | Ip: ‚192.168.178.154‘ | Eth: ‚b8-29-eb-84-64-21‘ ###
Target[localhost_2]: 2:public@localhost:
SetEnv[localhost_2]: MRTG_INT_IP=“192.168.178.154″ MRTG_INT_DESCR=“eth0″
MaxBytes[localhost_2]: 12500000
Title[localhost_2]: Lan Traffic – Raspberry
PageTop[localhost_2]: Lan Traffic – Raspberry
System:
Raspberry in Sitting on the Dock of the Bay
Maintainer:
Me <me@example.org>
#
# Description:
# eth0
#
#
# ifType:
# ethernetCsmacd (6)
#
#
# ifName:
# eth0
#
Max Speed:
12.5 MBytes/s
#
# Ip:
# 192.168.178.154 (No DNS name)
#
ich leider erhalte ich auch bei dieser Config ohne die Temperatur keine Werte für meine Graphen
Nach einigen Versuchen hab ich immer das gleiche Ergebnis: Das monitored für die Netzwerküberwachung funktioniert immer, wenn ich dann aber etwas dazufügen möchte z.B. Temperatursensor (DS18S20) oder irgend etwas anders gibt es eine Fehlermeldung auf einen Link den es nicht gibt. Bei der Netzwerküberwachung ist der so: http://192.168.2.53/cgi-bin/mrtg-rrd.cgi/localhost_2.html und funktioniert, aber bei zb. Temp_sensor ist der so:http://192.168.2.53/cgi-bin/mrtg-rrd.cgi/temp_sensor.html. Diesen gibt es nicht, ebenso wie alle Anderen nicht. Wie werden diese erzeugt ?
Hallo borduser,
die html sites werden on-the-fly erzeugt, d.h. du wirst sie nirgends finden. Wie sieht es denn mit den rrd DBs aus, sind diese alle vorhanden? Wenn die Abfragen der verschiedenen Skripte richtig funktioniert und Werte zurückgegen werden, dann erzeugt MRTG automatisch selbst die rrd DBs.
Gruß iro
Ich habe genau das Selbe Problem. Wieso mrtg.conf? Übermittelt wird die mrtg.cfg!
Hi, natürlich mrtg.cfg, sry… 🙂
Ich bin vom DS18S20 Sensor Tutorial, und dem MRTG Folgetutorial sehr begeistert!
Bitte füge so einen Spenden Link für PayPal ein, damit ich dir als kleines Dankeschön einige Euronen spenden kann 🙂
Keep up the good Work!
Liebe Grüße
Hallo Bern,
vielen Dank für das Lob, das motiviert einen weiter zu machen 😀
Die Idee mit dem Spenden Button ist nett, hab ich gleich mal integriert evtl. kommen so die laufenden Kosten für den Server rein 😉 Danke!
Gruß iro
Hi iro,
auch das Tutorial ist klasse 🙂
Beim 1:1 übernehmen, ist mir aufgefallen, dass einige Fehler noch nicht korrigiert sind.
Beim kopieren der Scriptfragmente in die /etc/mrtg.cfg mit nano, unbedingt drauf hinweisen, das der Text linksbündig sein muss.
Der Zeilenumbruch nach PageTop[localhost.cpu_temp]:, sollte raus.
Beim Part: DS18S20, ist bei der Berechtigungsvergabe, die falsche Datei angegeben.
Danach könnte man (ohne Nachdenken) Dein Tutorial durchkopieren. (Ausnahme: Sensorkennung) – wenn gewollt. „Denn sie wissen nicht was sie tun“ 😉
Grüße aus LA
ralphi
Hey ralphi,
danke für die Rückmeldung! 😀 Dass die Formatierung zum Kopieren nicht ideal ist haben wir auch schon bemerkt, kommt leider durch das neue Design. Da müssen wir uns wohl nochmal was überlegen. Solange muss einfach jeder etwas mehr mitdenken – das Hirn einschalten schadet nie, dann lernt man vllt. auch etwas 😉
Aber deinen Hinweis werd ich auf jeden Fall noch einbauen 😀
Gruß iro
Hallo,
Ich möchte nur verschiedene Temperatursensoren auslesen.
Bekomme dabei den Fehler:
Error: Parse error in /etc/mrtg.cfg near Temperatur Wohnzimmer
Meine mrtg.cfg:
### Global Config Options
# for UNIX
# WorkDir: /home/http/mrtg
# for Debian
WorkDir: /var/www/mrtg
# or for NT
# WorkDir: c:\mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
Options[_]: growright
IconDir: /mrtg
WriteExpires: Yes
Language: german
RunAsDaemon: yes
EnableIPv6: no
LogFormat: rrdtool
Interval: 1
PageTop[localhost_1]:
######################################################################
# System: DS18S20 Temperatur Sensor
# Contact: root
# Location: attached to Raspberry Pi
######################################################################
### DS18S20 Temperatur SensorWohnzimmer
TimeStrPos[temp_wohnzimmer]: RU
Target[temp_wohnzimmer]: `/home/pi/skripte/mrtg/update_mrtg_temp.sh`
Options[temp_wohnzimmer]: gauge,growright,nopercent,expscale,transparent
Title[temp_wohnzimmer]: Temperatur Wohnzimmer
PageTop[temp_wohnzimmer]:
Temperatur Wohnzimmer
MaxBytes[temp_wohnzimmer]: 125
Step[temp_wohnzimmer]: 60
Legend1[temp_wohnzimmer]: Gemessene Temperatur im Wohnzimmer
LegendI[temp_wohnzimmer]: Innentemperatur
LegendO[temp_wohnzimmer]:
YLegend[temp_wohnzimmer]: Grad Celsius
ShortLegend[temp_wohnzimmer]: Grad °C
und die update_mrtg_temp.sh
#! /bin/bash
# Temperatur des Sensors 28-000005082933 auslesen
# Temperatur des Sensors 28-000005ad9761 auslesen
sensor=“/sys/bus/w1/devices/28-000005082933/w1_slave“
if [ -f $sensor ]
then
sensorraw=`cat $sensor`
crc=`echo $sensorraw | cut -f2 -d= | cut -c4-6`
if [ „$crc“ == „YES“ ]
then
tempraw=`echo $sensorraw | cut -f3 -d=`
temp=`echo „scale=2; $tempraw / 1000“ | bc`
# Update database
echo $temp
echo 0
echo 0
echo temperature
fi
fi
Ergebnis der .sh datei wenn ich sie normal starte:
root@pi-server:/home/pi/skripte/mrtg# ./update_mrtg_temp.sh
28.31
0
0
temperature
Jemand eine Idee?
Hi Markus,
hier liegt der Fehler:
PageTop[temp_wohnzimmer]:
Temperatur Wohnzimmer
Das muss in eine Zeile und nicht in zwei.
Gruß iro
Guten Abend,
erst mal ein herzliches Dankeschön für Deine tollen Tutorials rund um dem Raspberry Pi. Die machen wirklich richtig Spaß und sind sehr gut zu verstehen.
Ich habe mich heute damit mal näher befasst und habe leider noch ein paar Schwierigkeiten, konkret zeigt mein Browser nicht alle Daten so an, wie ich es mir erhoffe.
Wenn ich nun versuche, die CPU-Temperatur bzw. einen der angeschlossenen DS18-Sensoren aufzurufen kommt jeweils eine Fehlermeldung:
Error: RRDs::graph failed, opening ‚/var/www/mrtg/localhost.cpu_temp.rrd‘: No such file or directory
Bzw.
Error: RRDs::graph failed, opening ‚/var/www/mrtg/temp_wohnzimmer.rrd‘: No such file or directory
Die Aussage ist ja eindeutig, nur weiß ich leider nicht, was ich falsch gemacht habe.
Ich erlaube mir, mal, den Inhalt meiner mrtg.cfg hier zu zeigen.
Vielleicht kannst Du mir einen Tipp geben, wo es bei mir haken könnte?
Gerne sende ich weitere Infos, ich weiß leider nur nicht, welche Datei (bzw. Inhalt) Dir vielleicht noch helfen könnte?
Für Deine Bemühungen im Voraus vielen, vielen Dank!
Gruß Dirk
Hey Dirk,
werden die beiden rrd Datenbanken denn überhaupt in /var/www/mrtg erzeugt? Ich vermute einfach mal, dass die gar nicht erzeugt wurden, weil die beiden Skripte unter /home/pi/skripte/mrtg/ entweder nicht ausführbar (# chmod +x) sind oder an einem anderen Ort liegen. Überprüf das doch mal 😀
Falls die Skripte doch da liegen und ausführbar sind, dann führe sie mal direkt aus und schau dir die Ausgabe an (# sh /home/pi/skripte/mrtg/update_mrtg_temp.sh).
Gruß iro
Hallo iro,
danke für die sehr schnelle Reaktion – toll!
Beide Skripte liegen im /home/pi/skripte/mrtg/ und sind im LX-terminal ausführbar:
sudo /home/pi/skripte/mrtg/cpu_temp_auslesen.sh -> führt zu
43.31
0
0
temperature
und sudo /home/pi/skripte/mrtg/update_mrtg_temp.sh -> führt zu
19.56
0
0
temperature
Das funktioniert also.
In „/var/www/mrtg/“ tut sich nix weiter, dort liegen nach wie vor nur die localhost_2.rrd und ein paar *.png Bilder drin.
Was meinst Du bitte mit >>>und schau dir die Ausgabe an (# sh /home/pi/skripte/mrtg/update_mrtg_temp.sh).<<>>Wichtig: Die Datei muss wieder ausführbar sein:
chmod 750 /home/pi/skripte/mrtg/cpu_temp_auslesen.sh<<<
verweist? Ich habe jedefalls unabhängig davon auch die Datei update_mrtg_temp.sh ausführbar gemacht, aber das nur am Rande.
Sorry für die Fragen, aber ich bin Linux & rpi Anfänger 😉 Danke für Deine Geduld! Gruß Dirk
Hallo Dirk,
sorry für die späte Antwort, falls es nicht läuft bitte einfach nochmal melden.
Gruß iro
Hey 🙂 erstmal danke für die Super Anleitung. Soweit hat alles geklappt. Bei mir wird leider keine Grafik im Browser angezeigt. (Auch keine Fehlermeldung) Die Seite verbindet sich und bleibt einfach weiß. Woran könnte das liegen? Habe schon alles Kontrolliert.
Danke im voraus.
Hey Pr3,
schau dir noch einmal die Berechtigungen der mrtg-rrd.cgi an und auch der mrtg.cfg an. Außerdem solltest du auch Meldungen in deinem Webserverlog finden.
Gruß iro
Okey Super! Es lag an den Berechtigungen. Danke 🙂
Das ist meistens das Problem, schön dass es jetzt läuft 😀
Gruß iro
Hey Leute,
wie kann ich denn die Diagramme zurücksetzten, sodass ich eine neue Messung mit leeren Diagrammen starten kann?
Hey Bernd,
ganz simpel, unter „/var/www/mrtg“ einfach die .rrd Datenbank + dazugehörige png Grafiken löschen. Beim nächsten Durchlauf von mrtg werden die fehlenden Datenbanken neu erzeugt.
Gruß iro
Moin,
gibt es die Möglichkeit den DS1820 auch per snmp abzufragen??
Vielen Dank!
Moin vio,
die Möglichkeit gibt es, das hat dann allerdings nichts mehr mit MRTG zu tun 😉 Eine mögliche Lösung gibt es z.B. hier: http://djsattempt.blogspot.de/2013/03/raspberry-pi-and-snmp-polling-using.html
Gruß iro
Hey,
ich habe leider ein Problem mit deinem Sktipt für die Anzeige der Temp. Sensoren am Pi.
#!/bin/bash
# Read temperature from sensor
tempread=`cat /sys/bus/w1/devices/10-0000008a5c35/w1_slave`
temp=`echo $tempread | egrep -o ‚.{5}$’`
temp2=`echo „scale=2; $temp / 1000“ | bc`
# Update database
echo $temp2
echo 0
echo 0
echo temperature
Das funktioniert soweit zwar auch sauber, jedoch habe ich einen Sensor ausserhalb meiner Wohnung und hier ist es zur Zeit unter 10Grad.
Das heisst dein Script funktioniert dann leider nicht, da er die letzten 5 Ziffern aus der Zeile nimmt. Wenn es aber unter 10Grad ist, sind es nur noch die letzten 4 Ziffern und er kopiert das „=“ mit und kann natürlich nicht mehr rechnen. Bei deinem Skript habe ich jetzt die 5 zur 4 verändert. Funktioniert gerade auch. Wenn es aber nun über 10 Grad wird, stimmt die Anzeige leider nicht mehr…
Hast du eine Idee wie ich das Skript ändern kann, das er dies automatisch erkennt ?
Gruß und einen guten Rutsch!
Hi Kevin,
der Inhalt der Datei sieht ja ungefähr so aus:
2c 00 4b 46 ff ff 0f 10 d3 : crc=d3 YES
2c 00 4b 46 ff ff 0f 10 d3 t=21812
d.h. du willst alles, was nach dem t= kommt, egal ob 4 oder 5 Zeichen. Probier mal einen regulären Ausdruck wie
t=[\-0-9]+$ und danach ein `cut`. Also zB:
$ echo „2c 00 4b 46 ff ff 0f 10 d3 : crc=d3 YES\n2c 00 4b 46 ff ff 0f 10 d3 t=21812“ | egrep -o ‚t=[-0-9]+$‘ | cut -d = -f 2
21812
$ echo „2c 00 4b 46 ff ff 0f 10 d3 : crc=d3 YES\n2c 00 4b 46 ff ff 0f 10 d3 t=2181“ | egrep -o ‚t=[-0-9]+$‘ | cut -d = -f 2
2181
Hallo,
ich habe folgendes Probleme:
1.bekomme nur die CPU-Auslastung und den Raspberry Pi Server Free Memory (without Swap)angezeigt,….also die Grafiken funktionieren.
Leider bekomme ich es mit der Raumtemperatur nicht hin. Rufe ich temp auf bekomme ich auch einen Wert ausgegeben, funktioniert also auch.-> leider gab es da auch erst einige Probleme die ich aber mit einen Trick lösen konnte, indem ich mir die (temp)Datei von meinen 1. Pi kopiert und abgeändert habe. Beim 2. Pi kam es immer zu einen fehler in der ersten Zeile…..Komando nicht gefunden….aber mit sauberer Temperaturanzeige, die Bearbeitung der Datei mit nano oder notpad++ brachte keine Verbesserung. Es war nichts eingerückt, beide Datein sahen bis auf die Sensoren identisch aus. Erst der komplette tausch brachte die Lösung! Desweiteren gab es am Anfang überhaupt keine Anzeige, es waren nur leere Tabellen…Ich schaute mir dann die Rechte von /var/www/cgi-bin/mrtg-rrd.cgi an und verglich sie mit der mrtg-rrd.cgi.bak da lag das Problem. Backup rückgängig gemacht und Plötzlich funzte es. Also einfach mal mit SSH die Rechte anschauen, wer auch keine Bildchen mit Grafiken bekommt. Die Datei könnt ihr mit $ sudo mv /var/www/cgi-bin/mrtg-rrd.cgi.bak /var/www/cgi-bin/mrtg-rrd.cgi bzw $ sudo mv /var/www/cgi-bin/mrtg-rrd.cgi /var/www/cgi-bin/mrtg-rrd.cgi.bak immer wechseln!Aber nun zum
2.Problem an keinen Pi bekomme ich Grafiken für die Temperaturen hin. Ich hoffe Ihr habt einen Tip, denke das es auch ein Problem mit den Skript ist,…es lässt sich auch manuell nicht ausfüren.
3.Problem was gerade durch Änderung auftauchte ,…es frieren gerade die beiden funktionierenden Grafiken ein.
4. und Hauptproblem…bin WIN-USER ;-(
Bitte gebt mir Tips verzweifel langsam 😉
MfG Devil
Hey Devil,
am besten postest du erstmal deine mrtg.cfg. Dann schauen wir mal weiter 😉
Problem 1 klingt stark danach, dass das Script nicht richtig aufgerufen wird, oder dass die Rechte nicht passen.
Gruß iro
hoffe ihr könnt mir helfen, ich sehe nur bei „Raspberry Pi Server – CPU Temperatur“ eine Statistik aber bei „Raspberry Pi Server – CPU Load“ & „Raspberry Pi Server – Used Memory“ zeigt er mir keine an woran könnte das liegen?
Hey Marco,
werden Datenbanken erstellt? Die OIDs für die Werte sind auf allen Linux Möhren gleich.
Eine Liste gibt es z.B. hier http://www.debianadmin.com/linux-snmp-oids-for-cpumemory-and-disk-statistics.html
Hast du denn die MIBs installiert und die snmpd.conf wie beschrieben geändert?
Gruß iro