If you've copied the same icon font or the same LESS helper into two or three Icinga Web modules, you've hit the problem libraries exist to solve. This guide builds one from scratch: a small,...
Building a Shared Icon and Font Library for Icinga Web
If you've copied the same icon font or the same LESS helper into two or three Icinga Web modules, you've hit the problem libraries exist to solve. This guide builds one from scratch: a small,...
Icinga TOTP Web 1.0.0 Release
We are releasing Icinga TOTP Web v1.0.0, which adds Time-based One-Time Password (TOTP) two-factor authentication to Icinga Web. What Is Icinga TOTP Web? Icinga Web's authentication system supports multiple backends, but until now it lacked a built-in second factor....
Two Days Away From the Keyboard: Our Team Event Recap
Once a year, the Icinga team goes for a team event somewhere about an hour or two away from the office. This year's edition landed us at the Adventure Campus in Treuchtlichen, right in the middle of this year's first heatwave. The heat was unbearable. At one point we...
Releasing Icinga 2 v2.16.4
Today, we are announcing the availability of Icinga 2 v2.16.4. This release contains a number of fixes for various smaller but annoying bugs, including one regression regarding API authentication with certain HTTP client libraries. It also ensures that Icinga 2 is...
Monitoring Docker Containers with Icinga
A container reporting "up" tells you the process is running, not that the workload is healthy - but that caveat is true of any service, on a container or a bare server. What makes containers their own monitoring problem is the layer around the process: per-container...
I tried to build a design system with Figma and Claude from Scratch
Like many, I’ve been experimenting with Claude recently and tried to explore not only its capabilities, but of course also its limitations. The illusion that I could assign it a task and the AI tool would easily execute the work vanished quickly and I experienced...
IPL: How to use the ipl-web TermInput
Most form fields ask users for a single value like a name, an email, or a date. But some need a list of values. A plain text input with comma-separated values can technically do the job, but it gives no feedback while typing, no suggestions, and one invalid entry...
Icinga 2 v2.16.1 Bugfix Release
Today, we are announcing the release of Icinga 2 v2.16.1 which fixes an issue with some performance data writers. We have received a number of problem reports for v2.16.0 which could be traced back to some rework of the writers we did in that version. These issues can...
How to Create Your Own Plugins and Check Commands in Icinga 2
If you've been using Icinga 2 for a while, you probably know the built-in checks cover a lot of ground: disk space, CPU, memory, ping. But sooner or later you'll run into something specific to your setup that no existing plugin handles. That's where writing your own...
Tips and Tricks for Handling Secrets in Icinga 2
Today, we are going to look at a few things related to handling secrets. While Icinga 2 has no dedicated mechanisms for secret handling, there are a few tricks you can do with standard features. This is not meant as a step-by-step tutorial, but rather as an...
Get Valid TLS Certificates for Icinga Web Despite a Firewall
Lots of big companies lock down their IT infrastructure in the internal network, sometimes they even use only locally mirrored repositories. I totally understand this, especially since our CVE-2024-49369. Nowadays, when LLMs find security holes even in OpenBSD, you...
New Icinga plugin: NETGEAR monitoring with Go
NETGEAR AV Line monitoring With the new NETGEAR AV Line monitoring plugin, you can easily monitor NETGEAR AV Line devices in Icinga 2. This lightweight yet powerful Go-based tool communicates directly with the devices’ API and provides clear status values – including...











