Tinkering Arduino

eine kleine Welt der Elektronik.

Icinga Status Ampel (Traffic Light)

Bild meiner ersten funktionierenden Icinga Status Ampel

Die erste Version meiner Icinga Ampel zeigt den Status aller Server-Services. Im Gegensatz zu ähnlichen Projekten wird der Arduino Ethernet nicht durch den Webserver selbst gesteuert, sondern es werden die Daten selbst abgerufen. Dies hat den Vorteil, dass der Arduino keine feste IP benötigt.

Idee

Icinga, entstanden aus dem Fork von Nagios wird zum Monitoring von Servern genutzt. Für die detaillierte Darstellung der einzelnen Hosts und Services ist das Webtool weiterhin unverzichtbar. Ich suchte nur nach einer Möglichkeit, den Status zu erfahren, ohne ständig die Seite laden zu müssen. Wie eingangs geschrieben, gibt es vergleichbare Projekte (siehe z.B.: http://www.edvler-blog.de/icinga_nagios_traffic_light_with_network/). Bei den gefundenen Projekten läuft ein Script auf dem Monitoring Server, welches dann auch den Status für die LEDs setzt. Da ich aber plane, die Ampel an verschiedenen Stellen einzusetzen und somit über keine feste IP verfüge, über die mein Arduino Ethernet erreichbar wäre, sollte der Arduino selbst die Daten holen.

Voraussetzungen

Derzeit funktioniert mein Arduino Sketch nur für Icinga mit installiertem Icinga Web. Icinga Web bietet eine API, über die mein Arduino die notwendigen Daten holen kann. Dazu wurde auch ein eigener Benutzer angelegt, der sich per Schlüssel authentifiziert.

Material

  • Arduino Ethernet oder Arduino mit Ethernet Shield
  • 3 LEDs
  • 3 NPN Transistoren
  • Breadboard
  • ein paar Drähte und Drahtbrücken
  • ggf. zusätzliche Spannungsversorgung
  • ggf. Vorwiderstände für die LEDs
Hinweis: Die für die erste Version verwendeten LEDs benötigen mindestens 5,75 V, so
dass die Versorgung über den Arduino nicht erfolgen kann und ich eine eigene zusätzliche
Spannungsquelle verwende. Sollten andere LEDs eingesetzt werden, kann die Schaltung
ggf. vereinfacht werden, in der die Transistoren entfallen und die LEDs mit einem
Vorwiderstand versehen werden. Darauf möchte ich aber im Folgenden nicht eingehen.

Schaltplan

Schaltplan der Icinga Status Ampel

Zu diesem recht einfachen Schaltplan gibt es nicht so sehr viel zu sagen. Ich verwende die digitalen Ausgänge 7,8,9 für die drei unterschiedlichen Angaben OK, WARNING, CRITICAL. Diese werden durch die drei verschiedenen LEDs wiedergegeben.

  1. 9 = CRITICAL = rote LED
  2. 8 = WARNING = gelbe LED
  3. 7 = OK = grüne LED

Wie die Auflistung schon Nahe legt, wird der Status gewichtet. Es soll durch das Programm geregelt werden, dass immer nur eine LED leuchtet. Dabei gilt, wenn ein Service CRITICAL ist, bleibt die gelbe und grüne LED aus. Ist ein Service im Status WARNING und es gibt kein Service mit dem Status CRITICAL leuchtet die gelbe LED. Nur wenn alle Services im Status OK sind, leuchtet die grüne LED. Da die verwendeten LEDs eine Mindestspannung von 5,75 V benötigen, werden diese über eine zusätzliche Spannungsquelle versorgt. Die Ansteuerung erfolgt über einen Transistor. Soll der Status WARNING ausgegeben werden, wird der PIN 8 auf HIGH gesetzt. Dadurch fließt am NPN Transistor ein Strom zwischen Basis und Emitter, was zur Folge hat, dass auch ein Strom zwischen Collector und Emitter, also der Stromkreis der gelbe LED geschlossen ist.

Steckplatine der Icinga Status Ampel

Programm

Das Programm wird im Laufe des Tages noch aktualisiert und angepasst und bei Github und Bitbucket zu finden sein.

Ausblick

Ich habe schon ein paar Ideen für die Erweiterung der Ampel. Dazu gehören neben ein paar anderen LEDs und einem Gehäuse für die Ampel weitere Funktionen. Diese möchte ich an dieser Stelle aber noch nicht verraten.

Comments