Icinga

Icinga

Basisdaten

Erscheinungsjahr 2009
Aktuelle Version 2.10
(11. Oktober 2018[1])
Betriebssystem Unix-Derivate
Kategorie Netzwerk-Monitoring
Lizenz GPLv2
deutschsprachig ja
www.icinga.com

Icinga ist ein 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 Icingaweb2,[5] und zusätzliche Datenbank-Konnektoren für MySQL, Oracle und PostgreSQL, einer REST-API integriert werden.

Ziel der Icinga-Entwickler ist darüber hinaus 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, und der Versionszähler ist seit Januar 2010 alle paar Monate gestiegen[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 Icingaweb2 und integrierte verschiedene Community-Add-ons (PNP4Nagios, LConf, Heatmap und Business Process Addon). Das Projekt erreichte mehr als 70.000 Downloads und wuchs auf 23 Teammitglieder an.

Im zweiten 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]

Zeitleiste der Icinga-Releases

Datum Release Bemerkungen
26. Februar 2019 Icinga2 v2.10.3 Bugfix Release. Probleme der TLS connections mit master and agents bei reload and “Connection: close” headers mit Ruby clients gefixt. Außerdem wurden Probleme mit(scheduled) downtimes im HA-enabled cluster environments behoben.

2.10.3 löst außerdem ein Problem mit zukünftigen time offsets und check results.

14. November 2018 Icinga2 v2.10.2 Bugfix Release. Fehler von TLS-Verbindung im Cluster behoben, Stabilität erhöht, API-Fehler behoben, IDO optimiert.[12]
18. Oktober 2018 Icinga2 v2.10.1 Bugfix Release. Probleme des Namsepace-Support und dem Reload/Neustart der Applikation behoben.
11. Oktober 2018 Icinga2 v2.10 Feature Release mit Support von eigenen Namespaces. Optimierung der Notifications, verbessertes Syntax-Highlighting mit vim.

Verbesserung des „Connection-Handlings“. Erweiterung der ITL-Kommandos.[13]

24. Juli 2018 Icinga2 v2.9.1 Bugfix Release. Fehler bei der Verwendung der Option daemonize oder eines anderen Init-Systems als systemd behoben.

Behebt einen Fehler in der SELinux-Richtlinie und dem Sourcing im Initskript auf Nicht-Posix-Systemen.

17. Juli 2018 Icinga 2 v2.9.0 Feature Release mit Elasticsearch 6 Unterstützung, TLS Unterstützung für IDO PostgreSQL und Verbesserungen

für den Setup Wizard, Check Scheduling, Downtime Notification Handling und Memory Handling.

25. April 2018 Icinga 2 v2.8.4 Bugfix Release. Eine Regression, bei der die Ausführung der Prüfung zu einem Absturz führte, wurde behoben.
22. März 2018 Icinga 2 v2.8.2 Bugfix Release. Verschiedene sicherheitsrelevante Probleme wurden behoben.
17. Januar 2018 Icinga 2 v2.8.1 Bugfix Release. Ein Fehler in der API wurde behoben, wenn ein Objekt zur Laufzeit erstellt wurde.

Installationsprobleme unter Windows mit fehlenden DLLs behoben. Aktualisierungen der Dokumentation.

17. November 2017 Icinga 2 v2.8.0 Feature Release mit neuer CA-Proxy-Funktion. Neuer Beat-Erkennungsalgorithmus. ElasticsearchWriter-Funktion mit HTTP-Proxy-Unterstützung.

CORS-Unterstützung für die REST-API. Der „Bottom-up“-Cluster-Modus und das Classic-UI-Paket wurden entfernt.

09. November 2017 Icinga 2 v2.7.2 Bugfix Release. Ungültige Attributnamen in der systemd Unit-Datei und falsche eindeutige Einschränkung für IDO DB behoben.

Aktualisierung der Dokumentation

21. September 2017 Icinga 2 v2.7.1 Bugfix Release. Problem mit DB IDO, Livestatus, Notifications behoben. Update der Notification-Scripte. Aktualisierung der Dokumentation.
02. August 2017 Icinga 2 v2.7.0 Feature Release mit neuen Notification-Scripten, Work Queues, Check Plugin für NSClient++ API & Stabilitätsverbesserungen & Fixes
13. Dezember 2016 Icinga 2 v2.6.0 Feature Release mit gebündeltem NSClient++ & Stabilitätsverbesserungen & Fixes
23. August 2016 Icinga 2 v2.5.0 Feature Release mit InfluxDB, IDO Performance, Timeperiod Excludes & Fixes
16. November 2015 Icinga 2 v2.4.0 Feature Release mit neuer API (REST API)
13. März 2015 1.14 Korrekturen
9. März 2015 Icinga 2 v2.3.0 Feature Release mit Konfigurationserweiterungen (Funktionen, Schleifen, Conditionals, Objektzugriffe, zeitabhängige Schwellwerte usw.),

OpenTSDB-Unterstützung und Troubleshooting-Clientbefehl

19. November 2014 1.12 Klassische UI-Erweiterungen und Korrekturen
17. November 2014 Icinga 2 v2.2.0 Feature Release mit Remote Clients, CSR Auto-Signatur, Cli, Arrays/Wörterbücher in eigenen Attributen
29. August 2014 Icinga 2 v2.1.0 Feature Release mit erweiterter Konfigurationsanalyse, Logging, Cluster High Availability Features
16. Juni 2014 Icinga 2 v2.0.0 Erste stabile Version Icinga 2
16. Mai 2014 Icinga 2 v0.0.11 Überarbeitetes Cluster-Feature mit Hochverfügbarkeits- und Lastausgleichszonen, Befehlsargumenten & Conditionals
29. April 2014 Icinga 2 v0.0.10 Erweiterung wendet Regeln für Benachrichtigungen, Abhängigkeiten, benutzerdefinierte Attribute usw. an.
31. März 2014 Icinga 2 v0.0.9 Regelbasierte'apply'-Logik, Benutzerfreundlichkeit der Konfiguration, Update des Datenbankschemas (MySQL, PostgreSQL)
13. März 2014 1.11 Interoperabilität (mit Solaris, Oracle, IE) und Verbesserungen der Benutzeroberfläche
11. März 2014 Icinga 2 v0.0.8 Abhängigkeiten als In-Line-Wörterbücher, Cluster Health Checks, rekursive'config includes'
7. Februar 2014 Icinga 2 v0.0.7 Automatisierte Tests in Vagrant, Datenbank-IDO-Stabilität
19. Dezember 2013 Icinga 2 v0.0.6 Wiederkehrende Ausfallzeiten, Log-Kommandoargumente, Latenzstatistiken
3. Dezember 2013 Icinga 2 v0.0.5 Leistungsverbesserungen & Bugfixes
12. November 2013 Icinga 2 v0.0.4 IDO PostgreSQL, Livestatus History
24. Oktober 2013 Icinga 2 v0.0.3 IDO MySQL, Livestatus, Graphit, Clusteraufbau, Dokumentation
24. Oktober 2013 1.10 Klassische UI-Live-Suche und On-Demand-Filterauswahl, Performance-Verbesserungen
2. Juli 2013 Icinga 2 v0.0.2 Technologievorschau mit Core 1.x Kompatibilitätsschicht
7. Mai 2013 1.9 1.9 Performance-Verbesserungen und Usability-Fixes
25. Oktober 2012 Icinga 2 v0.0.1 Technologievorschau auf den Austausch des Core-Frameworks
18. Oktober 2012 1.8 Community basierte Verbesserungen an den optionalen Benutzeroberflächen und Icinga Reporting
15. Mai 2012 1.7 Paketierung vereinfacht
30. November 2011 1.6 SLA-Erweiterung (optional)
24. August 2011 1.5 Icinga Reporting in die Icinga-Weboberfläche integriert
11. Mai 2011 1.4 Verbesserungen an beiden optionalen Benutzeroberflächen
16. Februar 2011 1.3 Dual-Stack IPv4- und IPv6-Unterstützung
13. Oktober 2010 Icinga Mobile Benutzeroberfläche für Smartphones und Tablets
6. Oktober 2010 1.2 Einheitliche stabile Version
18. August 2010 1.0.3 Einheitliche Version, instabiles Icinga Web
30. Juli 2010 1.0.2 Core, 1.0.1 Web Performance Verbesserungen
3. März 2010 1.0.1 Web Beta Performance Verbesserungen, Icinga Web Erweiterungen
16. Dezember 2009 1.0 Core, 0.9.1 Web Alpha Stable Core, Oracle und PostgreSQL Datenbankunterstützung
28. Oktober 2009 1.0 RC Core Initiale Oracle-Datenbankunterstützung
15. September 2009 0.8.4 IDOUtils Bugfixes
2. September 2009 0.8.3 Erste Unterstützung der PostgreSQL-Datenbank
12. August 2009 0.8.2 Icinga-API-Integration
16. Juni 2009 0.8.1 Core-Bugfix
15 May 2009 0.8 Initiales Release

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.[14][15]

Ü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 (Icingaweb2) zur Visualisierung von Host- und Servicestatus, Netzwerkkarten, Reports, Logs etc.
  • Icinga Reporting Modul basierend auf Open Source Jasper Reports für Icinga Classic und Icinga Web Benutzeroberflächen
  • 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 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, NagiosGrapher und InGraph

Architektur

Der Icinga Core ist in C[16] 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 Icinga's 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 (Icinga Data Out Module) Schnittstelle und den IDO2DB (Icinga Data Out to Database) Service Daemon ü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[17] und kann als Ersatz für die PHP-basierte, Icinga Weboberfläche verwendet werden.

Icinga2

Icinga 2 verwaltet Überwachungsaufgaben, führt Überprüfungen durch und sendet Alarmbenachrichtigungen. Die Funktionen von Icinga 2 können bei Bedarf aktiviert werden, sei 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 IDO DB (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ächen

Icinga bietet zwei Web-Oberflächen für die Anzeige der Überwachungsergebnisse und das Senden von Befehlen an den Icinga Core.

Icinga Classic UI (auch als Classic Web bezeichnet) basiert auf den Nagios CGIs und behält sein Format bei. Das Icinga-Projekt fügt dieser Schnittstelle weiterhin neue Funktionen wie Seitenumbruch, JSON-Ausgabe und CSV-Export hinzu. Diese Benutzeroberfläche wird mit dem Icinga Core ausgeliefert. Icinga's Classic UI ähnelt dem Nagios Webinterface (Nagios CGIs), indem es in der gleichen Instanz mit dem Kern sitzt, Daten über den Cache abruft und Befehle über Pipe an die Kommandodateien sendet. Seit Icinga2 Version 2.8.0 muss die Classic-GUI manuell installiert werden.[17]

Icinga Web (auch New Web genannt) ist das Agavi und PHP-basierte, Web 2.0 inspirierte Frontend des Projekts, das Cronks (Widgets) verwendet, um benutzerdefinierte Dashboards per Drag-and-Drop anzubieten. Im Gegensatz zur Icinga Classic UI ist Icinga Web eine eigenständige Software. Es kommuniziert mit dem Kern, der Datenbank und den Add-ons von Drittanbietern über Komponentenschichten: Doktrinabstraktionsschicht (Input/Datenbank), REST API (externe Skripte) und Command Control Interface (Schreiben in Pipe, Ausführen von Befehlen).

Beide Benutzeroberflächen zeigen Informationen über Host- und Service-Status, Historie, Benachrichtigungen und Statusmaps, um den Zustand eines Netzwerks in Echtzeit anzuzeigen. Beide unterstützen sowohl IPv4- als auch IPv6-Adressen.

Icingaweb2 wird derzeit parallel zu Classic UI und Web entwickelt und wurde auf der Open Source Monitoring Conference im November 2013 angekündigt, diese GUI kann nur mit Icinga2 verwendet werden.[5]

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.

Icinga-Reporting

Das Icinga-Projekt bietet ein optionales Icinga-Reporting-Modul auf Basis von Jasper Reports. Es kann sowohl in die Icinga Classic als auch in die Icinga Web-Oberfläche integriert werden. Das Modul bietet vorlagenbasierte Berichte (z. B. Top 10 problematische Hosts oder Dienste, Synopse der kompletten Überwachungsumgebung, Verfügbarkeitsberichte usw.), die in einem Repository mit unterschiedlichen Zugriffsebenen gespeichert werden können und eine automatisierte Berichterstellung und -verteilung ermöglichen. Berichte können auch in den beiden optionalen Benutzeroberflächen von Icinga angezeigt werden.

Erweiterte Funktionalität

Checks

Für Icinga können alle Checks 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 Checks und Erweiterungen.[18]

Icingaweb2

Bild GUI Icingaweb2.6.1
GUI Icingaweb2 2.6.1

Die Benutzeroberfläche für Icinga2 stellt ein eigenes Unterprojekt von Icinga2 dar. Für diese Oberfläche wurden zahlreiche Module entwickelt, die frei verfügbar sind. Es können aber auch recht einfach eigenen Module für Icingaweb2 geschrieben werden.[19]

Nachstehend eine nicht abschließende Aufzählung vorhandener Icingaweb2 Module:

Icinga-Director
Bild Modul Director für Icingaweb2
Modul Director für Icingaweb2

Eine datenbankgestützte GUI für die Administration und Automatisierung von Icinga2. Die Kommunikation zu Icinga2 erfolgt über die Icinga2 API. Mittels sogenannter „Templates“ für Host- und Serviceobjekte besteht die Möglichkeit, das Monitoring zu vereinheitlichen.

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.

Elasticsearch

Anbindung an eine Elastic-Instanz zur Darstellung von Host-Daten (z. B. Eventlog)

Einzelnachweise

  1. Releases. Abgerufen am 19. Juli 2018.
  2. Open-source working as advertised: ICINGA forks Nagios. In: CNET. 6. Mai 2009 (cnet.com [abgerufen am 17. August 2018]).
  3. a b Why a fork? - Icinga: Open Source Monitoring. In: archive.li. 23. April 2013 (archive.today [abgerufen am 17. August 2018]).
  4. SOpenSource. Abgerufen am 17. August 2018 (amerikanisches Englisch).
  5. a b Icinga Web 2. In: Icinga. 30. November 2015 (icinga.com [abgerufen am 17. August 2018]).
  6. Falko Benthin: Icinga » ADMIN Magazine. Abgerufen am 17. August 2018 (amerikanisches Englisch).
  7. A lesson in Zulu: “Icinga”. In: Icinga. 3. November 2010 (icinga.org [abgerufen am 17. August 2018]).
  8. Nagios Vs. Icinga: the real story of one of the most heated forks in free software. Abgerufen am 17. August 2018 (englisch).
  9. 3 years old & 100,000 downloads! In: Icinga. 6. Mai 2012 (icinga.com [abgerufen am 17. August 2018]).
  10. Icinga 2 v.0.0.1 released! In: Icinga. 25. Oktober 2012 (icinga.com [abgerufen am 17. August 2018]).
  11. Icinga 2.0 has arrived. In: Icinga. 16. Juni 2014 (icinga.com [abgerufen am 17. August 2018]).
  12. Michael Friedrich: Icinga 2.10.2 bugfix release. In: Icinga. 14. November 2018, abgerufen am 13. Dezember 2018 (amerikanisches Englisch).
  13. Icinga 2.10 released: Namespaces, Notifications, TLS Performance. In: Icinga. 11. Oktober 2018 (icinga.com [abgerufen am 12. Oktober 2018]).
  14. NETWAYS GmbH, https://www.netways.de/en/development: Icinga | NETWAYS GmbH. Abgerufen am 27. August 2018 (en-DE).
  15. Migrating From Icinga 1x – Icinga 2. Abgerufen am 27. August 2018 (englisch).
  16. About – Icinga 2. Abgerufen am 17. August 2018 (englisch).
  17. a b Icinga 2 v2.8.0 released. In: Icinga. 17. November 2017 (icinga.com [abgerufen am 17. August 2018]).
  18. Search results for „monitoring-plugins“ | Icinga. Abgerufen am 17. August 2018 (amerikanisches Englisch).
  19. Icinga Web 2 Modules. In: Icinga. 19. Februar 2016 (icinga.com [abgerufen am 17. August 2018]).