Disk Space Monitor

Disk_space_problem.Monitor (UnitMonitor)

Knowledge Base article:

Summary

This rule runs a script which uses Windows Management Instrumentation (WMI) to determine the amount of remaining free disk space on logical volumes, and creates events when the disk space is running low.

The script omits checking a logical drive if it is an Installable File System (IFS) drive (namely, a drive which searches the Exchange database).

Resolutions

Individual alerts will be raised by associated alert rules detailing disk space problems that were encountered by this monitor.

Configuration

Interval (sec) – default is 1800 sec (30min)

Error % Free all drives - default 2%

Warning % Free all drives - default 5%

Error MB Free all drives - default 400MB

Warning MB Free all drives - default 1000MB

Error % on Queue drive - default 5%

Warning % on Queue drive - default 20%

Error MB on Queue drive - default 1000MB

Warning MB on Queue drive - default 5000MB

Error % on Log drive - default 5%

Warning % on Log drive - default 20%

Error MB on Log drive - default 1000MB

Warning MB on Log drive - default 5000MB

Use override to change these thresholds

Element properties:

TargetMicrosoft.Exchange.Databases
Parent MonitorSystem.Health.AvailabilityState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeDisk_space_problem.Monitortype
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Disk_space_problem.Monitor" Accessibility="Public" Enabled="onStandardMonitoring" Target="Exch2003Core!Microsoft.Exchange.Databases" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Disk_space_problem.Monitortype" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="CheckDiskFreeSpaceMonitorBOK" MonitorTypeStateID="CheckDiskFreeSpaceMonitorBOK" HealthState="Success"/>
<OperationalState ID="CheckDiskFreeSpaceMonitorWarn" MonitorTypeStateID="CheckDiskFreeSpaceMonitorWarn" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>1800</IntervalSeconds>
<TargetNetbiosComputer>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</TargetNetbiosComputer>
<PercentErrorAll>2</PercentErrorAll>
<PercentWarningAll>5</PercentWarningAll>
<MBErrorAll>400</MBErrorAll>
<MBWarningAll>1000</MBWarningAll>
<PercentErrorQueue>5</PercentErrorQueue>
<PercentWarningQueue>20</PercentWarningQueue>
<MBErrorQueue>1000</MBErrorQueue>
<MBWarningQueue>5000</MBWarningQueue>
<PercentErrorLog>5</PercentErrorLog>
<PercentWarningLog>20</PercentWarningLog>
<MBErrorLog>1000</MBErrorLog>
<MBWarningLog>5000</MBWarningLog>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>