Introduction Icinga 2 makes heavy use of Boost.Coroutine2 in our network code, which are stackful coroutines that are designed to work well with the IO operations from Boost.Asio. This has proven to...
Exploring C++20 Coroutines: A Practical Look at Stackless Coroutines vs Boost.Coroutine2
Introduction Icinga 2 makes heavy use of Boost.Coroutine2 in our network code, which are stackful coroutines that are designed to work well with the IO operations from Boost.Asio. This has proven to...
Monitor One Icinga 2 Cluster From Another
Icinga is designed to be a highly dynamic monitoring software that can monitor your setup, regardless of its architecture. While most setups are hierarchical and fit well into the master, satellites, and agents scheme with different zones, it is sometimes impractical...
Drowning in Alert Fatigue? How to Regain Control of Your Monitoring
Introduction: Why Alert Fatigue Hits Sysadmins Sooner or Later If you’ve ever muted your phone during a maintenance window, only to miss a real outage an hour later, you’re not alone. Sysadmins on Reddit and beyond often describe feeling like they’re drowning in...
Icinga Notifications: Custom Channel Plugins
As many of you have already seen in our previous blog posts and our early beta release, we're working on a new, independent notification module. Right now, we only offer three ready-made channels for sending notifications. Today, I want to show you how you can create...
Multi Element Selection in Icinga DB Web
From time to time we want to bring not so widely known features of Icinga into spotlight. In this effort it’s a not so obvious feature, that was available in the monitoring module of Icinga Web 2 at some point already. It has also been available in Icinga DB Web since...
Icinga Director: Cloning dictionary row entries for objects from import sources
Over use of dictionaries in monitoring leads to complex and ugly configurations. This in turn makes monitoring complicated. Hence, it is advisable to use it, only if it is needed or in special cases. Even in these cases it is worthwhile to keep it simple. On that...
Icinga Package Repository Key Rotation, 2024
Icinga uses it's own repositories to distribute installation packages for the Icinga software. Today, we're announcing the rotation of the GPG key used to sign our repositories and packages. Currently, our repository is signed with a 1024 bit DSA key. Key rotation is...
Icinga Notifications Web: Schedule configuration
A few weeks ago, we released the first beta version of the Icinga Notifications Web module. The Configuration tab provides the option to create schedules that can be used as recipients for notifications. What is a Schedule and how does it work? A schedule is a...
Getting Started With Icinga Notifications
Icinga Notifications and Icinga Notifications Web just celebrated their first beta release. This post will try to help you get started by explaining concepts and configurations.
Effective Monitoring Strategy: 10 Tips for Success
As a software developer in training at Icinga, I've learned a lot about the nuances and importance of monitoring systems. Effective monitoring is critical for maintaining the health, performance and security of any infrastructure or application. Here are ten essential...
Native Binaries with PHP
There is always a big debate about whether interpreted or compiled languages are more useful. I think it is important to look at the pros and cons. Both language types have their strengths and weaknesses. While interpreted languages are great for maintaining and...
Making Use of Previous State in Icinga2 Check Commands
When writing a custom check plugin for Icinga 2, there are situations where in addition to observing the current state of a system, taking the past into account as well can be helpful. A common case for this is when the data source provides counter values, i.e. values...
Subscribe to our Newsletter
A monthly digest of the latest Icinga news, releases, articles and community topics.









