Starterkit: Serverraum-Überwachung

Features

Beschreibung

Das Starterkit: Serverraum-Überwachung ist ein Open Source Kit um Serverraum-Installationen zu überwachen. Das Basiskit ist mit folgenden Sensoren ausgestattet: Ambient Light Bricklet 2.0 (überwacht z.B. die Raumbeleuchtung), Humidity Bricklet 2.0 (überwacht Luftfeuchtigkeit), Temperature Bricklet (überwacht die Temperatur im Rack) und ein PTC Bricklet 2.0 mit Pt100 Temperaturfühler (z.B. zum Überwachen der Temperatur in einem Server).

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:

  1. 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#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET) abgefragt werden. Somit können individuelle Lösungen einfach realisiert werden. Beispiele für Bash, Nagios/Icinga und Xively demonstrieren die Nutzungsmöglichkeiten.

  2. 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. Folgende Module können direkt befestigt werden:

Analog In Bricklet 2.0, Analog Out Bricklet 2.0, Industrial Digital In 4 Bricklet, Industrial Digital Out 4 Bricklet, Industrial Quad Relay Bricklet, IO-4 Bricklet, Motion Detector Bricklet 2.0, und Segment Display 4x7 Bricklet.

Technische Spezifikation

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

Ressourcen

Erste Tests, Firmware-Aktualisierung und Konfiguration

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):

Serverraum-Überwachung Hardware Update im Brick Viewer

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.

Konstruktion

Der Aufbau der Basisversion des Kits ist hier beschrieben.

RED Brick

Wenn das Kit zusammen mit einem RED Brick benutzt wird, kann Nagios auf dem RED Brick direkt über den Brick Viewer konfiguriert werden.

Nagios Konfiguration im Brick Viewer

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>/nagios3/ der aktuelle Zustand von Nagios abgerufen werden.

Nagios Webseite

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 /etc/nagios3/htpasswd.users nagiosadmin NEWPASSWORD

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.

Projekte

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.

Einfaches Monitoring

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=6Dct25
connected-uid=0
position=0
hardware-version=1,0,0
firmware-version=2,1,0
device-identifier=master-brick
enumeration-type=available

uid=fow
connected-uid=6Dct25
position=a
hardware-version=1,0,0
firmware-version=2,0,0
device-identifier=ptc-bricklet
enumeration-type=available

uid=SCT31
connected-uid=6Dct25
position=b
hardware-version=1,1,0
firmware-version=2,0,1
device-identifier=temperature-bricklet
enumeration-type=available

uid=ajC
connected-uid=6Dct25
position=d
hardware-version=2,0,0
firmware-version=2,0,0
device-identifier=ambient-light_v2-bricklet
enumeration-type=available

Auslesen der verbundenen Sensoren (die UID ist anzupassen):

$ tinkerforge --host ServerMonitoring call temperature-bricklet SCT31 get-temperature
temperature=2487

$ tinkerforge --host ServerMonitoring call ambient-light-v2-bricklet ajC get-illuminance
illuminance=410

$ tinkerforge --host ServerMonitoring call ptc-bricklet fow get-temperature
temperature=2603

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
UID=SCT31

temp=$(tinkerforge --host $HOST call temperature-bricklet $UID get-temperature\
       --execute "echo '{temperature} / 100' | bc | xargs printf '%.2f\n'")
echo $temp

Serverraum-Überwachung mit Nagios oder Icinga

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.

Icinga Screenshot

Die vollständige Projektbeschreibung kann hier hier gefunden werden.

Der Abschnitt über Erweiterungsmöglichkeiten beinhaltet weitere Nagios/Icinga Beispiele.

Sensordaten an Xively übertragen

Bei Xively handelt es sich um einen Dienst, der die Möglichkeit bietet das "Internet der Dinge" zu analysieren und zu visualisieren. Der Dienst kann dazu genutzt werden verschiedene Geräte über das Internet miteinander zu verbinden. Er kann eine Historie von Messwerten speichern und visualisieren.

Xively Datenstrom konfiguration

Die vollständige Projektbeschreibung kann hier gefunden werden.

Erweiterungsmöglichkeiten

Gerne führen wir hier Mods, Erweiterungen oder Verbesserungen des Kits auf. Bitte gebt uns Bescheid, wir verlinken hier gerne eure Projekte.

Bewegungsmelder und Fehlercode Anzeige

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.

Erweiterte Version des Kits

Remote Ein/Aus Schalter

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.

Kit Mit Industrial Quad Relay Bricklet

Serverschranktür-Überwachung mit Distance IR Bricklet

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.