Download Latest Version Icinga 2 v2.15.0 source code.tar.gz (9.4 MB)
Email in envelope

Get an email when there's a new version of Icinga 2

Home / v2.15.0
Name Modified Size InfoDownloads / Week
Parent folder
Icinga 2 v2.15.0 source code.tar.gz 2025-06-17 9.4 MB
Icinga 2 v2.15.0 source code.zip 2025-06-17 10.0 MB
README.md 2025-06-17 12.3 kB
Totals: 3 Items   19.4 MB 1

This Icinga 2 release is focused on adding Icinga 2 dependencies support to Icinga DB, but also includes a number of bugfixes, enhancements and code quality improvements. Below is a summary of the most important changes, for the complete list of issues and PRs, please see the milestone on GitHub.

Notes

Thanks to all contributors: ChrLau, Josef-Friedrich, LordHepipud, OdyX, RincewindsHat, SebastianOpeni, SpeedD3, Tqnsls, botovq, cycloon, legioner0, legna-namor, macdems, mathiasaerts, mcodato, n-rodriguez, netphantm, nicolasberens, oldelvet, peteeckel, tbauriedel, w1ll-i-code, ymartin-ovh

Breaking Changes

  • API: Fix /v1/objects/* queries with attrs set to [] to return empty attributes instead of all of them. [#8169]
  • Drop the undocumented Checkable#process_check_result and broken System#track_parents DSL functions. [#10457]

Enhancements

  • Gracefully disconnect all clients on shutdown and prevent from accepting new connections. [#10460]
  • Icinga DB: Send data to Redis® exactly as they're stored in the database to avoid extra value-mapping routines by the Go daemon. [#10452]
  • Add support for Icinga 2 dependencies in Icinga DB. [#10290]
  • Take host/service reachability into account when computing its severity. [#10399]
  • Rework the dependency cycle detection to efficiently handle large configs and provide better error messages. [#10360]
  • Don't log next check timestamp in scientific notation. [#10352]
  • Automatically remove child downtimes when removing parent downtime. [#10345]
  • Ensure compatibility with Boost version up to v1.88. [#10278] [#10419]
  • Reject infinite performance data values. [#10077]
  • Support host_template and service_template tags in ElasticsearchWriter. [#10074]
  • Icinga DB: Support Redis® username authentication. [#10102]
  • Cluster: Distribute host child objects (e.g. services, notifications, etc.) based on the host's name. [#10161]
  • Icinga DB Check: Report an error if both Icinga DB instances are responsible in a HA setup. [#10188]
  • Windows: upgrade build toolchain to Visual Studio 2022. [#9747]

Bugfixes

  • Core
  • Use Checkable#check_timeout also for rescheduling remote checks. [#10443]
  • Log: Don't unnecessarily buffer log messages that are going to be dropped anyway. [#10177]
  • Don't loose perfdata counter (c) unit when normalizing performance data for Icinga DB. [#10432]
  • Fix broken SELinux policy on Fedora ≥ 41 due to the new /usr/sbin to /usr/bin equivalence. [#10429]
  • Don't load Notification objects before User and UserGroup objects to allow them to be referenced in notifications. [#10427]
  • Ensure consistent DST handling across different platforms. [#10422]
  • Fix Icinga 2 doesn't generate a core dump when it crashes with SIGABRT. [#10416]
  • Don't process concurrent checks for the same checkable. [#10372]
  • Don't process check results after the checker and API listener have been stopped. [#10397]
  • Avoid zombie processes on plugin execution timeout on busy systems. [#10375]
  • Properly restore the notification object state on Recovery notification. [#10361]
  • Fix incorrectly dropped acknowledgement and recovery notifications. [#10211]
  • Prevent checks from always being rescheduled outside the configured check_period. [#10070]
  • Don't send reminder notifications after a Custom notification while interval is set to 0. [#7818]
  • Reset all signal handlers of child processes to their defaults before starting a plugin. [#8011]
  • tests: Fix FormatDateTime test cases with invalid formats on macOS and all BSD-based systems. [#10149]
  • Mark move constructor and assignment operator in String as noexcept to allow optimizations. [#10353] [#10365]
  • Cluster and API
  • Fix an inverted condition in ApiListener#IsHACluster() that caused to always return true in a non-HA setup. [#10417]
  • Don't silently accept authenticated JSON-RPC connections with no valid endpoint. [#10415]
  • Sync Notification#notified_problem_users across the cluster to prevent lost recovery notifications. [#10380]
  • Remove superfluous ) from a HTTP request log message. [#9966]
  • Disable TLS renegotiation (handshake on existing connection) on OpenBSD as well. [#9943]
  • Log also the underlying error message when a HTTP request is closed with No data received by Icinga 2. [#9928]
  • Fix a deadlock triggered by concurrent /v1/actions/add-comment and /v1/actions/acknowledge-problem requests on the same checkable, as well as a crash that might occur when running perfectly timed /v1/actions/add-comment and /v1/actions/remove-comment requests targeting the same comment. [#9924]
  • Icinga DB
  • Fix missing acknowledgement and flapping history entries due to a number overflow. [#10467]
  • Send downtime cancel_time only if it is cancelled. [#10379]
  • Send only the necessary data to the icinga:stats Redis® stream. [#10359]
  • Remove a spin lock in RedisConnection#Connect() to avoid busy waiting. [#10265]
  • Writers
  • Serialize all required metrics before queueing them to a WorkQueue. [#10420]
  • OpenTsdbWriter: Include checkable name in log messages to ease troubleshooting. [#10009]
  • OpenTsdbWriter: Don't send custom empty tags. [#7928]
  • InfluxDBWriter: Add missing closing quote in validation error message. [#10174]

ITL

  • Add --maintenance_mode_state ($vmware_maintenance_mode_state) argument to vmware-esx-command check command. [#10435]
  • Add -n ($load_procs_to_show$) argument to load check command. [#10426]
  • Add --inode-perfdata ($disk_np_inode_perfdata$) argument to disk check command. [#10395]
  • Add -r ($ssh_remote_version$) and -P ($ssh_remote_protocol$) arguments to ssh check command. [#10283]
  • Add --unplugged_nics_state ($vmware_unplugged_nics_state$) argument to vmware-esx-soap-host-net and vmware-esx-soap-host-net-nic check commands. [#10261]
  • Add -X ($proc_exclude_process$) argument to procs check command. [#10232]
  • Add --dane ($ssl_cert_dane$) argument to ssl_cert check command. [#10196]
  • Fix check_ssl_cert deprecation warnings. [#9758]
  • Fix check_systemd executable name add add all missing arguments. [#10035]
  • Add -M ($snmp_multiplier$ & $snmpv3_multiplier$) argument to snmp and snmpv3 check commands. [#9975]
  • Add --continue-after-certificate ($http_certificate_continue$) argument to http check command. [#9974]
  • Add --ignore-maximum-validity ($ssl_cert_ignore_maximum_validity$) argument to ssl_cert check command. [#10396]
  • Add --maximum-validity ($ssl_cert_maximum_validity$) argument to ssl_cert check command. [#9881]
  • Add --url ($ssl_cert_http_url$) argument to ssl_cert check command. [#9759]
  • Add fuse.sshfs and fuse.* (supported only by Monitoring Plugins) to the list of default disk exclude types. [#9749]
  • Add check_curl check command. [#9205]
  • Add the --extra-opts argument to various commands that support it. [#8010]

Documentation

  • Don't use dnf config-manager to configure Fedora repository and mention icingadb-redis-selinux package. [#10479]
  • Update the outdated cold startup duration documentation to reflect the current behavior. [#10446]
  • Indent second-level unordered lists with four spaces to correctly render them in the HTML documentation. [#10441]
  • Add a reference to the check result state documentation from within the Advanced Topics section. [#10421]
  • Improve the documentation of how to generate Icinga 2 core dumps. [#10418]
  • Update Icinga 2 CLI output examples to match the current output. [#10323]
  • Fix incorrect ping_timeout value in the hostalive check command documentation. [#10069]

Code Quality

  • Simplify deferred SSL shutdown in ApiListener#NewClientHandlerInternal(). [#10301]
  • Don't unnecessarily shuffle configuration items during config load. [#10008]
  • Sort config types by their load dependencies at namespace initialization time to save some round trips during config load. [#10148]
  • Fix livestatus build error on macOS without unity builds. [#10176]
  • Remove unused methods in SharedObject class. [#10456]
  • Remove unused ProcessingResult#NoCheckResult enum value. [#10444]
  • CMake: Drop all third-party cmake modules and use the ones shipped with CMake v3.8+. [#10403]
  • CMake: Raise the minimum required policy to 3.8. [#10402] [#10478]
  • CMake: Turn on -Wsuggest-override to warn about missing override specifiers. [#10225] [#10356]
  • Make icinga::Empty a constant to prevent accidental modifications. [#10224]
  • Remove various unused methods in the Registry class. [#10222]
  • Fix missing parent std::atomic<T> constructor call in our Atomic<T> wrapper class. [#10215]
  • Drop unused m_NextHeartbeat member variable from JsonRpcConnection. [#10208]
  • Enhance some of the validation error messages. [#10201]
  • Don't allow Type#GetLoadDependencies() to return non-config object type dependencies. [#10169]
  • Don't allow Type#GetLoadDependencies() to return a set of nullptr type dependencies. [#10155]
  • Remove EOL distros detection code from Utility::ReleaseHelper() function. [#10147]
  • Remove dead code in TLS GetSignatureAlgorithm() function. [#9882]
  • Mark Logger#GetSeverity() as non-virtual to avoid unnecessary vtable lookups. [#9851]
  • Remove unused Stream#Peak() method and unused allow_partial parameter from Stream#Read(). [#9734] [#9736]
  • Suppress compiler warnings in third-party libraries. [#9732]
  • Fix various compiler warnings. [#9731] [#10442]
  • Reduce task function allocation overhead by using a per-thread created lambda in WorkQueue. [#9575]
  • Remove redundant trailing empty lines and add missing newlines in some files. [#7799]
Source: README.md, updated 2025-06-17