Archive

Archive for the ‘Overrides’ Category

Overrides

August 2, 2009 Leave a comment

Best Practice:
http://support.microsoft.com/default.aspx/kb/943239

Cory Delamatar from Microsoft gave this excellent explanation about overrides – “Yes, this is a Best Practice. Create a new MP to store overrides for each logical grouping of MP’s. So, if you Import the three SQL 2005 MP’s, I’d create a new MP called SQL 2005 Overrides. Any Overrides you create that are targeted at SQL 2005 types, you should store them in that overrides MP you created.

The reason for this is that every time you create and save an override, that changes the MP that you stored it in. If the MP contains overrides (or anything else really) that’s targeted at something that every agent has (Windows.Computer for example) then that MP is going to get re-downloaded to every agent that has at least 1 instance of that type. So, if you save an Override for a SQL Database and store it into the Default Management Pack, that’s going to cause every agent in your environment to request a new copy
of the Default Management Pack. Now, if you were to save that SQL Database override into an MP that only has SQL Server stuff it in, then only the SQL Server agents will request a copy of that MP.

Bottom line, lots of small and highly targeted MP’s are better than the
single monolithic Default MP with every override in it.”

A poster called Rule and Monitor Targeting Best Practices is available in pdf format at:
http://go.microsoft.com/fwlink/?LinkId=125048

Probably the easiest way to list overrides is via the Override Report (part of the generic reports library). Microsoft have a training video on how to do this here:
http://www.microsoft.com/winme/0712/31678/OverrideReports_300kbps.asx

You can also user powershell:
get-managementpack | get-override | format-list name,parameter,value

You can also see the overrides in the Authoring Pane on Operations Manager 2007 R2 although the scope only really works if the override is targetted at a specific class. If it is targetted at a group then only “group” is specified, not the actual group.

Kevin Holman also posted this on the technet forums if SQL is your preferred scripting solution:

select rv.DisplayName as WorkFlowName, OverrideName, mo.Value as OverrideValue,
mt.TypeName as OverrideScope, bme.DisplayName as InstanceName, bme.Path as InstancePath,
mpv.DisplayName as ORMPName, mo.LastModified as LastModified
from ModuleOverride mo
inner join managementpackview mpv on mpv.Id = mo.ManagementPackId
inner join ruleview rv on rv.Id = mo.ParentId
inner join ManagedType mt on mt.managedtypeid = mo.TypeContext
left join BaseManagedEntity bme on bme.BaseManagedEntityId = mo.InstanceContext
Where mpv.Sealed = 0
UNION ALL
select mv.DisplayName as WorkFlowName, OverrideName, mto.Value as OverrideValue,
mt.TypeName as OverrideScope, bme.DisplayName as InstanceName, bme.Path as InstancePath,
mpv.DisplayName as ORMPName, mto.LastModified as LastModified
from MonitorOverride mto
inner join managementpackview mpv on mpv.Id = mto.ManagementPackId
inner join monitorview mv on mv.Id = mto.MonitorId
inner join ManagedType mt on mt.managedtypeid = mto.TypeContext
left join BaseManagedEntity bme on bme.BaseManagedEntityId = mto.InstanceContext
Where mpv.Sealed = 0
Order By mpv.DisplayName


In the GUI, you can only set one override at a time but Boris has released a Bulk Override Tool into the wild:
http://blogs.msdn.com/boris_yanushpolsky/archive/2007/08/04/disabling-enabling-multiple-rules-monitors-discoveries-at-once.aspx