Icinga upgrades to keep up with complex environment demands


The team behind monitoring system Icinga has declared version 2.12 of the tool as ready, which is the first to sport the new database backend Icinga DB (IDB) that is intended to improve performance for large distributed environments.

IDB is based on in-memory data structure store Redis and was developed as a successor to Icinga Data Output Database IDO, which can still be used. It uses checksums to synchronise an Icinga 2 environment’s configuration, volatile states, and history, while also coordinating Icinga 2 and Icinga Web 2, which use Redis and MySQL respectively. This is helped by IDB’s capability to read from multiple environments and write into a single MySQL instance.

The DB also includes a web module, which the team hopes will replace the monitoring module in the long run, and features a view switcher to change layouts, restructured detail views for hosts and services, and bulk operation improvements.

Icinga’s command line interface was meanwhile fitted with a pki verify command to help with the verification of TLS certificates by printing it and checking if it’s a public CA certificate. A slight alteration to the way the system checks for stable connections between endpoints is meant to get rid of a bug leading to JSON-RPC crashes.

Another area of improvement is the project DSL. The latest version includes get_template() and get_templates() to extract templates from configurations. It also allows users to work with ternary operator (x ? y : z) and Lambda Closures such as (() use(x) => x and () use(x) => { return x }). 

The team has also been busy improving the documentation with updated debugging instructions, better explanations for certain terms, and information on the icinga2apic Python API binding as well as the Icinga-telegram-bot. The API only received minor enhancements in the form of acknowledgement_last_change and next_update attributes for hosts and services.

Upgrading is described as relatively straight forward. However, the release comes with a couple of breaking changes, such as /v1/actions/acknowledge-problem refusing to acknowledge already acknowledged checkables, which is why a quick glance at the documentation is encouraged to avoid problems.

Icinga started out as a fork of the Nagios project, making it more of an “old-school” monitoring tool when compared to something like Prometheus which seems to be a must-have these days. Main goals of the project were a faster development pace, mainly to be able to get patches in more quickly, and giving users a more modern experience. Users of the system include Adobe, CERN, Siemens, Debian, and Puppet.