Name | Modified | Size | Downloads / 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 withattrs
set to[]
to return empty attributes instead of all of them. [#8169] - Drop the undocumented
Checkable#process_check_result
and brokenSystem#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
andservice_template
tags inElasticsearchWriter
. [#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 beforeUser
andUserGroup
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 whileinterval
is set to0
. [#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
asnoexcept
to allow optimizations. [#10353] [#10365] - Cluster and API
- Fix an inverted condition in
ApiListener#IsHACluster()
that caused to always returntrue
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 tovmware-esx-command
check command. [#10435] - Add
-n
($load_procs_to_show$
) argument toload
check command. [#10426] - Add
--inode-perfdata
($disk_np_inode_perfdata$
) argument todisk
check command. [#10395] - Add
-r
($ssh_remote_version$
) and-P
($ssh_remote_protocol$
) arguments tossh
check command. [#10283] - Add
--unplugged_nics_state
($vmware_unplugged_nics_state$
) argument tovmware-esx-soap-host-net
andvmware-esx-soap-host-net-nic
check commands. [#10261] - Add
-X
($proc_exclude_process$
) argument toprocs
check command. [#10232] - Add
--dane
($ssl_cert_dane$
) argument tossl_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 tosnmp
andsnmpv3
check commands. [#9975] - Add
--continue-after-certificate
($http_certificate_continue$
) argument tohttp
check command. [#9974] - Add
--ignore-maximum-validity
($ssl_cert_ignore_maximum_validity$
) argument tossl_cert
check command. [#10396] - Add
--maximum-validity
($ssl_cert_maximum_validity$
) argument tossl_cert
check command. [#9881] - Add
--url
($ssl_cert_http_url$
) argument tossl_cert
check command. [#9759] - Add
fuse.sshfs
andfuse.*
(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 mentionicingadb-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 thehostalive
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 missingoverride
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 ourAtomic<T>
wrapper class. [#10215] - Drop unused
m_NextHeartbeat
member variable fromJsonRpcConnection
. [#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 unusedallow_partial
parameter fromStream#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]