Direkt zum Inhalt
Eric Zillmann
Automatisches Monitoring mit Icinga

Wer mit Webseiten oder anderen digitalen Produkten arbeitet, weiß um die Wichtigkeit, Funktionen und Performances ständig zu überwachen. Ausfälle von Features oder zu lange Ladezeiten aufgrund technischer Fehler oder Überlastung können mitunter kritisch für das ganze Unternehmen sein. Ein Admin müsste theoretisch den ganzen Tag die Funktionalitäten überwachen. Um Entwickler und Systemadministratoren zu unterstützen, werden verschiedene automatische Monitoring-Dienste angeboten. Wir bei arocom nutzen Icinga.

Inhalt

Was ist Icinga?

Icinga ist ein Open Source Monitoring Tool. Es sammelt Status-Daten, wertet diese aus und wenn ein kritischer Zustand erreicht wird, so kann dies über verschiedenste Kanäle mitgeteilt werden. Beispielsweise die Ladezeit einer Webseite: Schwankungen sind normal. Solange die Ladezeit in einem vorher festgelegten Bereich schwankt, registriert Icinga dies, jedoch wird dem Administrator noch keine Nachricht gesendet. Sollte die Ladezeit jedoch über einen (ebenfalls vorher festgelegten) kritischen Wert steigen oder die Webseite gar nicht mehr erreichbar sein, benachrichtigt Icinga den Admin über einen der Kanäle wie E-Mail, SMS, Slack, Skype oder auch ein Ticketsystem.

Prinzipiell kann das Tool für alles, was über einen Computer erreicht werden kann, verwendet werden - vom Webserver bis zur vernetzten Kaffeemaschine (Stichwort: Internet of Things). Es gibt inzwischen eine große Zahl an Schnittstellen zu verschiedensten Systemen, sodass Icinga mit einem Account gleichzeitig für mehrere, unterschiedliche Projekte genutzt werden kann.

Icinga ist ein sogenannter Fork1 von Nagios, welcher viele Neuerungen mit sich bringt und zum Teil kompatibel mit dem ursprünglichen Tool ist.

Fork bei Nagios und Icinga

Ein großer Vorteil ist, dass Icinga bzw. Nagios weit verbreitete, solide Tools sind, für die es bereits eine Großzahl an frei verfügbaren Tests gibt, mit denen Funktionalitäten geprüft werden können. Da die Tools mit verschiedenen Programmiersprachen zurecht kommen (kompiliertes C, Shell Scripte, Perl sowie Python, um nur ein paar wenige zu nennen), können sie leicht um eigene Tests erweitert werden.

Wie sieht die Benutzeroberfläche aus?

Die Benutzeroberfläche von Icinga (Version 2) sieht standardmäßig folgendermaßen aus:

Benutzeroberfläche von Icinga

Links können Testergebnisse über die Navigation erreicht werden. Das Dashboard ist konfigurierbar, um dem Admin einen schnellen Überblick über die aktiven Projekte zu geben. Durch die farblichen Elemente können Probleme schnell gefunden und die Lage leicht eingeschätzt werden: Erfolgreiche Tests werden durch grüne Einträge dargestellt. Fehler sind rot markiert und bei violetten Einträgen konnte in der Regel der Zustand nicht abgefragt werden.

Zusätzlich können noch Details ausgegeben werden, um das Problem weiter einzugrenzen und es schließlich zu lösen.

Icinga bietet die Möglichkeit, mehrere Projekte innerhalb einer Benutzeroberfläche zu monitoren. Das ist gerade für die Arbeit mit vielen Projekten sinnvoll und spart viel Zeit und Arbeit für den Admin.

Wie funktioniert Icinga?

Informationsfluss bei Icinga

Die Abbildung zeigt, wie die Informationsweiterleitung bei Icinga bzw. Nagios läuft: Objects (z. B. Webserver, Router oder Application Server) sind über Schnittstellen mit dem Tool verbunden. Active Checks sind Tests, die von Icinga ausgehen und auf den Objects ausgeführt werden. Die Resultate werden dann an das Tool zurückgesendet. Der Admin kann dabei festlegen, in welchem Turnus die Tests ausgeführt werden. Passive Checks werden von anderen, externen Applikationen durchgeführt. Wenn ein vorher definierter Status (i. d. R. kritisch) erreicht ist, sendet Icinga diesen Status an den Admin, z. B. über den Browser, als SMS oder als E-Mail. Je nach Plugin können weitere Nachrichtendienste oder auch Display Tools verwendet werden. Wir bei arocom nutzen E-Mail und Slack. Dadurch gewährleisten wir schnelle und zuverlässige Bearbeitung der Fehler.

Wofür verwendet arocom Icinga?

Als Drupal-Agentur haben wir viele Webprojekte parallel laufen und betreiben auch eigene Server. Mit Icinga haben wir ein Tool, das unsere Entwickler bei der täglichen Arbeit unterstützt und uns Fehler finden lässt, bevor unsere Kunden diese bemerken. Wir prüfen unter anderem damit, ob:

  • Unsere Webserver erreichbar sind
  • Backups erstellt werden
  • Deployments möglich sind2
  • Webseiten kompromittiert wurden
  • Cron ausgeführt wird3
  • Drupal Probleme meldet
  • Die Google Anonymisierung eingeschaltet ist
  • Vermehrt Fehler in den Logs stehen
  • U. v. m.

Auch weiterführende Tests, wie das Prüfen einer Inhaltseinstellung in Drupal und der Upload einer Datei in einem Webform Formular werden damit durchgeführt. Sofern unsere Kunden spezielle Anforderungen haben, können wir hierfür auch neue Tests schreiben.

Konfiguration

Je nach Projektgröße, -art und -anzahl kann Icinga frei konfiguriert werden, um den Admin bestmöglich zu unterstützen. Die Konfiguration von Icinga befindet sich per Default unter /etc/icinga2 bzw. /etc/icinga2/conf.d. Sie besteht aus

  • Commands (Prüfbefehlen)
  • Notifications (verschiedene Benachrichtigungs-Möglichkeiten)
  • Hosts und deren Services
  • Gruppen
  • Vorlagen
  • Benutzern (an welche die Benachrichtigungen versendet werden)

Das macht das Tool sehr mächtig und flexibel. Es können zur sauberen Abtrennung eigener Konfigurationen Unterverzeichnisse erstellt werden. Das bietet sich z. B. dann an, wenn verschiedene Server betrieben werden. Somit kann der Admin gezielt Tests durchführen und Resultate filtern bzw. sortieren, um einen optimalen Überblick über alle laufenden Prozesse zu erhalten.

Icinga nutzen

Neben der Möglichkeit, das Monitoring selbst aufzusetzen, gibt es natürlich auch Dienstleister, die dieses anbieten. Wenn Sie wenig Erfahrung mit der Verwendung von Konfigurationsdateien und Services haben, so ist zumindest am Anfang ein Dienstleister zu empfehlen.

Sollten Sie Interesse am Monitoring Ihres Digitalprojektes haben, schreiben Sie uns gerne an. Wir finden die optimale Lösung für Sie.

Fußnoten:

Fork: Wenn ein Projekt als Open Source freigegeben wird und Dritte Änderungen wünschen, der ursprüngliche Entwickler aber nicht mehr an diesem Projekt weiterarbeitet, kann man vom aktuellen Stand eine Kopie erstellen und das Projekt selber weiter entwickeln. Somit ergibt sich eine Gabelung des Projektes, wobei beide Versionen weiter bestehen (können).

2 Deployment / Softwareverteilung: Softwareverteilung ist die gezielte Übertragung von Software oder -Updates an alle mit dieser Software arbeitenden Rechner oder an alle an einem betrieblichen Prozess beteiligten Rechner. (https://www.itwissen.info/deployment-Softwareverteilung.html)

Cron: Cron ist ein Dienst, der automatisch Skripte und Programme zu vorgegebenen Zeiten starten kann. Drupal selbst beinhaltet ebenfalls ein Cron System welches für Drupal Tasks wie die automatisierte Neuerstellung der XML-Sitemap verwendet werden kann. Drupal Cron kann per System Cron ausgeführt werden.