Veeam VMware: Virtual SAN Health Alarm 'Software state health'

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

Knowledge Base article:

Summary

This monitor tracks the Virtual SAN Health Alarm 'Software State Health'.

Causes

The purpose of the Software State Health check is to verify whether the vSAN cluster has software issues that prevent it from using the physical disk.

For more information on the Physical Disk Health - Software State Health check, see this VMware KB article.

Resolutions

Check the amount of memory available on each ESXi host in the cluster. If memory consumption is too high, this could be the reason of the health check failure. In this case, try adding more memory to the affected host. For more information on checking ESXi host memory usage, see this VMware KB article.

For all other possible causes of the health check failure, VMware recommends that you contact VMware Support.

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 'Software state health'
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Veeam.Virt.Extensions.VMware.VSAN.VMCCR.VirtualSANHealthAlarmSoftwarestatehealth" 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.VirtualSANHealthAlarmSoftwarestatehealth_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 *Software state health*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 *Software state health*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 *Software state health*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>