Veeam VMware: Virtual SAN Health Alarm 'Witness host not found'

Veeam.Virt.Extensions.VMware.VSAN.VMCCR.VirtualSANHealthAlarmWitnesshostnotfound (UnitMonitor)

Knowledge Base article:

Summary

This monitor tracks the Virtual SAN Health Alarm 'Witness host not found'.

Causes

The purpose of the Witness host not found check is to ensure that the witness host is configured and can be accessed via network. If the check fails, this means that the vSAN stretched cluster has a configuration issue.

For more information on the Witness host not found check, see this VMware KB article.

Resolutions

For all hosts in the cluster, make sure that the unicast communication is consistently configured between data site hosts and the witness host. To do that, follow the instructions provided in this VMware KB article.

Verify that there are no connectivity issues in the network.

If the witness host is out of service and cannot run, remove the existing witness host and add a new one. To do that, follow the instructions provided in the VMware Virtual SAN Documentation.

For more information on troubleshooting Virtual SAN issues, see VMware Docs.

Use the Alerts View to see all current open issues for this object. Use the Events View to review any error and warning events for this object. Open a Performance View to see the performance metrics for this object and all contained objects. Open a Diagram View to analyze the relationships of this object to other components.

External

See the Help Center for more information including reference lists of all Rules and Monitors and full set of User Guides for the Veeam MP for VMware.

See the VMware Online Documentation for more information on VMware vSphere, in particular:

Element properties:

TargetVeeam.Virt.Extensions.VMware.VMCCR
Parent MonitorSystem.Health.ConfigurationState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.3SingleEventLog3StateUnitMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Veeam VMware: Virtual SAN Health Alarm 'Witness host not found'
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Veeam.Virt.Extensions.VMware.VSAN.VMCCR.VirtualSANHealthAlarmWitnesshostnotfound" Accessibility="Public" Enabled="onEssentialMonitoring" Target="VeeamVEVMwareLib!Veeam.Virt.Extensions.VMware.VMCCR" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.3SingleEventLog3StateUnitMonitorType" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Veeam.Virt.Extensions.VMware.VSAN.VMCCR.VirtualSANHealthAlarmWitnesshostnotfound_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Params/Param[11]$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Warning"/>
<OperationalState ID="ThirdEventRaised" MonitorTypeStateID="ThirdEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>.</FirstComputerName>
<FirstLogName>Veeam VMware</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">AlarmStatusChangedEvent</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[11]</XPathQuery>
</ValueExpression>
<Operator>MatchesWildcard</Operator>
<Pattern>Alarm*SAN Health Alarm *Witness host not found*to red*</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[3]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="System!System.Entity"]/DisplayName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>.</SecondComputerName>
<SecondLogName>Veeam VMware</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">AlarmStatusChangedEvent</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[11]</XPathQuery>
</ValueExpression>
<Operator>MatchesWildcard</Operator>
<Pattern>Alarm*SAN Health Alarm *Witness host not found*to yellow*</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[3]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="System!System.Entity"]/DisplayName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
<ThirdComputerName>.</ThirdComputerName>
<ThirdLogName>Veeam VMware</ThirdLogName>
<ThirdExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">AlarmStatusChangedEvent</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[11]</XPathQuery>
</ValueExpression>
<Operator>MatchesWildcard</Operator>
<Pattern>Alarm*SAN Health Alarm *Witness host not found*to green*</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[3]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="System!System.Entity"]/DisplayName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</ThirdExpression>
</Configuration>
</UnitMonitor>