Bemerkung
Das Starterkit: Serverraum-Überwachung ist abgekündigt und wird nicht mehr verkauft. Als Ersatz wird das Starterkit: Serverraum-Überwachung 2.0 empfohlen.
Das Starterkit: Serverraum-Überwachung ist ein Open Source Kit um Serverraum-Installationen zu überwachen. Das Basiskit ist mit folgenden Sensoren ausgestattet: Ambient Light Bricklet 3.0 (überwacht z.B. die Raumbeleuchtung), Humidity Bricklet 2.0 (überwacht Luftfeuchtigkeit), Temperature Bricklet 2.0 (überwacht die Temperatur im Rack) und ein PTC Bricklet 2.0 mit Pt100 Temperaturfühler (z.B. zum Überwachen der Temperatur in einem Server). Es ist Platz für bis zu acht PTC Bricklets mit bis zu acht Temperaturfühlern vorgesehen.
Das Kit-Gehäuse kann direkt in einem 19" Server Rack befestigt werden (1HE). Mit weiteren Modulen des Tinkerforge Baukastensystems, wie zum Beispiel Bewegungsdetektoren, Ein-/Ausgabe Modulen (um Computer ein-/auszuschalten oder um Türen zu überwachen), kann das Kit flexibel an die eigenen Anforderungen angepasst werden.
Eine Nutzung ist auf zwei verschiedene Arten möglich:
Nicht-Eigenständige Überwachung (Standardkit)
Alle Sensoren des Kits können aus der Ferne von anderen Rechnern per Ethernet über die angebotenen APIs (C/C++, C/C++ für Mikrocontroller, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, MQTT, openHAB, Perl, PHP, Python, Ruby, Rust, Shell, Visual Basic .NET) abgefragt werden. Somit können individuelle Lösungen einfach realisiert werden. Beispiele für Bash und Nagios/Icinga demonstrieren die Nutzungsmöglichkeiten.
Eigenständige Überwachung (Standardkit + RED Brick)
Wird zusätzlich ein RED Brick im Kit verbaut, so kann das Kit auch ohne externen Rechner betrieben werden. Über die Brick Viewer Software kann, ganz ohne Programmieraufwand, die eigene Überwachungslösung realisiert werden.
Dazu müssen nur, mittels einfacher Schieberegler, für jeden Sensor Wertebereiche definiert werden. Wird der definierte Wertebereich verlassen, so kann unter anderem eine Benachrichtigung per E-Mail erfolgen. Es können Regeln sowohl für direkt angeschlossene Sensoren, aber auch für andere, über das Netzwerk verfügbare, Tinkerforge Sensoren konfiguriert werden. Intern läuft dazu eine Nagios-Installation, die über den Brick Viewer konfiguriert wird. Das Nagios Web Interface ist über die Ethernetverbindung des RED Bricks erreichbar und ermöglicht die Ansicht der aktuellen Messwerte und eventueller Probleme. Weitere Informationen können im RED Brick Kapitel der Serverraum-Überwachungsdokumentation gefunden werden.
Erfahrene Nutzer können darüber hinaus die im Hintergrund laufende Nagios Installation modifizieren und über die Möglichkeiten des Brick Viewers hinaus konfigurieren.
Die Stromversorgung des Kits kann per Power over Ethernet (PoE) oder USB (z.B. USB Steckernetzteil) erfolgen.
Sowohl Software als auch Hardware des Kits können modifiziert werden. Das Gehäuse besteht, mit Ausnahme der Frontblende die aus eloxiertem Aluminium besteht, aus bastelfreundlichem PMMA in das einfach neue Befestigungslöcher gebohrt werden können. Befestigungslöcher für verschiedene Bricks und Bricklets sind bereits vorhanden.
In der Frontblende können zusätzlich ein Motion Detector Bricklet 2.0, ein Segment Display 4x7 Bricklet 2.0 und ein E-Paper 296x128 Bricklet befestigt werden.
Eigenschaft | Wert |
---|---|
Beleuchtungsstärke | 0Lux - 64000Lux in 0,01Lux Schritten |
Temperatur (Ambient) | -40°C - 85°C in 0,01°C Schritten |
Pt100 Sensor | -20°C - 450°C |
PTC Bricklet 2.0 | 0,03125°C (15Bit) Auflösung |
Humidity Bricklet 2.0 | 0% - 100% relative Luftfeuchtigkeit |
Abmessungen (L x B x H) | 482 x 92 x 44mm (19.0 x 3.62 x 1.75") |
Gewicht | 250g |
Als ersten Schritt sollten die Bricks und Bricklets getestet werden und deren Firmware gegebenenfalls aktualisiert werden.
Dazu muss der Brick Daemon und der Brick Viewer installiert werden.
Als nächstes sollte das PTC Bricklet 2.0 konfiguriert und der Temperaturfühler (2-Leiter) angeschlossen werden. Wie dies funktioniert ist hier und hier dokumentiert.
Anschließend wird die Ethernet Extension auf den Master Brick gesteckt und alle Bricklets angeschlossen. Der Master Brick wird per USB mit dem PC verbunden. Mit dem Brick Viewer können nun die Module getestet. Anschließend kann über den Brick Viewer bestimmt werden, ob alle Firmwares aktuell sind. Falls nicht so sollten diese aktualisiert werden (Bricks aktualisieren, Bricklets aktualisieren):
Im nächsten Schritt sollte jedes Modul überprüft werden. Im Brick Viewer besitzt jedes Modul einen Reiter über dem eine modulspezifische Ansicht geöffnet werden kann. Zeigen alle Ansichten sinnvolle Werte, funktioniert alles wie erwartet. Als nächstes sollte die Ethernet Extension konfiguriert werden. In den folgenden Beispielen ist diese auf den Hostnamen "ServerMonitoring" und DHCP konfiguriert. Zur Konfiguration muss der Master Brick Reiter geöffnet werden. Die weitere Konfiguration ist hier beschrieben.
Nach den Tests und der Konfiguration ist sichergestellt, dass die Hardware auch nach dem Einbau in das 19" Rack Gehäuse wie gewünscht funktioniert.
Wenn das Kit zusammen mit einem RED Brick benutzt wird, kann Nagios auf dem RED Brick direkt über den Brick Viewer konfiguriert werden.
Der Server Monitoring Service (benötigt RED Brick Image >= 1.6 und Brick Viewer >= 2.2.3) kann im Services Tab aktiviert werden.
Wenn der Server Monitoring Service aktiviert ist, ist es möglich Regeln hinzuzufügen. Eine Regel besteht aus dem Typ des Bricklets (Temperature, Ambient Light, Humidity oder PTC), dessen UID und einem Wertebereich für Warning und Critical. Es können so viele Regeln hinzugefügt und konfiguriert werden wie benötigt.
Es ist zusätzlich möglich automatische E-Mail-Benachrichtigungen für die
Warning/Critical Bereiche zu aktivieren. Dazu muss einfach die
Enable Email Notification
Checkbox angeklickt und die
benötigten Informationen eingetragen werden.
Durch Klicken des Save Buttons wird die Konfiguration auf dem RED Brick
gespeichert. Nun kann über die Seite http://<red-brick-ip>/nagios/
oder http://<red-brick-ip>/nagios3/ (für RED Brick Image Version 1.9 und älter)
der aktuelle Zustand von Nagios abgerufen werden.
Die Standardeinstellung für Username:Password lautet nagiosadmin
:tf
.
Das Passwort kann über die Console durch folgenden Befehl geändert werden:
sudo htpasswd -c -b /usr/local/nagios/etc/htpasswd.users nagiosadmin <PASSWORT>
RED Brick Image Version 1.9 und älter:
sudo htpasswd -c -b /etc/nagios3/htpasswd.users nagiosadmin <PASSWORT>
Jede der Regeln wird in Nagios als ein Service angezeigt. Die Übersicht aller
Nagios Services kann über den Services
Link in der Kategorie
Current Status
erreicht werden.
Es gibt verschiedene Anwendungen für das Starterkit: Serverraum-Überwachung. Nachfolgend werden Beispiele präsentiert, die als Startpunkt für eigene Projekte dienen können.
In diesem Beispiel werden die Shell Bindings genutzt um die Sensoren des Kits auszulesen.
Enumerierung der Bricks und Bricklets ("Ist alles angeschlossen?"):
$ tinkerforge --host ServerMonitoring enumerate
uid=5VGUhR
connected-uid=0
position=0
hardware-version=2,1,0
firmware-version=2,4,10
device-identifier=master-brick
enumeration-type=available
uid=Jn6
connected-uid=5VGUhR
position=a
hardware-version=1,0,0
firmware-version=2,0,1
device-identifier=e-paper-296x128-bricklet
enumeration-type=available
uid=Jk3
connected-uid=5VGUhR
position=b
hardware-version=1,0,0
firmware-version=2,0,1
device-identifier=temperature-v2-bricklet
enumeration-type=available
uid=HyH
connected-uid=5VGUhR
position=c
hardware-version=1,0,0
firmware-version=2,0,1
device-identifier=ambient-light-v3-bricklet
enumeration-type=available
uid=Dkq
connected-uid=5VGUhR
position=d
hardware-version=1,0,0
firmware-version=2,0,6
device-identifier=humidity-v2-bricklet
enumeration-type=available
uid=6esErP
connected-uid=5VGUhR
position=1
hardware-version=2,1,0
firmware-version=2,4,10
device-identifier=master-brick
enumeration-type=available
uid=JmM
connected-uid=6esErP
position=a
hardware-version=1,0,0
firmware-version=2,0,2
device-identifier=motion-detector-v2-bricklet
enumeration-type=available
uid=Jop
connected-uid=6esErP
position=b
hardware-version=1,0,0
firmware-version=2,0,1
device-identifier=segment-display-4x7-v2-bricklet
enumeration-type=available
uid=J7d
connected-uid=6esErP
position=c
hardware-version=1,0,0
firmware-version=2,0,2
device-identifier=ptc-v2-bricklet
enumeration-type=available
Auslesen der verbundenen Sensoren (die UID ist anzupassen):
$ tinkerforge --host ServerMonitoring call temperature-v2-bricklet Jk3 get-temperature
temperature=2460
$ tinkerforge --host ServerMonitoring call ambient-light-v3-bricklet HyH get-illuminance
illuminance=410
$ tinkerforge --host ServerMonitoring call ptc-v2-bricklet J7d get-temperature
temperature=2389
Die Shell Bindings unterstützen die Ausführung von weiteren Shell Befehlen mit der
--execute
Option (siehe Shell Bindings für weitere
Informationen). Das nachfolgende Skript zeigt ein Beispiel wie der Rückgabewert
in Grad Celsius umgerechnet und anschließend in einer Variable für die
weitere Benutzung gespeichert werden kann.
#!/bin/sh
HOST=ServerMonitoring
TEMP_UID=Jk3
temp=$(tinkerforge --host $HOST call temperature-v2-bricklet $TEMP_UID get-temperature\
--execute "echo '{temperature} / 100' | bc -l | xargs printf '%.2f\n'")
echo $temp
Das nächste Skript zeigt, wie Text auf ein angeschlossenes E-Paper 296x128 Bricklet ausgegeben werden kann.
#!/bin/sh
HOST=ServerMonitoring
E_PAPER_UID=Jn6
tinkerforge --host $HOST call e-paper-296x128-bricklet $E_PAPER_UID fill-display 1
tinkerforge --host $HOST call e-paper-296x128-bricklet $E_PAPER_UID draw-text 0 0 4 2 0 $1
tinkerforge --host $HOST call e-paper-296x128-bricklet $E_PAPER_UID draw
Durch Kombination der des letzten Skripts (gespeichert als print_e_paper.sh) mit dem folgenden kann die aktuelle Temperatur auf dem E-Paper Bricklet angezeigt werden.
#!/bin/sh
HOST=ServerMonitoring
TEMP_UID=Jk3
temp=$(./tinkerforge_shell --host $HOST call temperature-v2-bricklet $TEMP_UID get-temperature\
--execute "echo '{temperature} / 100' | bc -l | xargs printf '%.2f\n'")
./print_e_paper.sh "Temperature:$temp\xF8C"
Bemerkung
Ein fertiges Icinga Check Plugin welches von Netways getwartet wird kann im icinga exchange gefunden werden: https://exchange.icinga.com/netways/check_tinkerforge
Icinga und Nagios sind Computer Überwachungswerkzeuge. Icinga ist ein Fork von Nagios und gilt als rückwärtskompatibel zu Nagios. Die dokumentierten Beispiele beziehen sich auf die Nagios API sind aber ebenfalls mit Icinga kompatibel.
Beide Überwachungswerkzeuge nutzen Plugins, instantiiert als Service, um die Auslastung des Prozessors, die Speicherbelegung, spezifische Software Prozesse oder physikalische Werte wie die Temperatur zu überwachen.
In diesem Beispiel wird ein eigenes Plugin geschrieben welches die Temperatur überwacht. Mit ein paar Modifikationen kann dieses Plugin genutzt werden um andere Tinkerforge Module auszulesen und so eine spezifische Überwachung zu ermöglichen.
Die vollständige Projektbeschreibung kann hier hier gefunden werden.
Der Abschnitt über Erweiterungsmöglichkeiten beinhaltet weitere Nagios/Icinga Beispiele.
Gerne führen wir hier Mods, Erweiterungen oder Verbesserungen des Kits auf. Bitte gebt uns Bescheid, wir verlinken hier gerne eure Projekte.
Das 19" Gehäuse ist bereits mit Aussparungen für ein Motion Detector Bricklet 2.0 und ein Segment Display 4x7 Bricklet versehen. Das Motion Detector Bricklet 2.0 kann dazu genutzt werden Bewegung im Server Raum zu detektieren. Mittels des Segment Display 4x7 Bricklets können spezifische Fehlercodes angezeigt werden.
Die vollständige Projektbeschreibung kann hier gefunden werden.
Ein Industrial Quad Relay kann dazu genutzt werden einen Computer Ein- bzw. Auszuschalten. Dazu muss nur der entsprechende Schalter des Computers mit einem der Relais des Industrial Quad Relay Bricklets überbrückt werden. Als Software kann eine modifizierte Variante der zuvor vorgestellten Beispiele genutzt werden. Eine Anleitung wie ein Schalter mit dem Quad Relay überbrückt werden kann, kann im Hardware Hacking für Anfänger Tutorial gefunden werden.
Martin Seener hat einen Check für Nagios entwickelt, der mittels Distance IR Bricklet überwacht, ob die Serverschranktür geöffnet wurde. Dazu ist das Distance IR Bricklet im Serverschrank montiert und misst die Distanz zur geschlossenen Tür. Ändert sich die Distanz signifikant wurde die Tür geöffnet.
Um einen passenden Schwellwert für den Check zu ermitteln wird über einen längeren Zeitraum die Standardabweichung der Messwerte des Distance IR Bricklets ermittelt. Auch dafür stellt Martin Seener ein Skript zur Verfügung.
Dieser Check ist der erste in einer Sammlung von Nagios Checks für Tinkerforge.