Monitors VirtualServer Availability State via SNMP and Powershell
Monitors F5 VirtualServer Availability State, Uses a Powershell Script and SNMP to collect all VirtualServer Availability States for a SyncFailoverGroup, Supports Cookdown!
Healthy : VirtualServer is Available (State 1)
Warning : Unknown or Temporarily unavailable (State 2 or 4)
Critical : Error, Unavailable or Unlicenced (State 0, 3 or 5)
SNMP OIDs Used;
.1.3.6.1.4.1.3375.2.2.10.13.2.1.1 - bigipTrafficMgmt.bigipLocalTM.ltmVirtualServers.ltmVirtualServStatus.ltmVsStatusTable.ltmVsStatusEntry.ltmVsStatusName
.1.3.6.1.4.1.3375.2.2.10.13.2.1.2 - bigipTrafficMgmt.bigipLocalTM.ltmVirtualServers.ltmVirtualServStatus.ltmVsStatusTable.ltmVsStatusEntry.ltmVsStatusAvailState
Target | AP.F5.LTM.VirtualServer | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | AP.F5.LTM.Monitor.VirtualServerAvailabilityState.Powershell | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="AP.F5.LTM.Monitor.VirtualServer.AvailabilityState" Accessibility="Public" Enabled="true" Target="AP.F5.LTM.VirtualServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="AP.F5.LTM.Monitor.VirtualServerAvailabilityState.Powershell" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="AP.F5.LTM.Monitor.VirtualServer.AvailabilityState.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="AP.F5.LTM.VirtualServer"]/Name$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="AP.F5.LTM.SyncFailoverGroup"]/Name$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='AvailabilityState']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DetailedReason']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="VirtualServerOkay" MonitorTypeStateID="VirtualServerOkay" HealthState="Success"/>
<OperationalState ID="VirtualServerWarning" MonitorTypeStateID="VirtualServerWarning" HealthState="Warning"/>
<OperationalState ID="VirtualServerCritical" MonitorTypeStateID="VirtualServerCritical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime>00:01</SyncTime>
<Debug>false</Debug>
<DeviceAddresses>$Target/Host/Host/Property[Type="AP.F5.LTM.SyncFailoverGroup"]/Addresses$</DeviceAddresses>
<DevicePorts>$Target/Host/Host/Property[Type="AP.F5.LTM.SyncFailoverGroup"]/Ports$</DevicePorts>
<DeviceCommunities>$Target/Host/Host/Property[Type="AP.F5.LTM.SyncFailoverGroup"]/Communities$</DeviceCommunities>
<VirtualServerName>$Target/Property[Type="AP.F5.LTM.VirtualServer"]/FullName$</VirtualServerName>
</Configuration>
</UnitMonitor>