This release comes with Elasticsearch 6 support sponsored by a customer – cheers to Vienna! In addition to this feature, we’ve also taken care of unwanted unknown results on reload with command endpoint clients. Thanks for sponsoring a long lasting issue fix.
v2.9.0 contains many bugfixes and improvements requested by Icinga partners and their customers. Our community members have also been reporting and testing quite a bit, especially the nasty bugs with memory leaks on REST API requests are fully resolved.
Thanks to all contributors: Magnus, Carsten, Max, Leah, Adam, Akrus, Jorge, Andrea, terra-nova, Maurice, Michal, sahnd, Kami, Federico, Harald, Fabian, Lee for your awesome work!
Enhancements and Fixes
In addition to leak fixes, we’ve finally found and fixed the root cause for unwanted notifications in a downtime upon reload without any logging. This fixed a similar problem with recurring ScheduledDowntime objects generating a new Downtime object on each restart.
Windows clients suffered from two problems: The ApiUser hashed password caused infinite config validation resulting in a reload timeout. Since this feature introduced more troubles, it has been removed from the stable release tree and will be re-evaluated later. The second Windows problem we’ve seen was one with sockets not available after reload, Alex did a great job on fixing this. He’s also fixed nasty http client timeouts with the debug console, check_nscp_api and the Elasticsearch/InfluxDB writers.
Accompanied with many bugfixes, you can find many more enhancements in v2.9.0:
- icinga health check command supports minimum version parameter. This is useful to monitor your satellites/clients being up-to-date.
- ido CheckCommand supports thresholds for query rate
- The dummy check is executed in-memory, avoids plugin call
ApplicationVersionconstant in the configuration (use your DSL imagination ;))
- TTL (“time to live”) support for check results sent via REST API. This allows to override the next expected check result for freshness checks.
- Pretty formatting for REST API queries, use &pretty=1
- TLS support for IDO PostgreSQL
- node setup supports connection-less automated installations
Thanks to our core developer Michael Insel you can now specify additional global zones next to “global-templates” and “director-global” which come default with every setup. Next to that, we’ve thought quite a bit how to solve the problem with local “conf.d” configuration included on clients, this causes weird check result effects hard to troubleshoot. We’ve solved it in the way that 2.9 wizards will automatically disable the “conf.d” inclusion in the icinga2.conf file, you can opt-out of this behaviour.
Community support also unveiled that the handling of the NodeName/ZoneName constants led to confusion. While refactoring the setup wizards to allow specific parent zone naming we’ve also thought how to make this more easy, without any “after the wizard you need to edit the config file again” procedure. Essentially, the wizards should now target any specific scenario (master, satellite, client) and generate readable configuration with FQDNs and static names, as the documentation proposes as best practice.
Other note worthy changes
Security fixes in v2.8.2 required us to move the runtime user configuration and other settings into the global sysconfig configuration. The implementation has been generally overhauled in v2.9.0 and reads environment variables passed from Systemd/Sysvinit. Please review the upgraded sysconfig file and remove any application paths from previous versions.
Below is a list of specific customer support fixes:
- Check scheduling on restarts ensures a more “smooth” immediate execution
- Event handlers are not fired twice in HA enabled zones
- Reminder notifications are now suppressed if the checkable is flapping
- Command endpoint clients respect the “concurrent_checks” limit
Set aside all the visible changes, we’ve improved the code quality and started to use more C++11 features. Some of them improve the performance in significant ways, others make it easier to start with changes. With the development work started on a new backend, we’ve also deprecated legacy 1.x features: checkresultreader, statusdata and compatlog. We’ve also decided to shutdown efforts on the experimental Icinga Studio, it has been removed.
Upgrading and Changelog
As with every release, make sure to check the upgrading docs and Changelog prior to immediately upgrading your production environments. Fire up your test labs and plan your upgrade. The latest packages can also be tested inside the Vagrant boxes.
Official packages are available on packages.icinga.com – happy monitoring 🙂