NLB node status

Microsoft.Windows.NetworkLoadBalancing.NodeStatus (UnitMonitor)

Knowledge Base article:

Summary

This monitor looks at the membership status of the current node in the NLB cluster. If the node status is Converged which means that the node is participating in the cluster, the state of this monitor will be healthy. If the node status is anything except of Converged, the state of this monitor will be unhealthy. If the node is stopped, the monitor health state will be critical. If the node is suspended, draining, not properly configured, or converging, the monitor health state will be warning.

Causes

If this node is not part of the cluster, the monitor state will be unhealthy.

Resolutions

In order to resolve the problem, start the NLB node using the inline task provided below or using the Network Load Balancing Manager. If node status is Suspended, you need first resume the node and only then start the node.

Resume NLB node

Start NLB node

Configuration

You can override the Interval as well as the Timeout parameters of this monitor.

Element properties:

TargetMicrosoft.Windows.NetworkLoadBalancing.ServerRole
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.NetworkLoadBalancing.NodeStatusMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
NLB node is no longer part of the cluster
The {0} ({1}) node is no longer a member of the the {2} NLB cluster. Please see alert context for the actual status of this node.
RunAsMicrosoft.Windows.NetworkLoadBalancing.PrivilegedAccount

Source Code:

<UnitMonitor ID="Microsoft.Windows.NetworkLoadBalancing.NodeStatus" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.NetworkLoadBalancing.ServerRole" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RunAs="Microsoft.Windows.NetworkLoadBalancing.PrivilegedAccount" TypeID="Microsoft.Windows.NetworkLoadBalancing.NodeStatusMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.NetworkLoadBalancing.NodeStatus.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.Windows.NetworkLoadBalancing.ServerRole"]/NodeName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Microsoft.Windows.NetworkLoadBalancing.ServerRole"]/ClusterIP$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Stopped" MonitorTypeStateID="StoppedState" HealthState="Error"/>
<OperationalState ID="Suspended_Draining_Converging_Misconfigured_State" MonitorTypeStateID="Suspended_Draining_Converging_Misconfigured_State" HealthState="Warning"/>
<OperationalState ID="Converged" MonitorTypeStateID="ConvergedState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>180</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<NodeName>$Target/Property[Type="Microsoft.Windows.NetworkLoadBalancing.ServerRole"]/NodeName$</NodeName>
<ComputerPrincipalName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerPrincipalName>
</Configuration>
</UnitMonitor>