Wie jede andere Software hat auch Icinga Grenzen, wo es nur sehr schwer fällt ein Szenario optimal in der Überwachung abzubilden. Icinga ist z.B. darauf ausgelegt den Status eines gewissen Objektes zu überwachen, und wenn dieser gestört ist das zu melden – so lange der Status gestört ist.
Wenn es nun aber um Ereignisse geht, also kein dauerhafter Status, sondern nur eine einmalige Benachrichtung über einen Fehler, fällt es einem recht schwer dies in Icinga einzubauen.
Beispiele für solche Ereignisse:

  • SNMP Traps
  • Syslog
  • MS Eventlog
  • Alarme anderer Überwachungssysteme
  • bestimmte E-Mail Meldungen

Ein Weg dazu ist ein kleines Datenbank Framework namens EventDB.
Die Idee dahinter ist, eine Datenbank zu haben die von verschiedenen Adaptern befüllt wird (dazu reicht grundsätzlich ein simples Datenbankskript) und diese Datenbank dann mit einem Icinga Plugin zu überwachen. Die Überwachung erlaubt Filterung nach Systemname, Schweregrad, Meldungstext und Zeit.
Das Plugin stellt fest dass neue Events vorhanden sind und kann über die normalen Methoden von Icinga den Admin benachrichtigen. Dieser wirft einen Blick in die EventDB über das Webinterface und bestätigt, bzw. bearbeitet die einzelnen Ereignisse. Sobald alle Ereignisse bestätigt sind wird der Servicestatus in Icinga wieder grün.
Beispiel:
Der Switch “switch-3-A” stellt fest, dass Port 12 down ist und sendet einen SNMP Trap an den Icinga Server. Dort empfängt SNMPTT den Trap, verarbeitet die Nachricht und schreibt eine Zeile in die EventDB.
Eine Minute später wird check_eventdb von Icinga ausgeführt, dieser prüft ob für Host “switch-3-A” in den letzten 24 Stunden Events vorliegen, die unacknowledged sind und mindestens Schweregrad “warning” haben. Dies trifft zu und das Plugin meldet Ergebnis WARNING mit einem kurzen Auszug des Events an Icinga zurück.
Der Admin kann nun die Events prüfen und reagieren, der Status springt erst wieder auf OK wenn die betreffenden Events bestätigt sind.
Integration:
Die EventDB kann sowohl ins klassische Webinterface, als auch in Icinga Web integiert werden. So kann man eine direkte Verbindung zwischen der Überwachung und dem Addon schaffen.
Beide Schnittstellen erlauben das Filtern der Suchergebnisse und bearbeiten von Kommentaren und Bestätigungen zu allen Ereignissen.
  
Links und weitere Ressourcen:
EventDB auf netways.de
Wiki und Details auf netways.org (in English)
EventDB Git Repo

Markus Frosch
Markus Frosch
Principal Consultant

Markus arbeitet bei NETWAYS als Principal Consultant und unterstützt Kunden bei der Implementierung von Nagios, Icinga und anderen Open Source Systems Management Tools. Neben seiner beruflichen Tätigkeit ist Markus aktiver Mitarbeiter im Debian Projekt.