Vor einiger Zeit begann ich zuhause mir einen kleinen Serverraum einzurichten - mein Datenklo .
In diesem Serverraum sollte natürlich auch die Raumtemperatur mit Icinga oder Nagios überwacht werden. - Natürlich gibt es verschiedene quasi out-of-the-box Lösungen, wie z.B.
http://www.wut.de/e-57614-ww-dade-000.php
https://kentix.com/xtm/product_info.php?products_id=67
http://messpc.de/ethernetbox.php
mit Sensor
Diese Lösungen mögen zwar im professionellen Umfeld sinnvoll einsetzbar sein, bei Preisen von 270 - 600 EUR sprengen sie jedoch für einen heimischen Serverraum das Budget.
Deswegen habe ich mir für ca. 15,- EUR einen USB-Temperatursensor, den TEMPer1 von PCSensor http://pcsensor.com/index.php?_a=product&product_id=7Temper1
geholt.
Diesen Sensor gibt es in verschiedenen Ausführungen (1 Temperatursensor, 2 Sensoren u.s.w.) und verschiedenen Versionen.
Diese Informationen hier gelten ausschliesslich für den TEMPer1 der sich in der Ausgabe von lsusb folgendermaßen zu erkennen gibt:
lsusb output: ID 0c45:7401 Microdia
Auch der TEMPer2 meldet sich z.T. mit diesem lsub-output. Er besitzt jedoch zwei Temperatursensoren. Für den TEMPer2 muss ein anderes Auslesprogramm verwendet werden.
Wenn ich irgendwann einen TEMPer2 erworben habe, werde ich diese Dokumentation hier entsprechend ergänzen …
Bis ich den TEMPer1 sauber abfragen konnte, war ich auf einer Odysee mit folgenden Programmen, die für mich Ihren Zweck leider nicht erfüllten (Shame on me: poor C coding knowledge ):
Ich bin dann letztlich mit dem Programm temperv14
von http://dev-random.net/wp-content/uploads/2013/08/temperv14.zip
vorwärts gekommen, nachdem ich das Nagios-Plugin kräftig überarbeitet habe.
Ich habe die Früchte meiner Arbeit in ein .tar.gz-File gepackt und diese Doku niedergeschrieben:
Um den TEMPer1 unter Icinga oder Nagios anzusprechen waren für mich folgende Schritte notwendig:
1. Downloaden des tar.gz-Archivs
2. Entpacken des Archivs:
root@haas:~# cd /tmp root@haas:/tmp# tar -xzvf temper1_usb-device.tar.gz
3. Kopieren der Executable temperv14 nach /usr/local/sbin :
root@haas:/tmp# cp -p usr/local/sbin/temperv14 /usr/local/sbin/
4. Kopieren des Nagios-Check-Scripts nach /usr/lib/nagios/plugins :
root@haas:/tmp# cp -p /usr/lib/nagios/plugins/haasc/check_temper1.sh /usr/lib/nagios/plugins/
5. Mit Hilfe von visudo in /etc/sudoers die folgende Zeile einfügen:
nagios ALL = NOPASSWD: /usr/lib/nagios/plugins/check_temper1.sh
Alternativ kann auch das UDEV-Script 99-tempsensor.rules
verwendet werden:
root@haas:/tmp# cp -p usr/share/doc/temper1/99-tempsensor.rules /etc/udev/rules.d/
6. Nun muss noch der entsprechende Icinga-/Nagios-Check eingerichtet werden:
Eine Warnung erfolgt hier bei 27.00°C, der Status wechselt auf Critical, sobald die Raumtemperatur 30.00°C erreicht hat:
define service{ use generic-service host_name haas service_description Serverraum-Temperatur Datenklo via TEMPer1 contact_groups cg_haasc check_command check_nrpe_3arg!check_temper1.sh!27.00!30.00 }
7. nagios-plugin usage:
./check_temper1.sh <warn> <crit>
Die Temperaturen müssen in °C mit einer oder zwei Nachkomastellen angegeben werden:
z.B. ./check_temper1.sh 24.0 27.3
Grad Celcius / Grad Fahrenheit:
Standard: Grad Celcius
Um Grad Fahrenheit zu verwenden, als weiteren Parameter 'f' angeben:
./check_temper1.sh 75,2 81,14 f
Mögliche Ausgaben:
OK: 23.00°C Temperature is below warn threshold 24.0°C WARNING: 25.00°C Temperature is above / equals warn threshold 24.0°C CRITICAL: 28.00°C Temperature is above / equals crit threshold 27.3°C
oder in Grad Fahrenheit z.B.:
WARNING: 77.79°F Temperature is above / equals warn threshold 75,2°F
credits to:
← zurück