Exchange 2013: High Availability - When Maintenance Might Be Necessary

During the course of your on-premises environment, it may become necessary to take a production Exchange server out of rotation and perform maintenance on it (i.e.: replace memory, patching, reconfiguration, etc.). During this time, it will become necessary to prevent RemoteMonitoring from testing against the server you need to repair.

To understand this, we need to cover High Availability (HA) differences in Exchange 2013. Any Health Set that falls under 'Global Monitoring' has probes, monitors, and responders that are initialized at run-time on all Exchange 2013 servers in the organization. Any Health Set that falls under 'Server Monitoring' has static probes, monitors, and responders that are created locally on the server, only. Remote Monitoring falls under 'Server Monitoring' and has probes that test against other Exchange servers within the organization:

Get-ServerHealth -Server E15MBX -HealthSet RemoteMonitoring | FT -AutoSize

Server State Name TargetResource HealthSetName AlertValue ServerComponent
------ ----- ---- -------------- ------------- ---------- ---------------
E15MBX NotApplicable HealthManagerObserverMonitor Persephone.contoso.com RemoteMonitoring Healthy None

If you need to disable this probe while you're performing maintenance on a server, so an escalation isn't created, you can create a local server monitoring override for this purpose.

To do so, you're going to need the Identity of the probe. You can perform the following command to find information regarding the probe:

Get-MonitoringItemIdentity -Server E15MBX -Identity RemoteMonitoring | Where{$_.ItemType -contains 'Probe'}

RunspaceId : b475c539-d2ba-4a28-9ad2-5cf0a18024ce
Server : E15MBX
HealthSetName : RemoteMonitoring
Name : HealthManagerObserverProbe
TargetResource : Persephone.contoso.com
ItemType : Probe
Identity : RemoteMonitoring\HealthManagerObserverProbe\Persephone.contoso.com
IsValid : True
ObjectState : New

Once we've found the information regarding the probe, we can commence to setting the necessary override. To do so, we'll use the following command:

Add-ServerMonitoringOverride -Server E15MBX -Identity 'RemoteMonitoring\HealthManagerObserverProbe\Persephone.contoso.com' -ItemType Probe -PropertyName Enabled -PropertyValue 0 -Duration 60.00:00:00 -Confirm:$FALSE

The 'PropertyValue' is, typically, a bitwise flag; meaning that '0' is off and '1' is on. The 'ItemType' can be either a Probe, a Monitor, or a Responder. The 'Duration' must be 60 days or less.

 

To confirm the override has been set, we can check:

Get-ServerMonitoringOverride -Server E15MBX | FT -AutoSize

Identity ItemType PropertyName PropertyValue
-------- -------- ------------ -------------
RemoteMonitoring\HealthManagerObserverProbe\Persephone.contoso.com Probe Enabled 0

We can also verify when the expiration time is:

(Get-ServerMonitoringOverride -Server E15MBX | Where{$_.Identity -ilike 'RemoteMonitoring\HealthManagerObserverProbe\Persephone.contoso.com'}).ExpirationTime
9/15/2013 1:29:59 PM

We can remove the override just as easily as we have set it:

Remove-ServerMonitoringOverride -Server E15MBX -Identity 'RemoteMonitoring\HealthManagerObserverProbe\Persephone.contoso.com' -ItemType Probe -PropertyName Enabled -Confirm:$FALSE

And just like that, Exchange 2013 is regularly testing against the remote server, again.

More information about Adding a Server Monitoring Override can be found here.