Icinga

Open-source network monitoring application forked from Nagios From Wikipedia, the free encyclopedia

Icinga is an open-source network monitoring system created in 2009 as a fork of Nagios.[2] The project was started by a group of Nagios community developers who cited slow development, limited community input, and insufficient handling of contributed patches as reasons for the fork.[3] The name is a Zulu word meaning "it looks for" or "it examines."[4]

Initial releaseMay 2009; 16 years ago (2009-05)
Stable release
2.15.0 / June 18, 2025; 8 months ago (2025-06-18)[1]
Written inC++ (core), PHP (web frontend)[1]
Operating systemLinux (server); agents for Linux, FreeBSD, Windows
Quick facts Initial release, Stable release ...
Icinga
Initial releaseMay 2009; 16 years ago (2009-05)
Stable release
2.15.0 / June 18, 2025; 8 months ago (2025-06-18)[1]
Written inC++ (core), PHP (web frontend)[1]
Operating systemLinux (server); agents for Linux, FreeBSD, Windows
TypeNetwork monitoring
LicenseGPLv2
Websiteicinga.com Edit this at Wikidata
Repositorygithub.com/Icinga/icinga2
Close

Icinga 1.x maintained compatibility with Nagios plugins and configuration files, adding a modern web interface, additional database backends (PostgreSQL, Oracle), and a REST API.[5] Icinga 2, released in June 2014, was a ground-up rewrite in C++ with a new configuration language, a built-in cluster stack for distributed monitoring, and an API-first design.[6]

History

In May 2009, developers from the Nagios community announced the fork, initially maintaining full backward compatibility with Nagios Core's plugin interface and object configuration format.[3][7]

Icinga 1.0 was released in December 2009.[8] Subsequent 1.x releases added dual-stack IPv6 support, SLA reporting with distinction between planned and unplanned downtime, and integration of community add-ons for performance graphing (PNP4Nagios) and LDAP-based configuration (LConf).[7][9]

In October 2012, the project announced a technology preview of Icinga 2, a ground-up rewrite designed to address scalability limits and configuration complexity in large deployments.[10] Icinga 2.0 was released in June 2014 with a new domain-specific configuration language, a built-in TLS-secured cluster stack for distributed and high-availability setups, and a REST API for external integrations.[6]

Icinga Web 2, a PHP-based modular frontend, replaced the original Classic UI and Icinga Web 1.x interfaces. It uses a module system for extending functionality (director for configuration management, graphing, reporting, and business process monitoring).[1]

Architecture

Icinga 2 core

The Icinga 2 core is written in C++ and handles check scheduling, notification routing, event processing, and cluster communication. It uses a configuration compiler that validates object definitions at startup, catching errors before monitoring begins. Check execution is parallelized across worker threads.[6]

Features are enabled or disabled at runtime through a feature subsystem. Built-in features include the checker (runs active checks), notification (sends alerts), IDO database writer (exports state and history data to MySQL or PostgreSQL), the Icinga API (REST interface), and performance data writers for Graphite, InfluxDB, and OpenTSDB.[1]

Distributed monitoring

Icinga 2 includes a cluster stack that uses TLS (X.509) certificates for authentication. Nodes can be configured in master-satellite-agent hierarchies, where satellite nodes run checks in remote zones and report results to the master. This allows monitoring across network boundaries without requiring direct connectivity from the master to every endpoint.[1]

Plugin compatibility

Icinga 2 executes standard Nagios-compatible plugins that return exit codes 0 (OK), 1 (WARNING), 2 (CRITICAL), or 3 (UNKNOWN). The Monitoring Plugins project and the Icinga Exchange provide plugin repositories.[5]

Database backend

The IDO (Icinga Data Output) database stores monitoring state, history, and configuration data. Icinga 2 supports MySQL/MariaDB and PostgreSQL for IDO storage. Oracle support, present in Icinga 1.x, was dropped in Icinga 2.[1]

See also

References

Related Articles

Wikiwand AI