Feedback Week 2022

I want to give a little insight why I voted I won't. In short words: It is to complex and over-engineered (for my needs). I just need the Icinga 2 Agent (icinga2.exe) and check plugins (e.g. check_disk.exe, etc.), nothing more.

Detailed answer:

  1. Installation

The installation process is not easy, if you maintain Windows servers that don’t have internet access. One have to figure out how to fetch the PowerShell installation program and move it to a the server without internet access. Than you have to deal with the Execution Policy in order to run PowerShell code (from the internet). This is another big barrier, since in some environments you can’t simply set the Execution Policy to allow because there are security regulations in place. Next thing one have to deal with are the dependencies, if I want the plugins I have to install the Icinga PowerShell Framework, there is no other way.

  1. Deployment

Deploying an MSI package is easy with the common software packing solutions out there. But deploying PowerShell modules is a whole new topic and is not as easy. In other words to create an automated deployment with existing software packing solutions you need to bring time to create a whole new process.

  1. Features

I like to keep installations simple and clean, so if I only need the Icinga 2 Agent (icinga2.exe) and the check plugins (check_disk.exe, etc.) or the equivalent PowerShell check plugins, I don’t see a need to install a whole Framework, that brings a _ Icinga Management Console (IMC), Repository Manager, _ Icinga Powershell Service and other features that I would never use. Software and features that are installed have to be maintained and check for updates regularly. If there are less features and less software the scope is smaller and also the scope for security related stuff.

I know that the C/C++ Windows plugins (check_disk.exe, etc.) are deprecated, further development will not happen. This is a big problem for me, since I don’t see a way to migrate to Icinga for Windows anytime soon, if ever. I understand the need for check plugins that are maintainable, the C/C++ Windows plugins are very hard to maintain, one have to deal with Windows API etc. I myself have created some patches for the C/C++ Windows plugins and it was always not easy. So there is a need for some sort of other Windows plugins. PowerShell is a good alternative, since you have access to a bunch of Cmdlets and .NET.

But why do the check plugins require a whole framework to be installed first? Why don’t ship them as standalone plugins like check_disk.ps1, check_load.ps1? Standalone plugins could be bundled with the MSI installer and the installation and deployment would be as simple as before.

One problem that should be addressed is that the Icinga 2 Agent (icinga2.exe) can not run PowerShell scripts natively, you have to come up with this “hack” to run them and fetch the return code:

object CheckCommand "powershell_check" {
  import "plugin-check-command"
  command = [ "C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe" ]
  arguments = {
    "-command" = {
    value = "$ps_command$"
    order = -1
    }
    "-warn" = {
    value = "$ps_warn$"
    }
    "-crit" = {
    value = "$ps_crit$"
    }
    ";exit" = {
    value = "$$LastExitCode"
    }
  }
}

Unfortunately this was declared as wontfix: https://github.com/Icinga/icinga2/issues/7430

That being said I have to really think about how to monitor Windows servers with Icinga 2 in the future when the C/C++ Windows plugins are removed.

Nonetheless, besides all the criticism I really appreciate the development on the whole and would like to find a way around this. Maybe I also missing a whole point here, so I am generally open for discussion.

Cheers
Michael

2 Likes

Awesome Dashing or the Default Dashboard

Thank you for last week’s FeedbackWeek!
We’re busy counting your votes, relaying you input to the developers and contacting the community heroes.
But feel free to add any more feedback you have in this thread!

A blogpost with the summed up results will come online next week, so stay tuned!