Icinga als Enterprise-Monitoring-Lösung
Neuland
Das als Fork von Nagios entstandene Projekt Icinga [1] hat sich in gut eineinhalb Jahren zur Enterprise-Variante der wohl am weitesten verbreiteten Open-Source-Monitoringlösung weiterentwickelt. Mit über 35 000 Downloads [2] und einer wachsenden Benutzergemeinde bietet Icinga heute eine stabile Version mit allen aus Nagios bekannten Features und darüber hinaus eine Vielzahl an Verbesserungen.
Neben vielen Optimierungen im Bereich des Icinga-Cores der neben vereinfachter Installation auch die zusätzliche Unterstützung von Oracle und PostgreSQL beinhaltet, ist beim Webinterface etwas von Grund auf Neues entstanden. Neben den aus Nagios bekannten CGIs, die auch in Icinga dabei sind und dort mit vielen Features wie Multiselect und einer Export-Schnittstelle erweitert wurden, bietet das auf PHP basierende Interface viele lange von der Community geforderte Funktionen. Dieser Artikel gibt Einblicke in die bestehende Architektur, das technische Konzept und Funktionalitäten und die wichigsten Erweiterungen, die für Icinga heute verfügbar sind.
Architektur
Wie in Abbildung 1 zu sehen stellt die Datenbank in der aktuellen Architektur das zentrale Bindeglied zwischen dem eigentliche Core-Prozess und dem neuen Webinterface da. Sämtliche Daten werden mittels im Core-Teil integrierter Datenbankschnittstelle (IDOUtils) in ein zentrales relationales Schema übertragen. Auf diese Informationen wird mittels PHP-PDO aus Icinga-Web zugegriffen, um die Daten unter Berücksichtigung von Filtern und Berechtigungen an den Benutzer auszuliefern. Der Datenbankzugriff wird in zukünftigen Versionen von Icinga mittels Doctrine [3] abgebildet, der sich als Object Relational Mapper um die eigentlichen Abfragen kümmert und so die Datenbankunabhängigkeit sicherstellt. Das Webinterface selbst kann auf dem Icinga-Hauptserver oder einem anderen Webserver installiert werden. Das Doku-Team von Icinga hat hier gute Arbeit geleistet, der ganze Installations- und Upgrade Prozess ist ausführlich auf [4] beschrieben.
Aufbau des Webinterfaces
Eine der wichtigsten Kriterien bei der Entwicklung des neuen Webinterfaces war die Modularität der Komponenten und die Möglichkeit, Erweiterungen von Frontendbausteinen, den sogenannten Cronks, und Modulen zu ermöglichen ohne das eigentliche Core-Framework verändern oder berücksichtigen zu müssen. Auch eine Verwendung einer einheitlichen Benutzerverwaltung und Autorisierung von Anwendern gegen das Basisframework war und ist selbstverständlich von großer Bedeutung.
Die Wahl fiel gleich zu Beginn des Projekts auf Agavi, einem auf Mojavi basierenden MVC-Framework, das sich um das Kerngeschäft eines Frameworks kümmert und dem Entwickler keine genauen Vorschriften zu verwendetem Persistenzframework oder Templatesystem macht. Sinn des genannten Model ViewController Konzepts ist die klare Strukturierung einzelner Applikationselemente bei gleichzeitiger Unterstützung eines flexiblen Entwicklungsprozesses. Ein Listing des Icinga-Web-Folders lässt den entsprechenden Grundaufbau im Filesystem erkennen. Die eigentlichen Userviews basieren auf HTML, CSS und dem Javascript-Framework Sencha Ext JS. Der Vorteil dieses Javascript-Frameworks liegt in der Unterstützung einer Vielzahl von Browsern und Bereitstellung der klassischen Grundfunktionen wie Tabellen, Layouts und Panelvarianten. Durch Sencha Touch ist vor kurzem auch ein leistungsfähiges Framework für mobile Applikationen hinzugekommen, das bereits in Icinga Mobile [5] Verwendung findet.
Diesen Artikel als PDF kaufen
Als digitalen Artikel
Diesen Artikel als PDF kaufen.
Preis € 1,99
Im ADMIN Online-Archiv
Abonnieren Sie das ADMIN Online-Archiv, und Sie erhalten Zugriff auf alle ADMIN-Artikel im HTML- und/oder PDF-Format.
Alle Angebote zum ADMIN-Magazin im Online-Shop
Versandartikel |
Onlineartikel |




