Releasing Icinga for Windows v1.12.0

by | Mar 26, 2024

It has been a long time since our last release, but today it is finally time to release Icinga for Windows v1.12.0! We made some huge improvements to certain areas of Icinga for Windows, which we are going to talk about.


Eventlog Memory-Leak goes Bye-Bye

One of the biggest pain points with Icinga for Windows in the latest version was caused by a memory leak. This leak occurred because of Eventlog checks, causing the REST-Api backend to consume lots of memory and in some worst cases, up to 3GB! Needless to say, that this is ridiculous. After lots of efforts and various tests with help of our awesome customers and community, we were able to track down the issue to the Eventlog plugins and were able to provide a fix.

The bonus: Eventlog checks now also execute a lot faster than before and also consume less CPU resources during execution.


Improving Eventlog output and documentation

Furthermore, the Eventlog plugin output has been improved to give a more detailed view on which Eventlog is currently being checked but also, which source entries belong to. Each found event entry is now summarized inside an own package, mentioning the source of the events. This allows an even easier overview of what is going on.

In addition, we also improved the documentation of the Eventlog plugin to give a better overview on how the -After and -Before arguments for filtering work, with a visual hint

Start of EventLog        Plugin Execution
v         After 6h           Before 2h  v
8:00        10:00              14:00    16:00
| Not fetched | Fetched          | Not fetched

Know your Process CPU-Consumers

Another change to an existing plugin is for the CPU component. In addition to the CPU resource monitoring for each thread and socket, it will now also report the top 10 most consuming process information. The plugin will not always print 10 process details, depending on different short-term spikes, but especially on the important long-term events in case a process is taking up huge resources forever, this will provide much needed clarity. Of course you can also disable this view and inforamtion collection entirely.

Overriding Service status for not present services

The last plugin change is for the service plugin, which now provides the feature to use the argument -OverrideNotFound for changing the behavior in case a service is not present on a system. By default, the plugin will return Unknown, but with this argument you can override this status to Ok, Warning or Critical – just to make sure it is customized to your liking.

Don’t worry about certificates

With Icinga for Windows v1.12.0 as also made a huge change regarding our REST-Api. By default, we make use of the Icinga Agent certificate and previously migrated it on the fly to certificate to use with Icinga for Windows. While this works flawlessly, we cannot use this method while using JEA-Profiles (which we highly recommend using). Instead, we require to create a certificate for security reasons and for convenience, place it as icingaforwindows.pfx on the filesystem.

As certificates are renewed on a regular basis, it can happen that systems are not touched with any requirement to update any of the Icinga for Windows components. This could cause the icingaforwindows.pfx to expire. To mitigate this, Icinga for Windows will on new and updated environments install a scheduled task. This task will run every day at 1:00 a.m. and check the state of the Icinga for Windows certificate and renew it.

Don’t worry: There will be no downtime with the Icinga for Windows REST-Api at all. Together with this change, we also improved the handling of the REST-Api which will now be able to update certificates on the fly without requiring a restart of the service. In addition, the API will also wait for a valid certificate during start of the services and “heal” itself while waiting or retrying. This means the API should be even more resilient than before.

Test your environment!

Last but not least we added a new command to Icinga for Windows, which should help troubleshoot most issues more easily on the future: Test-IcingaForWindows

This little command will analyze your Icinga for Windows environment and check for known or missing configuration errors and provides a small report about those issues. In addition, it will also check the functionality of the REST-Api and provides a bunch of verifications, in case it doesn’t work.

In the future we will extend the test-cases even further, to make sure we can track down most issues and provide solutions. Speaking of solutions, the huge benefit of this new command ist the -ResolveProblems arguments.

Just in case your environment runs into “Failed” states, you can call the command again with this argument and Icinga for Windows will try to resolve these issues. Just as it should be – plain and simple!

Whats next?

Of course, this is only a small list of changes. We made some further changes to other plugins and fixed a ton of issues as well. For details, you can have a look on the Framework changelog and plugin changelog.

Now as this release with some huge showstoppers is completed, we will of course move forward with our goal to get Icinga for Windows to the next level. If you want to get a glimpse on how Icinga for Windows works, what it is and where we are moving forward to, you should get yourself a ticket to this year’s Icinga Summit. We will have a workshop on the first day of the event and would love to meet you there in Berlin!

As always, thanks to everyone for the huge support, contribution and feedback to our solution. This helps everyone to get the best out of the monitoring experience and we are glad we provide something to accomplish your goals. See you next time!

You May Also Like…

Subscribe to our Newsletter

A monthly digest of the latest Icinga news, releases, articles and community topics.