We have a number of “bespoke/3rd party” none cluster aware applications that require monitoring. Is there anything out in the wild that can provide this functionality, or can anyone shed any light on how to create such a thing in MP Author?
Example of what is required:
- 2 Node Cluster - Windows Server but NOT using Microsoft Fail-over Cluster
- Application installed on both nodes and runs as multiple Windows Services
- Services are only running on the "active" node
- Uses a 3rd party fail-over toolset.
If we create a basic service monitor this results in the "passive" node alerting due to the service(s) not running and effecting the health state of the server.
The same goes for a bespoke MP created in MP Author/VSAE, using “IsVirtualNode” doesnt work here as its not seen as a traditional cluster with a virtual cluster name discovered.
I would leverage powershell for this instead of the traditional service monitor.
Then you use get-service -computername to both the active and the passive node. Then use an if statement to validate if at least one of the two is running. The only thing you will be lacking over a service monitor is the the performance metrics. But you can add those in the powershell script as well, that will require you to query WMI most likely.
You could define the failovernode as a parameter in your script, and then use it as override in the monitor. That would make it a bit more dynamic. If you have need for more than one failover node you could use a comma separated list as parameter and parse it in powershell.
Make sure the workflow is set to remoteable = true as well. You might also need to define a runas profile in your management pack for that so that you can remotely powershell to the machine.
The side effect of course is that you do not have a healthstate for a single cluster object, but you can easily mimmick that with a group and a health rollup.