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]
Geschichte
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]
Im Oktober 2015 veröffentlichte das Icinga-Projekt die erste stabile Version von Icinga Web 2.[12]
Versionsgeschichte
2.10.3 löst außerdem ein Problem mit zukünftigen time offsets und check results.
Verbesserung des „Connection-Handlings“. Erweiterung der ITL-Kommandos.[19]
Behebt einen Fehler in der SELinux-Richtlinie und dem Sourcing im Initskript auf Nicht-Posix-Systemen.
für den Setup Wizard, Check Scheduling, Downtime Notification Handling und Memory Handling.
Installationsprobleme unter Windows mit fehlenden DLLs behoben. Aktualisierungen der Dokumentation.
CORS-Unterstützung für die REST-API. Der „Bottom-up“-Cluster-Modus und das Classic-UI-Paket wurden entfernt.
Aktualisierung der Dokumentation
OpenTSDB-Unterstützung und Troubleshooting-Clientbefehl
Features
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.[20][21]
Ü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[22] 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
Architektur
Der Icinga Core ist in C[23] 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[24] 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.[25]
Icinga-Web-2-Module
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.[26]
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.[27]
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.
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.
Visualisierung von Hosts und Services in einer eigenen Ansicht.
Visualisierung von Performancedaten mittels Graphen, RRDtool-basierend. Das Modul PNP integriert die Daten aus pnp4nagios, welches eine eigene Softwareentwicklung darstellt.[28]
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.[29] 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.[30]
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[31]
Weblinks
- https://icinga.com
- @1@2Vorlage:Toter Link/monitoring-portal.orgdeutschsprachiges Portal zu Nagios Themen (Seite nicht mehr abrufbar. Suche im Internet Archive) (deaktiviert am 24. Februar 2021)
- https://www.monitoring-plugins.org/
Einzelnachweise
- ↑ Release 2.16.1. 21. Mai 2026 (abgerufen am 22. Mai 2026).
- ↑ Open-source working as advertised: ICINGA forks Nagios. In: CNET. 6. Mai 2009 (Online [abgerufen am 17. August 2018]).
- ↑ a b Why a fork? – Icinga: Open Source Monitoring. In: archive.li. 23. April 2013 (Online [abgerufen am 17. August 2018]).
- ↑ SOpenSource. Abgerufen am 17. August 2018 (englisch).
- ↑ Icinga Web 2. In: Icinga. 30. November 2015 (Online [abgerufen am 17. August 2018]).
- ↑ Falko Benthin: Icinga » ADMIN Magazine. Abgerufen am 17. August 2018 (englisch).
- ↑ A lesson in Zulu: “Icinga”. In: Icinga. 3. November 2010 (Online [abgerufen am 12. Juli 2023]).
- ↑ Nagios Vs. Icinga: the real story of one of the most heated forks in free software. Abgerufen am 17. August 2018 (englisch).
- ↑ 3 years old & 100,000 downloads! In: Icinga. 6. Mai 2012 (Online [abgerufen am 17. August 2018]).
- ↑ Icinga 2 v.0.0.1 released! In: Icinga. 25. Oktober 2012 (Online [abgerufen am 17. August 2018]).
- ↑ Icinga: Release v2.0.0 · Icinga/icinga2. Abgerufen am 15. Oktober 2025 (englisch).
- ↑ Icinga: Release Icinga Web 2 2.0.0 · Icinga/icingaweb2. Abgerufen am 15. Oktober 2025 (englisch).
- ↑ Icinga: Release Icinga 2 v2.15.0 · Icinga/icinga2. Abgerufen am 15. Oktober 2025 (englisch).
- ↑ a b Julian Brost: Releasing Icinga 2.14 and 2.13.8. In: Icinga. 12. Juli 2023, abgerufen am 19. Juli 2023 (amerikanisches Englisch).
- ↑ a b Releasing Icinga 2.11.8 + 2.12.3: Security and small improvements, auf icinga.com
- ↑ a b Releasing Icinga 2.11.7 + 2.12.2: Cluster Stability Improvements, auf icinga.com
- ↑ a b Releasing Icinga 2.12 + 2.11.5: Icinga DB, connection security, DSL, auf icinga.com
- ↑ Michael Friedrich: Icinga 2.10.2 bugfix release. In: Icinga. 14. November 2018, abgerufen am 13. Dezember 2018 (amerikanisches Englisch).
- ↑ Icinga 2.10 released: Namespaces, Notifications, TLS Performance. In: Icinga. 11. Oktober 2018 (Online [abgerufen am 12. Oktober 2018]).
- ↑ Icinga | NETWAYS GmbH. Abgerufen am 27. August 2018 (englisch).
- ↑ Migrating From Icinga 1x – Icinga 2. Abgerufen am 27. August 2018 (englisch).
- ↑ Feu Mourek: Icinga Reporting – Hands On. In: Icinga. 17. Juni 2019, abgerufen am 12. November 2019 (amerikanisches Englisch).
- ↑ About – Icinga 2. Abgerufen am 17. August 2018 (englisch).
- ↑ Icinga 2 v2.8.0 released. In: Icinga. 17. November 2017 (Online [abgerufen am 17. August 2018]).
- ↑ Upgrading Icinga 2 – Icinga 2. Abgerufen am 24. September 2019.
- ↑ Johannes Meyer: Icinga Web 2 – Das kann Jeder. In: netways.de. 15. Januar 2015, abgerufen am 24. September 2019.
- ↑ Blerim Sheqa: Releasing Icinga Module for Jira. In: Icinga. 7. November 2019, abgerufen am 12. November 2019 (amerikanisches Englisch).
- ↑ start [PNP4Nagios Docs]. Abgerufen am 24. September 2019.
- ↑ Search results for „monitoring-plugins“ | Icinga. Abgerufen am 17. August 2018 (amerikanisches Englisch).
- ↑ Guest Author: The Linuxfabrik Monitoring Plugins Collection. In: Icinga. 17. März 2022, abgerufen am 26. April 2023 (amerikanisches Englisch).
- ↑ Michael Friedrich: Flexible and easy log management with Graylog. Netways.de, 1. Juni 2017, abgerufen am 3. Dezember 2019 (englisch).