KlimaLogg Pro - Servermonitoring für kleines Geld

Diese Seite beschreibt ein einzelnes kommerzielles Produkt und die Integration in eine IT-Umgebung und kann nicht als Marktübersicht oder Empfehlung verstanden werden.

Wer Server betreibt, sollte auch die Umgebung überwachen. Vor allem Temperatur aber auch Luftfeuchtigkeit sind wichtige Faktoren. Hier beschreibe ich den Einsatz einer kostengünstigen "Home-Wetterstation" für den Servereinsatz und ihre Einschränkungen.

Klimalogger

Wenn Sie nach "Klimaloggern" suchen, finden Sie eine ganze Menge von kostengünstigen Geräten, die über Funk weitere Thermometer einbinden und auf einem großen Display anzeigen. für den Hausgebrauch ist das als "Wetterstation" meist ausreichend. Aber mir geht es hier darum, regelmäßig Messwerte zu erfassen, zu speichern, grafisch aufzubereiten und ggfls. Alarme zu generieren. Interessant ist dabei natürlich, wenn das Gerät selbst schon Daten sammeln und puffert und so ein PC diese nur ab und an abrufen (Polling) kann aber nicht "Realtime" aktiv sein muss.

Neben der Temperatur ist im ServerUmfeld natürlich auch die Luftfeuchtigkeit relevant. Zu feuchte Luft führt bei der Abkühlung in der Klimaanlage zu vermehrter Wasserabscheidung. Zu trockene Luft ist noch kritischer, da statische Aufladungen die Hardware gefährden können und trockene Luft weniger Wärme abführen kann. Diverse Quellen schreiben, dass die Luft in einem Serverraum zwischen 45% und 55% relative Feuchte haben sollte. Bei der Temperatur geht der Trend dazu, die Räume nur noch soweit zu kühlen, wie es für die Server erforderlich ist. Normale Server können auch bei 25-30 Grad ohne größere Ausfallraten funktionieren, was viel Strom sparen kann.

Auslöser war diesmal nicht mein IT-Bastelfaible, sondern die Überwachung mehrerer Kühlhäuser eines fleischverarbeitenden Nebenerwerbshofs, der mich bei einen großen Versandhaus auf folgendes Gerät aufmerksam gemacht hat.

Eine Basis mit eingebautem Temperaturfühler und Hygrometer und Platz für 50.000 Messwerte in einem Ringspeicher und dazu noch vier eigenständige Sender, die ebenfalls Temperatur und Luftfeuchtigkeit erfassen und per 868MHz an die Basis senden. Bis zu 8 Aussensender können angelernt werden. Zudem kann die Basis mit einem USB-Dongle kommunizieren, über den eine Software (Download unter http://tfa-dostmann.de/index.php?id=19&L=0) die Daten aus dem Logger auslesen kann. Gute Voraussetzungen für den primären Einsatzzweck aber schon bei der Installation habe ich gesehen, dass ich damit auch einen Serverraum relativ einfach überwachen kann. Daher ist diese Seite entstanden.

Aufbau

Zuerst müssen natürlich vier Sensoren und die Basis mit Strom versorgt werden. Netzteile sind teuer, benötigen eine Steckdose und haben eine Verlustleistung. All die Sender werden daher mit AA-Batterien betrieben, die sogar zum Lieferumfang gehören. Zuerst sollten Sie die Sensoren mit 2xAA bestücken, damit diese schon einmal ihre Arbeit aufnehmen können und alle 10 Sekunden ihren Messwert verwenden. Danach sollten Sie die Basis mit 3xAA in Betrieb nehmen. Die ersten 3 Minuten ist die Basis automatisch im "Lernmodul" und lernt nun alle Sensoren, die in ihrer Umgebung senden. Damit man nicht die Sensoren des Nachbarn lernt, lassen sich Sensoren nur in den ersten 3 Stunden nach Einlegen der Batterie anlernen. Es ist aber natürlich möglich einen Sensor an mehrere Basen anzulernen.

Die Zuordnung der Sensoren ist über eine eindeutige 4-stellige Hex-Zahl (65536 Kombinationen) möglich, die im Display angezeigt wird und auf dem Sensor aufgedruckt ist. Wenn die Basis nicht allzu tief im Keller vergraben ist, sucht Sie sich ihre uhrzeit anhand des DCF77-Signals auch noch selbst. Nach wenigen Minuten sollten Sie dann in der Basis alle Sensoren verbunden haben und die angelieferten aktuellen Messwerte sehen können.

Sie können natürlich auch an der Basis diverse Dinge einstellen, aber wen Sie sowieso die Software verwenden, dann ist dort vieles einfacher. Ansonsten hilft die sehr umfangreiche und in verständlichem Deutsch geschriebene Bedienungsanleitung weiter.

Software im Einsatz

Interessant wird das System natürlich nun mit der Software, die Sie von  http://tfa-dostmann.de/index.php?id=19&L=0 herunterladen und auf einem PC installieren können. Die Software spricht mit einer SHID.DLL mit dem am PC angeschlossenen USB-Stick, der per Funk mit der Basis spricht, wobei hier die Entfernung maximal 10m sein soll. Die Software kann bis zu zehn! dieser Basen ansprechen, so dass Sie bis zu 80 Funksender insgesamt auswerten können. Das sollte für die meisten Umgebungen ausreichend sein.

Die Installation der Software ist schnell erfolgt und auch der USB-Dongle wird per PNP erkannt und der Treiber installiert.

Windows sieht dabei zwei generische HID-Geräte, deren VendorID aber "6666" ist. Diese Nummer ist eigentlich für Prototypen reserviert und sollte nie produktiv genutzt werden. Allerdings ist das Risiko doch gering, dass dies ein Problem werden kann. Der Fehler liegt hier aber nicht bei TFA sondern beim Zulieferer, der dieses Modul beigesteuert hat.

Danach müssen Sie den Dongle nur noch nach Anleitung mit der Basis "synchronisieren", wobei sich die Software und dis Basis wohl gegenseitig eintragen. Dies ist ein einmaliger Prozess. Die Software liest dann aus dem Logger alle Daten aus und speichert sie anscheinend lokal in einer SQLite-Datenbank. Da die Basis bis zu 50.000 Werte speichert, passen bei einem 15Min Intervall knapp über 100 Tage in den Speicher. für ein "Heimgebrauch" reicht es in der Regel aus, diese Daten ab und an abzurufen. In der Übersicht sehen Sie alle Sensoren nebeneinander mit den Messwerten:

Laut Hersteller (TFA) ist hier aber eine Version 1.3 geplant, in der auch eine grafische Aufbereitung enthalten sein soll. Wenn Sie einen Sensor einzeln anzeigen, dann sehen Sie rechts die von der Software ermittelten Min/Max-Werte und sie können hier auch Alarmwerte und den Namen des Sensors hinterlegen.

Die Alarme können z.B. dazu genutzt werden, um später in der Ansicht nur die Alarmwerte zu zeigen.

Die Basis selbst hat aber auch noch "Open Collector" Schaltausgänge, mit denen Sie bei Überschreitung und unterschreitung von Kanal 1 verschiedene Aktionen auslösen können. Denkbar wäre z:B. ein Alarm bei Temperaturüberschreitung oder vielleicht die Ansteuerung eines Luftbefeuchters bei unterschreitung der relativen Luftfeuchte. Die Anschaltung ist im Handbuch ebenfalls beschrieben.

Seit der Version 1.3 kann KlimaloggPro auch die Daten selbst grafisch aufbereiten. für den Heimgebrauch ist das natürlich schon eine große Erleichterung.

Das Bild hier zeigt einen Sensor in einem Kühlhaus, der am 5. März 2014 eingebaut wurde und seit dem meist um die 2-3 Grad pendelt. Sie können die Daten auch als CSV-Datei exportieren und dann in Excel oder einem anderen Programm ihrer Wahl entsprechend aufbereiten.

Einsatz im Server

Für den Einsatz im Serverraum ist eine interaktive Software natürlich nicht sinnvoll einzusetzen. Durch die Installation von KlimaLogg Pro kann aber auch ein Dienst aktiviert werden, der auch ohne angemeldeten Benutzer oder gestartetes Programm die Daten per USB ausliest und den jeweils aktuellen Datensatz in eine Datei schreibt. Über das Menü "Extras - Optionen" kommen Sie an die Einstellung:

Dann startet ein Windows-Dienst, der aus der Basisstation, die auf Kanal 1 aktiv ist, die Daten aus und schreibt diese in die angegebene Datei. Der Dienst selbst benötigt dabei nur wenig Ressourcen.

Die Ausgabe selbst ist im Format einer INI-Datei angelegt, also keine moderne Version als XML-Struktur. Aber auch INI-Dateien können ja einfach ausgewertet werden. Technisch ist es nur möglich, den Kanal 1 auszulesen, so hier auf die ersten 8 Sensoren pro PC beschränkt sind.

[header]
programm_name=KlimaLogg Pro
programm_version=1.0
file_format_version=1.0

[time]
last_actualisation="3605641003"

[temperature_channel_0]
deg_C="23.9"
deg_F="75.1"

[humidity_channel_0]
percent="48"

[dewpoint_channel_0]
deg_C="12.3"
deg_F="54.1"

[alarm_channel_0]
Temperature_HIGH="Off"
Temperature_LOW="Off"
Humidity_HIGH="Off"
Humidity_LOW="Off"

In dieser Datei landen die bis zu 9 Datenquellen (1x die Basis + 8 externe Sensoren) mit der Temperatur, der Luftfeuchte und darauf errechnet der Taupunkt, d.h. ab welcher Temperatur dann die 100% erreicht wären und Wasser aus der Luft ausgeschieden wird.

Der Wert von "last_actualisation="3605641003" entspricht der Anzahl der seit dem 1.1.1900 00:00 GMT vergangenen Sekunden, wie sie mit PowerShell sehr schnell ermitteln können. Hier eine Messung ca. 42 Sek nach dem Schreibvorgang.

PS C:\> (Get-Date).touniversaltime().addseconds(-3605641003)

Montag, 1. Januar 1900 00:00:42

Wer mag kann also hier noch zusätzlich den Zeitpunkt der Messung ermitteln, vom  und so Ausbleibende Daten erkennen, z.B. mit:

PS C:\> ((Get-Date).touniversaltime().addseconds(-$lastactualization) -  (get-date 1.1.1900)).totalminutes -eq 5

Diese Datei wird von dem Dienst jede Minute immer wieder neu geschrieben, wie mit ProcMon (Sysinternals) recht gut zu sehen ist.

Auch wenn eine eigene Software nicht direkt auf den USB-Stick oder gar die Basis zugreifen kann, so kann ich zumindest diese Datei immer mal wieder einlesen. 

Einbindung in PRTG

PRTG kann über einen Custom Sensor nahezu alle Datenquellen auslesen. Wenn nun KlimaLogg Pro regelmäßig eine Datei ablegt, dann kann ich über einen eigenen Sensor diese Datei natürlich auch auslesen und die Daten in PRTG einbinden. Sollte PRTG "virtuell" laufen, dann müssen Sie einen Weg finden entweder den den USB-Stick in die VM durchzureichen oder sie installieren KlimaLoggPro auf einem realen PC und greifen von PRTG über einen UNC-Pfad auf die Datei zu. So lässt sich auch die Virtualisierung umgehen.

Dann fehlt natürlich nur noch ein kleines Skript, welches die vom KlimaloggPro alle Minute angelegte Datei ausliest und an PRTG übergibt. Die passenden Vorarbeiten, wie das geht, finden Sie auf PRTG:Custom Sensor. Ich habe einen Code von PS INI-Datei zum Einlesen der INI-Dateien genommen um daraus eine PRTG-Ausgabe zu erstellen.

prtg-tfareader.1.0.ps1

Das Skript kopieren Sie in das Verzeichnis "C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML" und dann müssen Sie in dem PowerShell-Skript oder per Parameter natürlich noch den Pfad zu Klimalogg Pro-Datei ggfls. anpassen.

Leider kann man in PRTG selbst keine älteren Daten importieren. Das wäre zu schön um so z.B. die CSV-Datei mit allen Messwerten aus der Basis direkt in PRTG zu bringen. So könnten beim Start schon historische Daten importiert und auch bei einem Ausfall die fehlenden Daten nachgereicht werden. Leider gibt es PRTG dies noch nicht her.

Dennoch sind die Daten schon sehr hilfreich um Temperaturverläufe an verschiedenen Stellen im Serverraum zu überwachen. Hier ein Beispiel auf Basis von PRTG. mit

Interessant ist auch eine Auflösung über mehrere Tage. Hier ist gut zu sehen, das der grüne Sensor immer wieder um ein paar Grad schwankt und die rote Linie zwar mit weniger Ausschlag aber gegenläufig ist.

Ich bin gespannt, wie sich die Anzeige über das Jahr hinweg entwickelt. 14 Tage im April haben gezeigt, dass die Temperatur relativ unverändert ist aber die Luftfeuchtigkeit sich ändert.

Daher habe ich mal rechts davon die externe Luftfeuchtigkeit erfasst und anscheinend wirkt trockene Außenluft durchaus bis in den Serverraum durch. Ich habe leider keinen Sensor direkt vor dem Auslass der Klimaanlage. Bedenken Sie aber, dass die relative Feuchte durch die Aufwärmung sehr stark abnimmt.

Wenn 40 Grad warme Luft bei 20% Feuchte nur 6g Wasser/qm enthält, so sind dies über 60%, wenn die Luft auf 10Grad abgekühlt wird. Dennoch ist es in dem Serverraum vielleicht etwas trocken. Auf wenigen qm kann man aber schlecht mit Wassersprühern die Luft befeuchten, wenn die Klimatisierung dann die Feuchtigkeit sofort wieder abscheidet und nach draußen portiert.

Welcher Sensor wo ist, müssen Sie leider selbst nachhalten. Sie können zwar in der KlimaLogPro-Software jedem Sensor einen Namen geben aber leider wird in die Datei "KlimaLogg.dat1" weder der Name noch die SensorNummer geschrieben (Stand April 2014). Sie könnten aber im PowerShell-Skript natürlich den Kanal entsprechend benennen. Das Skript prüft aber z.B. das Alter der Daten und meldet einen Alarm, wenn die Datei nicht aktualisiert wurde. Im Alarmlog ist dies auch gut zu sehen.

Die Fehlerüberwachung ist wichtig, denn wenn der USB-Link zwischen dem Dongle und der Basis verloren geht, dann wird er nicht mehr automatisch aufgebaut. Laut Hersteller kostet der permanente USB-Link natürlich mehr Strom, so dass die Batterien in der Basis nach 3-4 Monaten getauscht werden müssten. Letztlich dürfte das aber immer noch günstiger sein als ein Steckernetzteil zu betreiben. Insofern ist es Absicht, dass die Verbindung nach einem Neustart des Computers nicht alleine wieder aufgebaut wird, da im Consumer-Bereich die reduzierte Batterielaufzeit der Basis negativ aufgefasst werden könnte. Wir könne aber damit leben nach einen Neustart des Servers oder einem Batteriewechsel durch PRTG auf den Datenverlust hingewiesen zu werden und einmal den USB-Knopf zu drücken.

Übersichtsbild

Die ganze Kette ist dann eine Verbindung der Sender zur Basis per 868 MHz Funk über eine zweite Funkstrecke zum USB-Dongle, der von Klimalogger-Service ausgelesen wird. Dieser schreibt alle Minute die Daten in einer Datei, welche dann von einem CustomSensor ausgelesen wird, den PRTG alle 5 Minuten startet, die Daten einsammelt und auf Zuruf visualisiert:

Sieht komplizierter aus, als es eigentlich ist.

Einschränkungen

Die Hardware "KlimaloggPro" macht einen ausgereiften Eindruck und ist preislich interessant. Natürlich hat der Hersteller wohl nicht Echtzeit-Aufbereitung der Daten z.B.: in einem Serverraum als Ziel gehabt. Insofern ist es auch kein Mangel, wenn bestimmte Dinge dafür nicht optimal sind, welche da wären:

  • Entfernung
    Die Daten werden per Funk auf 868MHz übertragen. Bis zu 100m sind angeblich drin, aber natürlich nicht in einem Serverraum mit viel Metall-Racks etc. Ein Sensor im Rack selbst hat es schwer da raus zu kommen. Es gibt aber auch einen Sensor mit Kabelfühler. Das wäre dann für ein Rack vielleicht besser, wenn der Sender dann außerhalb platziert werden kann. In einem RZ könnte man auch auf Funk verzichten aber gerade die Consumer-Produkte zeichnen sich aufgrund der Masse auch durch einen geringen Preis aus.
  • Nur Kanal 1
    Der Dienst liest die erste Basis mit ihren bis zu 9 Sensoren aus. Technisch könnte eine Software sicher auch mehre Basen zu lesen, aber auch 9 Sensoren sind bei vielen kleinen und mittelständischen unternehmen deutlich mehr als "keine Überwachung".
  • Manueller Linkaufbau
    Immer wenn der PC gebootet wird, verlieren sich der USB-Dongle und die Basis. Das ist sehr unschön. Natürlich bekomme ich in PRTG dann den "Fehler" mit, dass die Daten zu alt sind und ein Druck auf den USB-Knopf an der Basis heilt das Problem, aber das ist unschön. Die Basis ist ja eh immer "empfangsbereit" für die Sensoren. Da sollte es auch kein Problem sein, ein Paket des USB-Dongle ohne vorherigen Druck anzunehmen.

Wünsche

Daraus leiten sich natürlich auch Wünsche ab, die vielleicht in eine Weiterentwicklung durch den Hersteller führen könnten.

  • Basis immer auf Empfang und eine Kommandozeile zum direkten Abfragen des USB-Senders
    Das dürfte vermutlich noch am einfachsten zu realisieren sein. Das dürfte aber wohl nur für neue Hardware zutreffen, da ich auf die schnelle keine Schnittstelle für ein Firmware Update gefunden haben.
  • USB-Empfänger
    Interessant wäre auch einfach ein "Empfänger" für die 868MHz Signale, der ganz ohne Display o.ä. auskommt und nur die Daten per USB oder Ethernet bereit stellt. Wenn das "Protokoll" der Sender offen wäre, könne man ja einen RaspberryPi mit einem Empfänger dafür verwenden. Oder die Basis bekommt einen USB-Anschluss spendiert um vom PC gleich mit Strom versorgt zu werden und die Funkstrecke zum Dongle einzusparen.
  • "Luxus-Version" mit WiFi oder Ethernet-Zugang zum Speicher mit einer CSV-Date oder HTTP-Download
    Die ganzen Zwischenschritte mit USB-Dongle, Peering etc. wären natürlich eleganter per WiFi zu lösen. Es gibt verschiedene "fertige" WiFi-Module im Bereich von 10-30€ (Siehe auch IWY-Light u.a.) mit denen solche Bausteine "Internet Tauglich" gemacht werden können. Ich denke selbst mit einem Preisaufschlag wäre da ein Markt.
  • PRTG-History
    Einen Wunsch kann aber nicht TFA sondern nur Paessler erfüllen. Aktuell ist es noch nicht möglich vorhandene historische Daten, die man aus dem Klimalogg Pro problemlos als CSV-Datei mit Zeitstempel auslesen kann, wieder zur Darstellung zu importieren.

Vielleicht überrascht uns die Zukunft mit dem ein oder anderen Geschenk.

Bewertung

Interessant, wie günstig eine solche Lösung sein kann, wenn sie im müssenmarkt auf der Straße bestehen muss und nicht als "Spezialgerät für den RZ-Einsatz" verkauft werden kann. Wer gezielt nach RZ-Lösungen sucht, die am besten noch Ethernet an Bord haben und SNMP, HTTP, Syslog sprechen, wird feststellen, dass selbst ein einfaches Thermometer schon 150€ und mehr Euro kostet und wer noch Luftfeuchte müssen möchte und in dem Beispiel bis zu 8 Sensoren verteilen will, muss deutlich tiefer in die Tasche greifen.

Die TFA-Lösung ist für mittlere und kleine Firmen vermutlich schon ausreichend und selbst der Verzicht auf Netzteile oder direkten Ethernet-Anschluss ist zu verzeihen. Die erforderliche Reaktivierung des USB-Links müsste nicht sein vielleicht gibt es ja irgendwann eine WiFi-Version. Dennoch ist auch die aktuelle Version durchaus brauchbar, da die Basis die Daten auch ohne PC loggen kann und wenn der Link verloren geht, dann kann man das auch bei der Auswertesoftware einfach an fehlenden Daten erkennen. Ein Druck auf den USB-Knopf und die Verbindung steht wieder.

Alternativen

Wenn Sie einfach mal nur schnell eine Temperatur per IP auslesen wollen, dann ist die folgende Seite interessant.

Besonders durch die Basis wird das Thema interessant, da diese per IP erreichbar ist und die Temperaturwerte auch erfasst und gespeichert werden können. Allerdings sind diese Module in der Summe schon einiges teurer, wenngleich oft noch günstiger als die verschiedenen "Netzwerk Thermometer. Allerdings können Sie damit durchaus weiteren Nutzen erzeugen, indem Sie z.B. einen Türkontakt als Alarmsensor einbinden oder die Leistungsaufnahme müssen.

Wer mehr basteln will, kann natürlich auch einen RaspberryPi mit ein paar 1-Wire-Sensoren für Temperatur und Luftfeuchtigkeit verbauen. Die Hardwarekosten sind noch mal deutlich geringer aber der Bastelfaktor überwiegt hier.

Auch die Firma ELV hat Funksensoren, für die es sogar ein Empfängermodul gibt, welches per serieller Schnittstelle die Daten abfragt. Wer das ganze dann mit einem Arduino o.ä. verbinden, kann vielleicht noch günstiger eine Temperatur/Feuchte-Überwachung erreichen. Allerdings erst mal ohne Speicher.

Wer weis, vielleicht nehme ich mal meinen Arduino Ethernet oder RaspberryPi dazu her um FS20 Sender abzufragen.

Weitere Links