Operating System upgrade monitor
A Windows Update patch for Network Controller has not been installed on some of the Network Controller nodes. Unless all the nodes have the patch, the patch will not be applied.
Network Controller maintains two versions of binaries, installed version and running version. When a patch is installed, the installed version of binary is updated. But the running version of binary is updated only when the patch is installed on all the nodes. Till the running version is updated, Network Controller will run on the old code.
Ensure that all the Network Controller nodes have applied the same set of Windows Update patches.
© 2016 Microsoft Corporation, all rights reserved
Target | SDNMonitoringMP.SDNMonitoring.NetworkControllerClusterNode |
Parent Monitor | System.Health.AvailabilityState |
Category | AvailabilityHealth |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | True |
Monitor Type | Microsoft.Windows.2SingleEventLog2StateMonitorType |
Remotable | True |
Accessibility | Public |
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.10.SDNMonitoring.OsUpgradeMonitor" Accessibility="Public" Enabled="true" Target="SDNMonitoringMP.SDNMonitoring.NetworkControllerClusterNode" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<!-- Computer name for the first event. We will use a variable to get the target computer name. -->
<FirstComputerName>$Target/Property[Type="SDNMonitoringMP.SDNMonitoring.NetworkControllerClusterNode"]/Id$</FirstComputerName>
<!-- Name of the log containing the first event. -->
<FirstLogName>Microsoft-Windows-NetworkController-Update/Admin</FirstLogName>
<!-- Expression for the first event -->
<FirstExpression>
<And>
<!-- Expression for the first event number -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">282</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<!-- Expression for the first event source -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-NetworkController-Update</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="SDNMonitoringMP.SDNMonitoring.NetworkControllerClusterNode"]/Id$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</FirstExpression>
<!-- Computer name for the second event. We will use a variable to get the target computer name. -->
<SecondComputerName>$Target/Property[Type="SDNMonitoringMP.SDNMonitoring.NetworkControllerClusterNode"]/Id$</SecondComputerName>
<!-- Name of the log containing the first event. -->
<SecondLogName>Microsoft-Windows-NetworkController-Update/Operational</SecondLogName>
<!-- Expression for the second event -->
<SecondExpression>
<And>
<!-- Expression for the second event number -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">284</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<!-- Expression for the second event source -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-NetworkController-Update</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>