This bugfix release v2.4.5 fixes an issue with downtimes not being expired/activated on restart. It also fixes a problem with expired but not active downtimes. Downtimes and comments added on the master are now again synced to child zones in a cluster (broken with 2.4.0).
We’ve also re-evaluated and properly tested a patch fixing the retry interval issue after the first soft state change. The IDO related fixes target the faulty “notification was not sent out to any contact” problem inside Icinga Web 2.
We’ve also got reports on large scale installations having problems with specific Ubuntu kernels using ‘epoll’ as socket event engine. We’ve therefore added the possibility to set the EventEngine to ‘poll’ which allows users a safe fallback. We’ll investigate further on this possible kernel bug.
For more details please read the Changelog.

Windows Packages

The Windows setup wizard has been overhauled in order to fix some well known bugs. The way the installer works has been changed from NSIS (.exe) to MSI packages. This further allows us to build x86 and x64 packages. The upcoming Windows Server 2016 release will add a new installation option called “nano server” which excludes the x86 (WOW64) support.
Please note an important change with the configuration and state data: Previous installations kept that underneath “C:\Program Files (x86)\ICINGA2”. The new location is the (hidden) directory “C:\ProgramData\icinga2”.
The installer will copy all files on upgrade to the new location. Once you start the Icinga 2 Wizard and it detects a running service, you’ll find a new button called “Examine Config” which opens the directory in your Windows explorer.
The chocolatey builds have been updated as well. The documentation for the Windows installation now also provides screenshots for all important steps to take.

Check Command Timeout

Currently you cannot override the timeout attribute for CheckCommand objects provided by the ITL. We’ve come up with a solution to that – you can now specify the check_timeout attribute for host and service objects. It will override the existing timeout value. That way your VMware, Windows update, etc. checks will work again smoothly without having to modify/copy the ITL CheckCommand objects.


Packages for your favourite distribution should be available soon. Meanwhile check the Changelog.


What’s New in Version 2.4.5


  • Windows Installer changed from NSIS to MSI
  • New configuration attribute for hosts and services: check_timeout (overrides the CheckCommand’s timeout when set)
  • ITL updates
  • Lots of bugfixes


  • Feature 9283: Implement support for overriding check command timeout
  • Feature 9618: Add Windows setup wizard screenshots
  • Feature 11098: Add –method parameter for check_{oracle,mysql,mssql}_health CheckCommands
  • Feature 11194: Add –units, –rate and –rate-multiplier support for the snmpv3 check command
  • Feature 11399: Update .mailmap for Markus Frosch
  • Feature 11437: Add silent install / reference to NSClient++ to documentation
  • Feature 11449: Build 64-bit packages for Windows
  • Feature 11473: Update NSClient++ to version
  • Feature 11474: Install 64-bit version of NSClient++ on 64-bit versions of Windows
  • Feature 11585: Make sure to update the agent wizard banner
  • Feature 11587: Update chocolatey uninstall script for the MSI package


  • Bug 9249: logrotate fails since the “su” directive was removed
  • Bug 10624: Add application manifest for the Windows agent wizard
  • Bug 10843: DB IDO: downtime is not in effect after restart
  • Bug 11106: Too many assign where filters cause stack overflow
  • Bug 11224: Socket Exceptions (Operation not permitted) while reading from API
  • Bug 11227: Downtimes and Comments are not synced to child zones
  • Bug 11258: Incorrect base URL in the icinga-rpm-release packages for Fedora
  • Bug 11336: Use retry_interval instead of check_interval for first OK -> NOT-OK state change
  • Bug 11347: Symlink subfolders not followed/considered for config files
  • Bug 11382: Downtimes are not always activated/expired on restart
  • Bug 11384: Remove dependency for .NET 3.5 from the chocolatey package
  • Bug 11387: IDO: historical contact notifications table column notification_id is off-by-one
  • Bug 11402: Explain how to use functions for wildcard matches for arrays and/or dictionaries in assign where expressions
  • Bug 11407: Docs: Remove the migration script chapter
  • Bug 11434: Config validation for Notification objects should check whether the state filters are valid
  • Bug 11435: Icinga 2 Windows Agent does not honor install path during upgrade
  • Bug 11438: Remove semi-colons in the auto-generated configs
  • Bug 11439: Update the CentOS installation documentation
  • Bug 11440: Docs: Cluster manual SSL generation formatting is broken
  • Bug 11455: ConfigSync broken from 2.4.3. to 2.4.4 under Windows
  • Bug 11462: Error compiling icinga2 targeted for x64 on Windows
  • Bug 11475: FatalError() returns when called before Application.Run
  • Bug 11482: API User gets wrongly authenticated (client_cn and no password)
  • Bug 11484: Overwriting global type variables causes crash in ConfigItem::Commit()
  • Bug 11494: Update documentation URL for Icinga Web 2
  • Bug 11522: Make the socket event engine configurable
  • Bug 11534: DowntimesExpireTimerHandler crashes Icinga2 with
  • Bug 11542: make install overwrites configuration files
  • Bug 11559: Segfault during config validation if host exists, service does not exist any longer and downtime expires
  • Bug 11564: Incorrect link in the documentation
  • Bug 11567: Navigation attributes are missing in /v1/objects/
  • Bug 11574: Package fails to build on *NIX
  • Bug 11577: Compiler warning in NotifyActive
  • Bug 11582: icinga2 crashes when a command_endpoint is set, but the api feature is not active
  • Bug 11586: icinga2-installer.exe doesn’t wait until NSIS uninstall.exe exits
  • Bug 11592: Remove instance_name from Ido*Connection example
  • Bug 11610: Windows installer does not copy “features-enabled” on upgrade
  • Bug 11617: Vim Syntax Highlighting does not work with assign where