Tag Archives: munin

Linux USB-Thermometer TEMPer mit Munin für unter 20 Euro

Wer günstig mit Linux Temperaturen messen möchte, kann das jetzt. Für unter 20 Euro vertreibt der Anbieter M-Ware auf Amazon den RDing TEMPer1.2 USB-Temperatursensor. Doch etwas Vorsicht ist geboten, denn die neue Version 1.2 ist nicht mit den verfügbaren Perl-Bibliotheken oder Munin-Plugin kompatibel.


Wird der neue als gold TEMPer betitelte Sensor angeschlossen ergibt sich folgendes Bild:

[1816401.763718] usb 2-1: Product: TEMPerV1.2
[1816401.763724] usb 2-1: Manufacturer: RDing
[1816401.782819] input: RDing TEMPerV1.2 as /devices/pci0000:00/0000:00:10.0/usb2/2-1/2-1:1.0/input/input44
[1816401.783419] generic-usb 0003:0C45:7401.004F: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.2] on usb-0000:00:10.0-1/input0
[1816401.798144] generic-usb 0003:0C45:7401.0050: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.2] on usb-0000:00:10.0-1/input1
[1817325.787837] udev[26706]: starting version 164

Nach längerer Suche im Internet wird klar, dass für die neue Version eine spanische Firma (ISP-SL) verantwortlich zeichnet, die auch hier einen entsprechenden Treiber zur Verfügung stellt. Damit geht die Installation der Software dann ganz schnell wie folgt.

apt-get install build-essentials libusb-dev
wget "http://www.isp-sl.com/pcsensor-1.0.0.tgz"
tar xvzf pcsensor-1.0.0.tgz
cd pcsensor-1.0.0
make clean
make pcsensor
make rules-install
cp pcsensor /usr/local/bin/

Um die udev Regeln zu aktivieren muss jetzt der Computer neugestartet werden, oder der entsprechende Dienst mit dem Befehl /etc/init.d/udev reload neugestartet werden. Alternativ tut es auch ein abziehen und wiedereinstecken des TEMPer Moduls.

Hat alles geklappt, liefert die Eingabe des Befehl pcsensor jetzt die gewünschten Daten.

# pcsensor 
2012/12/08 19:53:33 Temperature 71.83F 22.12C

Um auch dauerhaft einen Überblick über die gemessene Temperatur zu behalten, eignet sich ein Munin-Plugin (Abbildung folgt).

RDing TEMPer 1.2

RDing TEMPer 1.2

Das ist schnell geschrieben und könnte wie folgt aussehen.

#!/bin/sh
# Where is pcsensor located?
PCSENSOR="/usr/local/bin/pcsensor"

if [ ! -e ${PCSENSOR} ]; then
	echo "Cannot find pcsensor executable" >&2
	exit -1
fi

case $1 in
   config)
	echo "
graph_title TEMPer USB Thermometer
graph_vlabel Celsius
graph_info This graph shows the temperatur reported by the attached TEMPer USB Thermometer.
graph_category Sensors
temp.label temp
temp.draw AREA
temp.colour FFD700
# < water freezes, > high fever
temp.warning 4:40
# sensor max
temp.critical -40:120
	"
        exit 0;;
esac

echo -n "temp.value "
${PCSENSOR} -cm | head -n1

Zusammengefasst lässt sich sagen, dass der TEMPer nicht leich in Betrieb zu nehmen war. Nicht, weil die Software nicht zur Verfügung stand, sondern weil der Sensor schlicht ohne Handbuch oder Treiber oder Informationen über Bezugsquellen für Treiber geliefert wurde. Das ist schade, aber bei einem Preis von unter 20 Euro zu verschmerzen.

Fritz!Box Cable mit Munin überwachen ohne alternative Firmware

Das Überwachen einer Fritz!Box 6360 Cable mit nicht anpassbarer Firmware von Unitymedia, Kabel-BW oder Kabel Deutschland gestaltet sich leider nicht einfach. Um trotzdem die wichtigsten Leitungswerte in das Netzwerkmonitoring Werkzeug Munin einzubinden, habe ich ein Plugin geschrieben.

Fritz!DOCSIS Munin Plugin (Repository)

Zum Verfahren gibt es nicht mehr zu sagen, als die Kommentare des Quelltexts zu zitieren:

// DISCLAIMER: Now comes the funny part!
// 1. AVM enclosed a LUA table in <code> tags. First we get the LUA table out!
// 2. Then we parse the LUA table to an array using a parser for World of Warcraft (it's everywhere, mh?)
// 3. Now we "decode" (read: de-fuckup) the LUA table to proper SNMP keys for DOWNSTREAM and UPSTREAM

Um es kurz zu machen, folgen die drei Graphentypen die das Plugin erzeugen kann.

Downstream

Für jeden Downstream Kanal den Powerlevel in dBmV und die Leitungsdämpfung in dB.

Downstream Fehler

Für jeden Downstream Kanal sowohl die korrigierbaren wie auch die unkorrigierbaren Fehler.

Upstream

Für jeden Upstream Kanal den Powerlevel in dBmV.

Die Graphen sehen nach einigen Tagen zum Beispiel wie folgt aus.

Das Plugin ist in einem GitHub Repository gespeichert und seit mehreren Wochen erfolgreich in Betrieb.

Habt ihr eigene Skripte für die Fritz!Box ohne SNMP geschrieben? Vielleicht sogar für Munin? Über einen Kommentar würde ich mich freuen! Sollte jemand von Unitymedia diesen Blogpost lesen: Bitte installiert doch einen SNMP Daemon.

SNMP mit Munin

Wer im SoHo-Bereich bisher Munin für das Netzwerk Monitoring eingesetzt hat, kann beim neuen Switch oder AccessPoint eine böse Überraschung erleben. Ohne munin-node kein Monitoring. Dabei unterstützt Munin SNMP fähige Geräte sehr elegant; wenn man ein paar Vorraussetzungen beachtet.

SNMP wird in Munin eingebunden, indem ein munin-node die SNMP-Informationen zur Verfügung stellt. Auf dem gewählten Host (bestenfalls ein Linux System), kann Munin die unterstützten Plugins des SNMP fähigen Geräts selbst finden. Hier am Beispiel eines Netgear GS716T (sehr einfacher WebSmart Switch) mit dem Hostnamen coreswitch.

1. Unterstützte Plugins aktivieren

munin-node-configure --snmp coreswitch --snmpversion 2c --snmpcommunity meineROsnmpCOMMUNITY --suggest --shell

Die manpage von munin-node-configure verrät, dass hier auch die SNMP Versionen 1 und 3 unterstützt werden. Der Befehl liefert auf Basis der SNMP MIB des Switches direkt Shellbefehle, die alle unterstützten Interface- und Informations-Plugins in die laufende Munin Konfiguration einbinden. Sehr komfortabel.

2. Neues Gerät in munin.conf eintragen

Hier ist der erste Fallstrick versteckt. Munin erwartet, dass der Node-Name in der Konfigurationsdatei exakt dem Hostnamen entspricht (in diesem Fall coreswitch). Wählt man einen eigenen Namen, kommt es bereits zu Problemen.

[coreswitch]
    address 127.0.0.1
    use_node_name no

3. SNMP Community und Version in /etc/munin/plugin-conf.d/munin-node festlegen

Hier gibt es zu beachten, dass mit dem regulären Ausdruck in eckigen Klammern (hier snmp_coreswitch*), alle Plugins die für den Switch im ersten Schritt aktiviert wurden, abgedeckt sein müssen. Im Zweifelsfall lässt sich das mit ls /etc/munin/plugins/snmp_coreswitch* nocheinmal prüfen.

# added by hand
[snmp_coreswitch*]
env.community meineROsnmpCOMMUNITY
env.version 2

Nach fünf Minuten sind die ersten Graphen des neuen SNMP Geräts erstellt. Weitere Informationen zur SNMP Einbindung in Munin finden sich im Wiki des Projekts.

Wer unbedingt einen anderen Node-Namen in der Datei munin.conf (und damit im Webinterface) benutzen möchte, kann das, indem in der Datei /etc/munin/plugin-conf.d/munin-node unter der SNMP Community mittels env.host die IP-Adresse oder Hostname des SNMP Geräts angegeben wird.