Icinga for Windows v1.10.0 – The Next Level

by | Aug 30, 2022

After some drawbacks we are very happy today to finally release Icinga for Windows v1.10.0! The past weeks we have spent a lot of time to polish this release, test many different aspects and optimize the user experience in general. Please make sure to read the upgrading docs carefully, before upgrading to v1.10.0. Otherwise, your installation might not work as expected, or Icinga for Windows might not load anymore. However, for this case, we also created a knowledge base entry IWKB000014 to help you get the environment running again.

Breaking Changes

With Icinga for Windows v1.10.0 we break compatibility with all previous generated performance data, as already announced in last months blogpost. This allows us to move forward with a standardized output for every plugin and ensures creating dashboards with visualization tools like Grafana is easier than before. If you intend to upgrade to the new version, please ensure to update all plugin repositories to the latest version as well. We have new version releases for

The performance metrics have been updated there, to provide the correct naming scheme.

In addition to the change for performance metrics, we made some adjustments to the file encoding for the Icinga for Windows cache file. Please have a look on the upgrading docs, to ensure you do not brick our installation or read IWKB000014 in case you already did.

A Long Bugfix-List

The changelog for v1.10.0 is huge, and while we also added new features and enhancements, we tried to focus to fix long-term issues not only for the Framework but also different plugins. Some include more usage-breaking fixes, others focus on the overall user experience and bad output or confusing error messages. The most important bugfixes for framework and plugins however are

  • #473 String-Arguments within Icinga/Icinga Director configuration with whitespaces are now automatically escaped by ” (requires new CheckCommand config and Icinga Director >= 1.9.0)
  • #482 German umlauts are now properly encoded and will not cause invalid checks or check results
  • #503 Plugin threshold detection is now working as intended and will not only properly detect negative values but also match properly for the unit on input values and not cause something like serverms-001 being detected as 0.001ms
  • #505 Using a custom hostname for automated, unattended installation over CLI with Icinga Director Self-Service will now create the host object with the correct name
  • #528 Negative thresholds will no longer cause the Check-Handler or the REST-Api to throw an exception
  • #563 Plugins using a SecureString argument (like MSSQL passwords or HTTP plugins) now work properly by using the REST-Api feature
  • #565 Improves the Icinga for Windows file writer to ensure cache files will no longer become corrupt on unexpected shutdowns or crashes
  • #308 Fixes non-public function Get-IcingaServiceCheckName, causing MSSQL plugins to no longer work
  • #64 Hyper-V health check plugin will no longer falsely report critical for Hyper-V services, if they were never started before
  • #42 Cluster plugins will now report warning for the state of a cluster shared volume, in case the state is not Direct

If you are interested in all changes, please have a look on the Framework Changelog, Plugins Changelog, MSSQL Changelog, Hyper-V Changelog and Cluster-Changelog.

Minor Improvements

While a lot of issues have been fixed with this release, we also added some new features ensuring a better user experience for several tasks. For example, we happily introduce the new Developer Mode for Icinga for Windows, which will ensure that you can call

icinga -DeveloperMode { <# Your Code #> };

and test all of your custom plugins without having to worry about cache files being invalid. This integration will keep the cache clear and only load the current module state into the PowerShell. In addition, Visual Studio Code will do the same thing and render the new configuration but resets the state of the cache file again, preventing a compiled cache file accidentally being added to a commit for example.

Another feature is that the Icinga Agent and Icinga PowerShell Service are now installed with a recovery option inside Windows. In case one of these services terminates unexpectedly, Windows will automatically restart these services.

Last but not least we added a test and repair function for the Icinga Agent statefile, in case the file becomes corrupt. This is reported by Test-IcingaAgent and can either be repaired by using the CLI command Repair-IcingaAgentStateFile or the Troubleshooting section inside the Icinga Management Console.

New Plugin: HTTP Json Response

One of our customers identified the lack of capabilities for monitoring JSON content of webpages properly. Based on this requirement, they started working on a new plugin: Invoke-IcingaCheckHttpJsonResponse

The plugin was entirely designed and written by our customer, with very little guidance or guidelines from our side. Ther result is a very flexible plugin, allowing to crawl down a JSON path, fetch the result and set thresholds for one or multiple paths for the plugin.

While there are still some parts that are currently not supported, like JSON-Array elements, this plugin provides a very flexible feature-set allowing us to extend it in the future. Thanks again for the contribution!

Grafana Dashboards

While all the above mentioned will ensure Icinga for Windows will work fine and extends the features, all the monitoring without proper visualization is missing a key feature for Icinga. Therefore, we are happy to announce that we will provide default dashboards for Grafana for Plugins, Hyper-V and MSSQL. This includes Icinga Web Grafana integration for all Hyper-V and MSSQL plugins, and the following checks for the default Windows plugins as of today:

We also provide a detailed documentation on how install the Grafana dashboards. Over the next weeks, we will monitor user and customer feedback to identify different requirements and use cases, to evaluate on how we can optimize the dashboards and integrations in the future. We will also keep working to ensure that all plugins are providing default dashboards and views in the future, to allow a quick overview of the current environment and service state.

 

We hope you enjoy this release and can’t wait to read your feedback and opinion on the changes we have made, but also on the provided default dashboards. We have plenty of ideas for the future of Icinga for Windows and are exited to share the next steps with you!

You May Also Like…

Subscribe to our Newsletter

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