Top-Fragen
Zeitleiste
Chat
Kontext
Icinga
Software zur Überwachung von IT-Systemen und Computernetzwerken Aus Wikipedia, der freien Enzyklopädie
Remove ads
Icinga ist eine Open-Source-Anwendung zur System- und Netzwerküberwachung. Es wurde ursprünglich als Fork der Nagios-Systemüberwachungsanwendung im Jahr 2009 erstellt.[2]
Durch zahlreiche Modifikationen sollten Mängel im Entwicklungsprozess von Nagios behoben[3] sowie neue Features,[4] wie die Web-Oberfläche Icinga Web2,[5] und zusätzliche Datenbank-Konnektoren für MySQL, Oracle und PostgreSQL, einer REST-API integriert werden. Ziel der Icinga-Entwickler ist auch, die Bedürfnisse der Community besser zu berücksichtigen sowie Patches schneller zu integrieren. Die erste stabile Version 1.0 wurde im Dezember 2009 veröffentlicht.[6]
„Icinga“ ist ein Wort der Zulu-Sprache, das „sucht“, „durchsucht“ oder „untersucht“ bedeutet und mit einem Klickkonsonanten ausgesprochen wird.[7]
Remove ads
Geschichte
Zusammenfassung
Kontext
Unzufrieden mit der damals stagnierenden Entwicklung von Nagios, auch mit dem Wunsch, die Entwicklung auf breitere Beine zu stellen, kündigte im Mai 2009 eine Gruppe von Entwicklern aus der Nagios-Community den Fork Icinga an.[3]
In ihrem ersten Jahr veröffentlichten die Icinga-Entwickler separate Versionen von Core, API und Web und feierten ihren 10.000. Download.[8]
Im zweiten Jahr brachte das Icinga-Projekt einen einheitlichen und stabilen Core und Web heraus, fügte Dual-Stack-IPv6-/IPv4-Unterstützung hinzu, optimierte die Datenbankanbindung, überarbeitete die Icinga-Web-Benutzeroberfläche Icinga Web2 und integrierte verschiedene Community-Add-ons (PNP4Nagios, LConf, Heatmap und Business Process Add-on). Das Projekt erreichte mehr als 70.000 Downloads und wuchs auf 23 Teammitglieder an.
Im dritten Jahr feierte Icinga den 100.000. Download, integrierte die Icinga-API-Komponente in Icinga Web, verbesserte SLA-Berichte, eröffnete eine offizielle Freenode-IRC-Gruppe und erweiterte die virtuellen Icinga-Appliances auf die Betriebssysteme Debian, OpenSUSE und CentOS.[9]
Im Oktober 2012 veröffentlichte das Icinga-Projekt eine Technologievorschau auf einen Core-Framework-Ersatz- und Parallelentwicklungszweig, Icinga 2. Die Entwickler äußerten die Absicht, den Kern umzuschreiben, um Mängel wie komplizierte Konfigurations- und Skalierbarkeitseinschränkungen in großen Implementierungen zu korrigieren.[10]
Das Projekt beschrieb Pläne, den Icinga-2-Kern hauptsächlich in C++ zu schreiben, eine neue Komponentenlader-Architektur zu entwerfen und den Prozess der Durchführung von Überwachungen und der entsprechenden Prüfungen umzugestalten.
Im Juni 2014 veröffentlichte das Icinga-Projekt die erste stabile Version von Icinga 2.[11]
Remove ads
Versionsgeschichte
Zusammenfassung
Kontext
Remove ads
Features
Zusammenfassung
Kontext
Als Fork von Nagios bietet Icinga die Funktionen von Nagios sowie einige Erweiterungen wie dem optionalen Reporting-Modul mit verbesserter SLA-Genauigkeit, zusätzlichen Datenbank-Konnektoren für PostgreSQL und Oracle und verteilten Systemen für redundantes Monitoring.
Grundsätzlich behält Icinga in der Version 1 die Konfigurations- und Plugin-Kompatibilität mit Nagios bei, was die Migration zwischen den beiden Monitoring-Programmen erleichtert. Icinga2 hingegen wurde komplett neu geschrieben, hier änderte sich die Konfigurations-Syntax. Die Plugin-Kompatibilität hingegen ist geblieben.[18][19]
Überwachung
- Überwachung von Netzwerkdiensten (SMTP, POP3, HTTP, NNTP, ping etc.)
- Überwachung der Host-Ressourcen (CPU-Auslastung, Festplattennutzung etc.)
- Überwachung von Serverkomponenten (Switches, Router, Temperatur- und Feuchtesensoren etc.)
- Einfaches Plug-In-Design, das es dem Anwender ermöglicht, eigene Service-Checks zu entwickeln
- Parallelisierte Service-Prüfungen
- Möglichkeit, eine Netzwerk-Host-Hierarchie mit Hilfe von „übergeordneten“ Hosts zu definieren, was die Erkennung und Unterscheidung zwischen ausgefallenen und nicht erreichbaren Hosts ermöglicht
- Möglichkeit, Ereignisbehandler zu definieren, die während der Service- oder Host-Ereignisse zur proaktiven Problemlösung ausgeführt werden sollen
Benachrichtigung (Notification)
- Benachrichtigung von Ansprechpartnern, wenn Service- oder Host-Probleme auftreten und behoben werden (per E-Mail, Pager, Sofortnachricht oder benutzerdefinierte Methode)
- Eskalation von Alerts an andere Benutzer oder Kommunikationskanäle
Visualisierung & Reporting
- Benutzeroberfläche (Icinga Web2) zur Visualisierung von Host- und Servicestatus, Netzwerkkarten, Reports, Logs etc.
- Templatebasierte Berichte (z. B. Top 10 problematische Hosts oder Dienste, Zusammenfassung der kompletten Überwachungsumgebung, Verfügbarkeitsberichte etc.)
- Report Repository mit unterschiedlichen Zugriffsebenen und automatischer Reportgenerierung und -verteilung
- Optionale Erweiterung basierend auf dem Icingaweb2 Reporting Module[20] für das SLA-Reporting, das zwischen kritischen Ereignissen und geplanten und ungeplanten Ausfallzeiten und Bestätigungszeiträumen unterscheidet
- Kapazitätsauslastungsreporting
- Leistungsgrafik über Add-Ons wie PNP4Nagios, Graphite und Grafana
Remove ads
Architektur
Zusammenfassung
Kontext
Der Icinga Core ist in C[21] geschrieben und hat eine modulare Architektur mit eigenständigem Kern, Benutzeroberfläche und Datenbank, auf der Benutzer verschiedene Add-Ons und Plug-Ins integrieren können.
Letztere kommunizieren über Icingas Doctrine-Abstraction-Layer, REST- und Plug-In-APIs – die zwischen den externen Daten und internen Strukturen vermitteln. Diese Bündelung der Komponenten ermöglicht es den Anwendern, das System von Icinga zur redundanten Überwachung zu verteilen. Es bietet dem Benutzer auch die Freiheit, Icinga an seine Bedürfnisse anzupassen.
Icinga-Core
Der Icinga Core verwaltet Überwachungsaufgaben und empfängt Prüfergebnisse von verschiedenen Plug-Ins. Diese Ergebnisse werden dann an die IDODB (Icinga Data Out Database) über die IDOMOD-Schnittstelle (Icinga Data Out Module) und den IDO2DB-Service-Daemon (Icinga Data Out to Database) über SSL verschlüsselte TCP-Sockets übermittelt. Obwohl beide zusammen mit dem Core geliefert werden (auch bekannt als IDOUtils), sind sie einzelne stehende Komponenten, die getrennt werden können, um die Daten und Prozesse auf mehrere Server zur Überwachung verteilter Systeme zu verteilen.
Die Icinga-Classic-Benutzeroberfläche wurde bis Version 2.7.2 ebenfalls mit Icinga Core ausgeliefert[22] und konnte bis dahin als Ersatz für die PHP-basierte Icinga Weboberfläche verwendet werden.
Icinga 2
Icinga 2 verwaltet Überwachungsaufgaben, führt Überprüfungen durch und sendet Alarmbenachrichtigungen. Die Funktionen von Icinga 2 können bei Bedarf aktiviert werden, seien es die Standardfunktionen wie die Komponente „checker“ oder „notification“ oder externe Schnittstellen, die mit Icinga 1.x und seinen Benutzeroberflächen kompatibel sind, zum Beispiel die IDODB (Icinga Data Out Database). Icinga 2 liefert einen eingebauten Cluster-Stack aus, der durch SSL-x509-Zertifikate gesichert ist und versucht, verteilte Überwachungs-Setups zu vereinfachen.
Die Konfigurationssyntax unterscheidet sich von Icinga Core 1.x und Nagios und erfordert eine Migration beim Upgrade.
Icinga-Benutzeroberfläche

Die für Icinga2 vorgesehene GUI ist Icingaweb2, die Entwicklung findet auch hier stetig statt.
Icingaweb2 ist ein umfangreiches PHP-Framework für Web-Applikationen, welches auch die Entwicklung eigener Module zulässt. Die Icinga Classic UI wurde aus Icinga 2 entfernt, liegt jedoch noch als Quellcode oder in älteren Paketen vor, wird jedoch nicht mehr aktiv unterstützt.[23]
Icinga-Web-2-Module
Monitoring-Modul
Dies ist das Haupt-Modul, welches mit dem Icinga-Web2-Paket mitgeliefert wird. Es stellt ein intuitives Benutzer-Interface dar für das Monitoring mit Icinga 2. Die sogenannten Views (Sichten) können sowohl sortiert als auch in eigenen Dashboards untergebracht werden. Eine integrierte Benutzerverwaltung mit möglicher MySQL- oder AD-Integration ist auch vorhanden und regelt die möglichen Zugriffe auf das Monitoring. Die Kommunikation zum Icinga 2 Core erfolgt über die Icinga-2-REST-API. Hierüber lassen sich auch alle möglichen Aktionen auf die Monitoring-Objekte anwenden.
Icinga Web2 ist barrierefrei und lässt sich somit auch mit Screenreadern bedienen. Die Farbschemata sind auch für Menschen mit Sehbehinderung entsprechend einstellbar.[24]
Jira-Modul
Für das Ticketsystem Jira Service Desk wurde ein Modul entwickelt. Es ermöglicht Integration in die Oberfläche von Icingaweb2 sowie dem Modul Icingaweb2 Direktor.[25]
Director-Modul

Eine datenbankgestützte GUI für die Administration und Automatisierung von Icinga 2. Die Kommunikation zu Icinga 2 erfolgt über die Icinga-2-API. Mittels sogenannter „Templates“ für Host- und Serviceobjekte besteht die Möglichkeit, das Monitoring zu vereinheitlichen.
Möglich ist außerdem eine Anbindung an externe Quellen (Datenbanken, CSV, XLS), diese ermöglichen den voll automatischen Import von Host- und Serviceobjekten.
Business-Process-Tools
Hiermit können Prozesse und deren Abhängigkeiten grafisch dargestellt werden. Eine Eskalation der Prozesszustände an Mail oder Trouble-Ticket-System sind möglich.
Cube
Visualisierung von Hosts und Services in einer eigenen Ansicht.
PNP
Visualisierung von Performancedaten mittels Graphen, RRDtool-basierend. Das Modul PNP integriert die Daten aus pnp4nagios, welches eine eigene Softwareentwicklung darstellt.[26]
Elasticsearch
Anbindung an eine Elastic-Instanz zur Darstellung von Host-Daten (z. B. Eventlog), setzt einen funktionsfähigen Elasticsearch-Server voraus.
Icinga-Data-Out-Datenbank
Die Icinga Data Out Database (IDODB) ist ein Speicherplatz für historische Überwachungsdaten für Add-ons oder das Icinga Webinterface. Im Gegensatz zu seinem Vorgänger Nagios unterstützt Icinga neben MySQL auch PostgreSQL- und Oracle-Datenbanken. Die GUI Icinga Web2 greift auf diese Datenbank zu und stellt die Host- und Servicezustände grafisch dar.
Icinga-Reporting
Das Icinga-Projekt bietet ein optionales Icinga-Reporting-Modul an, es löst die bisherige Lösung Jasper-Reports ab.
Erweiterte Funktionalität
Check-Plugins
Für Icinga können alle Check-Plugins genutzt werden, die auch für Nagios geschrieben wurden. Des Weiteren unterhält Icinga inzwischen, um unabhängig in der Entwicklung zu sein, auch eine eigene Webseite für Plugins und Erweiterungen.[27] In der Community sind auch die Open Source Check-Plugins der Schweizer Firma Linuxfabrik weit verbreitet. Die Linuxfabrik Monitoring Plugins Collection ist eine Sammlung von Nagios-kompatiblen Check-Plugins, die in Python geschrieben sind und sich für Icinga, Naemon, Nagios, OP5, Shinken, Sensu und andere Monitoring-Anwendungen eignen. Die Check-Plugins werden auf GitHub zur Verfügung gestellt.[28]
Performancedaten
So gut wie alle Checks können auch sogenannte Performancedaten schreiben. Diese müssten mit einem entsprechenden Programm verarbeitet werden. Icinga 2 arbeitet unter anderem mit folgenden Programmen zusammen, um die Performancedaten für einen längeren Zeitraum auswertbar zu machen:
- Graphite
- PNP4Nagios (Modul wird jedoch nicht aktiv weiter entwickelt)
Log-Dateien
- Für Elasticsearch existiert ein eigenes Icinga-2-Output-Plugin, welches ermöglicht, bestimmte Events an die Icinga-2-REST-API zu senden.
- Graylog[29]
Remove ads
Weblinks
- http://icinga.com
- deutschsprachiges Portal zu Nagios Themen (Seite nicht mehr abrufbar. Suche in Webarchiven) (deaktiviert am 24. Februar 2021)
- https://www.monitoring-plugins.org/
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads