Today we are happy to announce, that Icinga for Windows v1.7.0 has been released! While this release includes lots of bugfixes for the Framework itself including the basic plugins, our main goal was to increase usability and make access for developers a lot easier.
General Updates
We made some smaller improvements to the basic Icinga Plugins, will now allow the following:
- Check free and used space of partitions with Invoke-IcingaCheckPartitionSpace
- Check free and used space with the Invoke-IcingaCheckUNCPath plugin
- Print the website content with Invoke-IcingaCheckHTTPStatus while using verbosity 3 and a new argument for debugging purposes
- Filter for service startup by with Invoke-IcingaCheckService
Please make sure to read the Framework upgrading docs and the Plugin upgrading docs before updating.
We renamed the previous plugin Invoke-IcingaCheckUsedPartitionSpace to Invoke-IcingaCheckPartitionSpace and changed the default behavior, to check for the free space instead of the used space. This can simply be mitigated by setting the flag inside your template to change the monitoring. For backwards compatibility, both plugin configurations are shipped and are working for now,
Meet The Icinga for Windows API
Many versions ago, we started to provide an external package, which extended the functionality of Icinga for Windows with a REST-Api. As of today, we are happy to announce that both packages, icinga-powershell-restapi and icinga-powershell-apichecks have been fully merged directly into the Icinga PowerShell Framework.
As more and more of our internal tests have shown, is that using the Icinga for Windows REST-Api to execute checks is highly improving performance, not only for executing checks, but also to decrease the load of Windows machines. As we want to encourage more users to try out this feature and to decrease the required effort to install separated packages to the system, we decided that the best option will be to integrate the REST-Api and the Api-Checks feature directly into the Icinga PowerShell Framework. This means, once Icinga for Windows v1.7.0 is installed, you can remove the current installed packages for the Rest-Api and Api-Checks.
We will no longer maintain these packages and would recommend upgrading to Icinga for Windows v1.7.0, in case you want to use the latest features available for these components. As the code base is mostly the same by now, you will not require to do any additional steps while upgrading to v1.7.0, even when you previously or currently use the REST-Api and Api-Checks feature. The configuration including the execution are identical, installations will however be a lot easier in the future. To uninstall the modules, you can use the following commands:
Uninstall-IcingaComponent -Name 'restapi'; Uninstall-IcingaComponent -Name 'apichecks';
Join The Development
Not only did we simply merge two modules into Icinga for Windows, but we also spend a lot of time to think on how we can make it easier for developers to contribute their own plugins, daemons or Api endpoints. With the latest version, we ship a bunch of Cmdlets, allowing to easily create own PowerShell modules with a basic structure to get started with the development tasks.
In addition to that, we also made sure that updating these modules is very easy, as plugin documentation including required PowerShell modules files for the component itself are properly added into the manifest file with a simple command. Furthermore, we also added a simple test Cmdlet, checking code styling against our defined guidelines including a basic test if the module itself is working properly. Of course, you can also use our updating command to create a package .zip file, which can directly be used within the Icinga for Windows Repository Manager, ensuring that your own written modules can be distributed on your infrastructure.
For the next upcoming releases, we will extend the functionality even more, by adding additional tools and examples, allowing everyone to be able to write own custom Icinga for Windows components!
Read The Windows EventLog
While we already have a plugin for monitoring the Windows EventLog, there was no proper solution yet available to dynamically read the Windows EventLog as stream on a console, to get know current occurring events. Starting with the Icinga Agent 2.13.0, basic logs were by default no longer written into a log file, but into the Windows EventLog instead. Icinga for Windows always wrote events into the Windows EventLog, but getting information from there always required to open the Event Viewer and refreshing the content and looking for entries.
With Icinga for Windows v1.7.0, we are happy to announce that reading log information over CLI is now natively possible. For the Icinga Agent itself, you can stick to the current Cmdlet Read-IcingaAgentLogFile, which will either read the Icinga log file or the Windows EventLog, depending on the installed version and if the feature is enabled.
For Icinga for Windows itself we added a new command, Read-IcingaForWindowsLog, to fetch all Icinga for Windows related entries. However, as both solutions share the same space, we designed a generic approach both other Cmdlets will simply use for pre-filtering. You can read any Windows EventLog from the CLI as stream, by using Read-IcingaWindowsEventLog. You can specify the EventLog to read from, including sources to add and how many already present entries should be included inside the output.
As long as each command is running, every new event will directly be printed into the console and displayed for distinct colors, depending on if the severity is an information, warning or critical. Especially for debugging and development purposes, this is a huge benefit and allows even faster access to critical information to either troubleshoot problems or test newly implement code.
What’s Next
While this release does not bring a ton of new features and functionality, we prepared Icinga for Windows for future updates. Our main focus for the next upcoming releases will be to increase the performance by re-writing plenty of core features and smoothing out the user experience, by adding lots of additional functionalities directly into the Icinga for Windows Management Console. We want everyone be able to fully customize the environment based on requirements, but also to easily deploy the solution based on one simple configuration. This includes background daemons, installed modules, and added configuration to Icinga.
We are very excited about the future and would love you to join us on this amazing journey. We can’t wait to share with you, what we have in mind for Icinga for Windows!