brainbits Blog

Hardware Hack: Serverraum-Überwachung selber basteln

Marco Fischer20.01.2016Hardware Hack

Die Idee

Ursprünglich waren wir nur auf der Suche nach einer neuen Monitoring Applicance, um den Stromverbrauch für die Überwachung unseres Serverraums zu senken. Das neue System sollte folgende Anforderungen erfüllen:

  • bis zu 4 Sensoren für Luftfeuchtigkeit und Temperatur
  • Sensoren patchbar über bestehende Verkabelung
  • einfache Zabbix-Integration
  • geringer Stromverbrauch
  • autonom
  • vertrauenswürdig
  • 19" Rack-montierbar

Die am Markt verfügbaren Applicances sind aber entweder nur über SNMP oder gar nicht integrierbar und kamen daher für uns nicht in Frage. Deshalb starteten wir spontan einen Hackathon, um eine offene Hardware für das Monitoring zu konstruieren.

Der Plan

Der grobe Bauplan war schnell gefunden: Es sollte ein Arduino-Projekt werden, das einen nativen Zabbix-Agent implementiert. Getreu dem Motto „form follows function“ wollten wir zunächst eine funktionsfähige Schaltung und die Software entwickeln, dann ein Gehäuse für das 19“-Rack maßschneidern. Das Gehäuse sollte in einem 3D-Drucker entstehen.

Die Einkaufsliste bestand aus:

  • Arduino Uno R3
  • Arduino Ethernet Shield R3
  • Arduino Proto Shield
  • 4x DHT22 Temperatur- und Luftfeuchte-Sensoren
  • 4x Cat.6 UTP RJ-45 Keystone Jack

Der Rest findet sich in jeder gut sortierten Kabelschrottkiste:

  • 4x alte RJ-11 oder RJ-45 Patchkabel (gute Gelegenheit, die Kabel, bei denen eine Nase abgebrochen ist, zu recyceln)
  • ein kurzes Stück Cat.7 STP Kabel

Dazu braucht man noch das übliche Werkzeug für Elektronikbasteleien, wie Lötstation, ein Auflegewerkzeug, Messgerät mit Durchgangsprüfer, Schrumpfschlauch usw.

Die Umsetzung

Bestandteile selbstgebaute Serverraumüberwachung

Der Großteil kann einfach zusammengesteckt werden. Nur die RJ-45-Buchsen müssen an das Arduino Proto Shield gelötet werden und die Patchkabel an die DHT22-Sensoren. Praktisch sind DHT22-Sensoren, die bereits auf einer Platine mit dem benötigten Widerstand montiert sind.

Erstaufbau selbstgebaute Serverraumüberwachung

Wir haben uns für folgende Pin-Belegung auf den RJ-45-Buchsen entschieden:
- Pin 2 Masse
- Pin 4 Signal DHT22
- Pin 7 Versorgungsspannung 5V
Diese Belegung funktioniert sowohl mit RJ-45-Patchkabeln als auch mit 6-poligen RJ-11-Kabeln.

Die Sensoren werden einfach an die Patchkabel gelötet und mit Schrumpfschlauch verschweißt. Wir haben einen Schrumpfschlauch gewählt, der auf der Innenseite mit Schmelzkleber beschichtet ist und dadurch eine sehr solide Verbindung schafft.

Schrumpfschlauch mit Schmelzkleber

Die RJ-45-Buchsen haben wir mit drei soliden Kupferkabeln aus einem Stück Cat.7-STP-Kabel bestückt und auf dem Arduino Proto Shield verlötet. Wir haben uns für das Signal der Sensoren für die Pins 5, 6, 7 und 8 auf dem Arduino entschieden, da das Ethernet Shield die Ports 4, 10, 11, 12 und 13 bereits verwendet.

RJ-45-Buchsen auf Arduino Proto Shield verlötet

Nun kann man die drei Platinen aufeinander stecken und mit der Entwicklung der Firmware beginnen. Wir haben uns aus Performancegründen dazu entschlossen, den Mikrocontroller timergesteuert die Sensoren abrufen zu lassen und die Werte für Anfragen des Zabbix-Servers im Speicher vorzuhalten. Der Zabbix-Agent entspricht im Prinzip einem Telnet-Server, der schnell implementiert ist. Nach gut einer Stunde lief der Zabbix-Agent und antwortete auf die Anfragen des Zabbix-Servers.

Für den Anfang haben wir vier Befehle implementiert:

  • agent.ping
  • agent.version
  • humidity.read.[0..3]
  • temperature.read.[0..3]

Im Prinzip sind hier aber nur durch den Flashspeicher Grenzen bei der Implementierung eigener Befehle gesetzt.

Das Gehäuse haben wir so kompakt wie möglich in Google Sketchup konstruiert und auf einem Dremel Idea Builder gedruckt.

Gehäusekonstruktion in Sketchup
Gehäusedruck für Serverraumüberwachung mit 3D-Drucker

Das Ergebnis konnte sich sehen lassen. Die Toleranzen waren mit 0,02 mm Schrumpfung von der Zeichnung zum physikalischen Gehäuse wirklich bemerkenswert. Nacharbeiten waren nicht mehr erforderlich und der Deckel rastete perfekt ein.

Gehäuse für Monitoring Serverraum aus dem 3D-Drucker
Gehäuse für Monitoring Serverraum aus dem 3D-Drucker Seitansicht

Nun konnten wir alles zusammenstecken. Zuerst die RJ-45-Buchsen in das Gehäuse clipsen…

RJ-45-Buchsen in Gehäuse clipsen Schritt 1
RJ-45-Buchsen in Gehäuse clipsen Schritt 2

…dann das Arduino-Sandwich in die Führungsschiene gleiten lassen…

Arduino-Sandwich in Führungsschiene gleiten lassen Schritt 1
Arduino-Sandwich in Führungsschiene gleiten lassen Schritt 1

… und Deckel drauf.

Deckel auf das Gehäuse des Serverraum-Monitorings setzen

Und ab ins Rack!

Selbstgebaute Serverraumüberwachung in Rack einsetzen

Fertig!

Weiterführende Links: https://github.com/marcofischer/arduino-zabbix-agent

Rechtlicher Hinweis: Weder der Autor dieser Anleitung noch brainbits haften für Schäden an Soft- oder Hardware oder Vermögensschäden, die durch das Benutzen dieser Anleitung entstehen, es sei denn diese beruhen auf einem grob fahrlässigen oder vorsätzlichen Handeln des Autors, seiner Erfüllungsgehilfen oder seiner gesetzlichen Vertreter. 

Zurück zur Übersicht