The Icinga Project released Icinga 2.0, its new monitoring software designed for modern IT infrastructures. Multi-threaded performance, native clustering and dynamic configuration put Icinga 2 in a league apart from its predecessors, Icinga 1 and Nag
In a much-anticipated release, the Icinga Project presented Icinga 2.0 stable for download. The new software completes Icinga's departure from the Nagios code base to provide exponential performance and scalability gains not possible as a fork, while maintaining compatibility with existing interfaces, plugins and addons.
Designed with modern monitoring environments in mind, Icinga 2 is equipped with multiple back-ends for easy integration of popular addons. From MySQL and PostgreSQL support in the IDODB, to Livestatus (e.g. for Nagvis, Thruk), performance data writing (e.g. for PNP4Nagios, InGraph) and direct output to Graphite for real-time performance monitoring.
In contrast to its predecessors, these features and their related libraries are shipped with Icinga 2.0. They can be activated as needed via 'icinga2-enable-feature' soft link commands. As such, Icinga 2 is not only easier to install and extend, but it also enables multi-functionality while improving performance.
The major advances in performance however, are a product of its multi-threaded architecture that runs checks, notifications and event updates as well as configuration validation and in parallel. "We have a single Icinga 2 instance monitoring 60,000 hosts, running over 1 million active checks a minute. It can even reload its configuration while monitoring continues - this level of performance really puts Icinga 2 far ahead of the game", revealed Michael Friedrich, Icinga 2 developer.
Building on this, Icinga 2 enables cluster stacks for distributed, high availability monitoring out-of-the-box. Clustered Icinga 2 instances autonomously manage load balancing of monitoring tasks such as checks, notifications and database updates, while replicating configuration and program states in real-time. "Icinga 2 cluster stacks are our answer to monitoring in the cloud era; our answer to scalability concerns in the community," explained Gunnar Beutner, Icinga 2 developer.
Community feedback also inspired the Icinga team to create a new object-based, template driven configuration format. Users can define services and notifications as templates to be applied to hosts, specifying targets with 'assign where' and 'ignore where' rules. In the same way, dependencies and downtimes can be applied to services, both of which have been redesigned for simplicity in Icinga 2.
The new configuration format is distinct for its dynamic runtime capabilities too. Conditional behaviours can be defined for checks, notifications and event commands, allowing configuration to adapt dynamically to changing monitoring conditions. Similarly, notification settings can be adjusted at runtime, making on-call staff rotation possible.
To help users learn the new format and migrate from Icinga 1 or Nagios, the project offers extensive documentation as well as configuration validation and syntax highlighting to support troubleshooting. Finally a configuration migration script is available to help start the process. "Configuring in Icinga 2 is intuitive and efficient. Once users try it, they will find it hard to return to icinga 1 and Nagios", predicted Bernd Erk, Icinga project coordinator.
"Combine this new dynamic configuration format with the immense performance gains and intelligent distributed monitoring design, and it's pretty easy to see why everyone has been looking forward to our Icinga 2.0 release", he added. As Ansible playbooks, Puppet modules and packages for Icinga 2 crop up around the community, the Icinga project looks to have convinced many that the future of open source monitoring is bright.
For more information, Icinga 2 and the Icinga Project are found at: www.icinga.org
[Images, logos and photos available. Reprints free of charge. Reference copy requested.]
Your contact at Icinga:
Icinga Community & PR
Tel: +49 911 9288512
- NOTES TO THE EDITOR -
About Icinga 2
Icinga 2 is a next generation open source monitoring solution designed to meet modern IT infrastructure needs. Built from scratch and based on C++, Icinga 2 boasts multi-threaded architecture for high performance monitoring, a new dynamic configuration format and distributed monitoring out-of-the-box. It also features multiple back-ends, including native support for Livestatus and Graphite to simplify installation and extension.
Icinga 2 is backward compatible to Nagios and Icinga 1, their monitoring plugins, interfaces and addons. Icinga 2 is parallel development branch to Icinga 1.
For more information on Icinga 2 see:
Icinga 2 Web Pages - www.icinga.org/icinga2/
Icinga 2 Development Roadmap - dev.icinga.org/projects/i2/roadmap
Icinga 2 Docs - docs.icinga.org
About Icinga 2 Performance Testing
Performance capabilities referred to above were achieved using the following hardware, Icinga 2 installation and configuration settings:
Product Name: X9DR3-F
2x Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
Ivy Bridge architecture
Hyper-Threading = 32 parallel threads
4x 8GB DDR3 1333Mhz
2x 1TB HDD Raid1
Icinga 2 Snapshot 2014-06-15 Debian Wheezy
check_interval = 1m
retry_interval = 30s
Hosts: 60 000 (10000 per type)
Services: 1 050 000 (15 per host, per type)
host_types = ["ok", "random", "down", "up", "unreachable", "pending"]
service_types = ["ok", "warning", "critical", "unknown", "flapping", "pending"]
Config validation: 148 sec
Icinga is a monitoring software project that began as a fork of Nagios. The Icinga Project maintains two branches in parallel: Icinga 1 and Icinga 2.
Icinga 1 and Icinga 2 are enterprise-grade open source monitoring systems that keep watch over a network and any conceivable network resource, notify users of errors and recoveries, and generate performance data for reporting. Though both are scalable and extensible, Icinga 2 is designed to monitor complex, large environments across dispersed locations out-of-the-box.
All software written by the Icinga Project is licensed under GPL V2 - free to use, distribute and modify.