Nächste Woche am Dienstag planen wir Icinga 2.6 zu releasen, quasi als vorgezogenes Weihnachtsgeschenk. Im Gegensatz zu den vorhergehenden “großen” 2.x-Releases haben wir den Fokus diesmal nicht auf neue Features, sondern auf Bugfixes gesetzt.

Insbesondere haben wir etliche Bugs gefixt, die Notifications und den Cluster betreffen. So gibt es beispielsweise bis einschließlich Icinga 2.5.4 Bugs, die dafür sorgen, dass unter bestimmten Umständen Notifications fälschlicherweise versendet werden oder beim Synchronisieren des Clusters Objekte nicht richtig angelegt werden. Außerdem haben wir eine Reihe von Crashes gefixt, die wir mit Unterstützung unserer Kunden analysieren konnten.

Des Weiteren verwenden wir nun auch ausgewählte C++11-Features, um langfristig die Wartbarkeit des Projekts zu erhöhen. So sind in Icinga 2 nun z.B. range-based for loops “erlaubt”, die wir anstatt von BOOST_FOREACH verwenden. An ausgewählten Stellen verwenden wir auch das neue “auto”-Keyword, um Variablendeklarationen zu vereinfachen.

Zusätzlich haben wir das im Installer integrierte NSClient++-Paket auf die aktuelle Version (0.5.0) erneuert und für den Windows-Installer eingebaut, dass der Benutzer konfiguriert werden kann, mit dem Icinga gestartet wird.

NSClient++ bietet seit Version 0.5.0 eine eigene REST-API, die wir zwar in der 2.6 noch nicht verwenden, aber bereits zum Ausprobieren von Commands sehr hilfreich ist:

Die Dokumentation ist nun an einigen Stellen deutlich ausführlicher und einfacher zu lesen: So wurde beispielsweise die Liste der globalen Funktionen in ein eigenes Kapitel umgewandelt.

Dank der Icinga-Community haben wir etliche Patches für die ITL integrieren können, die entweder neue CheckCommand-Definitionen liefern oder bereits vorhandene Commands erweitern. Für Kundenprojekte haben wir zudem selbst auch einige ITL-Erweiterungen eingebaut.

Um in absehbarer Zeit SELinux vollständig unterstützen zu können, verwendet Icinga 2.6 nun einen separaten Prozess, um Plugin-Checks zu starten. Dies ist notwendig, um genau steuern zu können, welche File-Deskriptoren an den Child-Prozess weitergegeben werden.

Gunnar Beutner

Autor: Gunnar Beutner

Vor seinem Eintritt bei NETWAYS arbeitete Gunnar bei einem großen deutschen Hostingprovider, wo er bereits viel Erfahrung in der Softwareentwicklung für das Servermanagement sammeln konnte. Bei uns kümmert er sich vor allem um verschiedene Kundenprojekte, aber auch eigene Tools wie inGraph oder Icinga2.