Monitor Certificate Expiration Status

AP.F5.LTM.Monitor.Certificate.Expiration.Status (UnitMonitor)

Monitors Certificate Expiration

Knowledge Base article:

Summary

Monitors F5 Certificate Expiration, simply uses the Expiration Days value that is collected during Discovery, so make sure Discovery is run at least once a day!

Thresholds

Element properties:

TargetAP.F5.LTM.Certificate
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeAP.F5.LTM.DataSource.Monitor.CertificateExpiration
RemotableTrue
AccessibilityPublic
Alert Message
F5 Certificate Expiration Alert
Certificate {0} on {1}, will expire in {2} Days!

Values;
Certificate Name : {0},
Sync-FailoverGroup : {1},
Expiration Days : {2} (If this is a negative Number then Certificate has already expired)
RunAsDefault

Source Code:

<UnitMonitor ID="AP.F5.LTM.Monitor.Certificate.Expiration.Status" Accessibility="Public" Enabled="true" Target="AP.F5.LTM.Certificate" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="AP.F5.LTM.DataSource.Monitor.CertificateExpiration" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="AP.F5.LTM.Monitor.Certificate.Expiration.Status.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="AP.F5.LTM.Certificate"]/Name$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="AP.F5.LTM.SyncFailoverGroup"]/Name$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="AP.F5.LTM.Certificate"]/ExpirationDays$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ExpirationCritical" MonitorTypeStateID="ExpirationCritical" HealthState="Error"/>
<OperationalState ID="ExpirationOkay" MonitorTypeStateID="ExpirationOkay" HealthState="Success"/>
<OperationalState ID="ExpirationWarning" MonitorTypeStateID="ExpirationWarning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>3600</IntervalSeconds>
<SyncTime/>
<OkayThreshold>90</OkayThreshold>
<CriticalThreshold>30</CriticalThreshold>
</Configuration>
</UnitMonitor>