This release addresses multiple issues related to fault recoveries, with a particular focus on retryable database errors that may occur when using Icinga DB with database clusters.
Since there may be a large number of errors that are resolved by retrying after a certain amount of time, #698 changed the retry behavior to retry every database-related error for five minutes. This helps Icinga DB survive network hiccups or more complicated database situations, such as working with a database cluster.
The latter was specifically addressed in #711 for Galera Clusters on MySQL or MariaDB by configuring wsrep_sync_wait
on used database sessions.
Galera users should refer to the Configuration documentation for more details.
In summary, the most notable changes are as follows:
- Custom Variables: Render large numbers as-is, not using scientific notation. #657
- Enhance retries for database errors and other failures for up to five minutes. #693, #698, #739, #740
- MySQL/MariaDB: Use strict SQL mode. #699
- MySQL/MariaDB Galera Cluster: Set
wsrep_sync_wait
for cluster-wide causality checks. #711 - Don't crash history sync in the absence of Redis®*. #725
- Update dependencies. 27 times
In addition to mandatory schema upgrades, this release includes an optional upgrade that can be applied subsequently. Details are available in the Upgrading documentation and #656.
All schema changes are listed below:
- Allow host and service check attempts >= 256. #656
- Composite
INDEX
for the history table to speed up history view in Icinga DB Web. #686 - MySQL/MariaDB: Fix
icingadb_schema.timestamp
not being Unix time. #700 - PostgreSQL: Change
get_sla_ok_percent
to return decimal numbers in SLA overview. #710
This release fixes a few crashes in the Icinga DB daemon, addresses some shortcomings in the database schema,
and makes the icingadb-migrate
tool handle malformed events and other edge-cases more reliably.
- Fix a possible crash when the Icinga 2 heartbeat is lost. #559
- Retry additional non-fatal database errors. #593 #583
- Make heartbeat compatible with Percona XtraDB Cluster. #609
- Write a hint for empty arrays/dicts into
customvar_flat
for Icinga DB Web. #601 - Warn about unknown options in the daemon config file. #605 #631
- Don't log a port number for UNIX socket addresses. #542
- Fix some custom JSON encode functions for
null
values. #612 - Documentation: add TLS options to
icingadb-migrate
example config. #604 - Documentation: Replace
apt-get
withapt
. #545 - Update dependencies. #548 #549 #588 #589 #590 #594 #595 #596 #598 #599 #603 #632
- Allow longer names for notification objects. #584
- Add missing indices to
hostgroup
,servicegroup
, andcustomvar_flat
. #616 #617 - Change sort order of history event types. #626
- Ignore events that miss crucial information. #551
- Fix a foreign key error for flapping history with
ido.from
set. #554 - Fix a constraint violation for flexible downtimes that never started. #623
- Show an error for unknown options in the config file. #605
This release adds a tool for migrating history from IDO. Apart from that, it reduces RAM usage and includes updated dependencies.
- Add
icingadb-migrate
for migrating IDO history to Icinga DB. #253 #536 #541 - Reduce RAM usage during full sync. #525
- Update dependencies. #522 #524 #533 #534 #540
Final release
Second release candidate
Initial release