# (Large) Windows environment - Which kind of check plugins do you use?

**URL:** <https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349>\
**Category:** Service Monitoring\
**Tags:** powershell-framework, nscp, windows-agent\
**Created:** [September 30, 2021, 10:20am UTC](https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349 "2021-09-30T10:20:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![git-kick](https://community.icinga.com/user_avatar/community.icinga.com/git-kick/32/4707_2.png) [@git-kick](https://community.icinga.com/u/git-kick)\
**Post date:** [September 30, 2021, 10:20am UTC](https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349/1 "2021-09-30T10:20:32Z")

</div>

Hello all,

I am aware of several discussions about CPU load caused by _Icinga PowerShell Plugins_ (Invoke-IcingaCheck…), but still I am wondering how everybody out ther is dealing with the current situation.

I know about three main options to check on Windows:

1. _Windows Plugins for Icinga 2_ - these are [deprecated](https://icinga.com/docs/icinga-2/latest/doc/10-icinga-template-library/#windows-plugins-for-icinga-2)
2. _NSClient++_ - the [latest stable release](http://nsclient.org/download/0.5.2/#0.5.2.39) is 3 years ago
3. _Icinga PowerShell Plugins_ - currently have severe load impact on smaller machines

Looking closer at the load aspect, we did some measuring on a 1-core, 2 GB RAM Windows VM and found (in a steady state with default settings, checking load, memory, and disks):

- no significant overhead with _Windows plugins for Icinga 2_
- less than 1% additional CPU load with _NSClient++_ (nscp-local)
- ca. **15% additional CPU load** with _Icinga PowerShell Plugins_ (v1.6.0 - earlier versions created significantly more load)

Having this, option 3. is a no-go for us especially on smaller webservers.  
As 1. is deprecated and 2. is not maintained for a longer timeframe, **how do you deal with this situation in your (large) Windows environment?**

Did we miss something in our project? I am eager to read about your opinion & experience!

Thanks, Uli

---

<div class="post-metadata">

**Author:** ![dgoetz](https://community.icinga.com/user_avatar/community.icinga.com/dgoetz/32/917_2.png) [@dgoetz](https://community.icinga.com/u/dgoetz)\
**Post date:** [September 30, 2021, 10:42am UTC](https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349/2 "2021-09-30T10:42:56Z")

</div>

I have the same dilemma, opting for the future would be the new Icinga for Windows and hoping they can reduce the overhead further, but at the moment it is depending on the check to much.

An idea I was thinking about, but did not find time to test, was to convert the Powershell to Exe as there are tools for this and it should reduce the overhead for loading the code.

---

<div class="post-metadata">

**Author:** ![stevie-sy](https://community.icinga.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@stevie-sy](https://community.icinga.com/u/stevie-sy)\
**Post date:** [September 30, 2021, 11:45am UTC](https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349/3 "2021-09-30T11:45:43Z")

</div>

Hi,  
That the _Windows Plugins for Icinga 2_ are declared as deprecated, doesn’t mean that they doesn’t work anymore. 😉 . We are still using it and everything is fine. If we need check which still doesn’t exist there but in the _Icinga PowerShell Plugins_ we use it from here. That means, we are using a mix of them.

For the (near) future we are testing also the other check variants from the _Icinga PowerShell Plugins_. So if everything fits for uns, we could switch completly to the _Icinga PowerShell Plugins_.

---

<div class="post-metadata">

**Author:** ![git-kick](https://community.icinga.com/user_avatar/community.icinga.com/git-kick/32/4707_2.png) [@git-kick](https://community.icinga.com/u/git-kick)\
**Post date:** [September 30, 2021, 12:02pm UTC](https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349/4 "2021-09-30T12:02:47Z")

</div>

Thank you Dirk for sharing your view. I am also confident that _Icinga PowerShell Plugins_ is the way to go in future.  
Concerning “convert PowerShell to exe”, I would prefer to have the icingapowershell service include the code for checking. I think the root cause for the performance issues is that (at least on my machines) a new _powershell.exe_ process is started for every single check.  
But I am not really deep into the PowerShell Framework/Plugins code and I don’t think that it makes sense trying “alternative ways to use the PowerShell framework” - the Icinga PowerShell developer team would have told us if it was easy, wouldn’t they? 🙃  
What I am taking away is that at least the two of us do not know about a fourth, better option 😐

---

<div class="post-metadata">

**Author:** ![git-kick](https://community.icinga.com/user_avatar/community.icinga.com/git-kick/32/4707_2.png) [@git-kick](https://community.icinga.com/u/git-kick)\
**Post date:** [September 30, 2021, 12:06pm UTC](https://community.icinga.com/t/large-windows-environment-which-kind-of-check-plugins-do-you-use/8349/5 "2021-09-30T12:06:57Z")

</div>

Many thanks Stevie. Yes, we are also going for a “use both”, but we chose NSClient++ as the interim solution because it delivers timeframe mean values for cpu load.  
So we are already three of us, not aware of the fourth “golden option” 😅
