This monitor is solely for the purpose of promoting a service's up/down state from Yellow to Green. Yellow can happen when the service is Passive or when the service startup mode is marked as Disabled. To avoid rolling up Yellow in the diagram view, this helper was constructed. A limitation in SCOM prevents the cluster-aware monitor from having 2 Green states in a 3-state monitor. To work around this, we must do a Best Of aggregate monitor using the cluster-aware up/down monitor + this helper monitor.
This monitor is a helper only, assisting the cluster-aware service up/down monitor. It is solely for the purpose of promoting a Passive node's Yellow state to a Green state, or promoting a Disabled service's Yellow state to a Green state.
The state of this helper monitor may be ignored, but do not disable it.
This helper monitor works in tandem with the 'Windows service is running (node level, cluster aware)' monitor. Do not disable this helper monitor.
Technical Details:
When the 'Windows service is running (node level, cluster aware)' monitor is running/green, this helper monitor is intentionally yellow.
When the 'Windows service is running (node level, cluster aware)' monitor is stopped/red, this helper monitor is intentionally red.
When the 'Windows service is running (node level, cluster aware)' monitor is yellow/passive or disabled (up/down state ignored), this helper monitor is intentionally green.
By taking the Best result from the service up/down state, and this helper's state, we achieve the desired aggregate results: (and Yellow Passive is promoted to Green)
Service Up/Down=Green, Helper=Yellow, Best Of Aggregate=Green
Service Up/Down=Red, Helper=Red, Best Of Aggregate=Red
Service Up/Down=Yellow, Helper=Green, Best Of Aggregate=Green
Target | Microsoft.Amalga.UIS.2009.WindowsServiceNode |
Parent Monitor | Microsoft.Amalga.UIS.2009.Monitoring.ActiveNodeAggregate |
Category | Custom |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | True |
Monitor Type | Microsoft.Amalga.Library.ServiceRunning.MonitorType |
Remotable | True |
Accessibility | Public |
RunAs | Microsoft.Amalga.Library.Monitoring.RunAsAccount |
<UnitMonitor ID="Microsoft.Amalga.UIS.2009.Monitoring.ServiceUpMonitorActiveHelper" Accessibility="Public" Enabled="onEssentialMonitoring" Target="Amalga2009Discovery!Microsoft.Amalga.UIS.2009.WindowsServiceNode" ParentMonitorID="Microsoft.Amalga.UIS.2009.Monitoring.ActiveNodeAggregate" Remotable="true" Priority="Normal" RunAs="AmalgaLib!Microsoft.Amalga.Library.Monitoring.RunAsAccount" TypeID="AmalgaLib!Microsoft.Amalga.Library.ServiceRunning.MonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId7e321761382b4d0a86838a710f2a4f35" MonitorTypeStateID="Running" HealthState="Warning"/>
<OperationalState ID="UIGeneratedOpStateId1143169e9bc84a159cf3a0e14005a3d4" MonitorTypeStateID="NotRunning" HealthState="Error"/>
<OperationalState ID="UIGeneratedOpStateId2949fd50208b48aebd0662583bb6e96d" MonitorTypeStateID="PassiveNodeInactive" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>60</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>45</TimeoutSeconds>
<ComputerName>$Target/Property[Type="AmalgaLib!Microsoft.Amalga.Library.AmalgaWindowsServiceNode"]/VIPName$</ComputerName>
<ServiceName>$Target/Property[Type="AmalgaLib!Microsoft.Amalga.Library.AmalgaWindowsServiceNode"]/ServiceInstanceName$</ServiceName>
</Configuration>
</UnitMonitor>