We have been tracking a problem with some of our Operations Manager Server 2008 R2 agents. We have a pool of single CPU VMs that have been reporting “Operations Manager Agent CPU too high” alerts every ten hours or so (give or take a few hours). Unfortunately, I am not able to catch the agents while the CPU spike is taking place. Maybe I could set up a “Data Collector Set” to gather lots of process information when a CPU spike condition occurs, but I am feeling lazy and don’t want to do it.
So instead, I am taking a different approach… disabling non-essential discoveries to see if this lightens the load on the agents enough to stop the CPU spikes. I thought I knew how to do this already, but my fist pass failed, and I had to learn something new (gasp!). My thanks to Jonathan Almquist for his post on this subject:
Without that one, I would still be foundering.
I our case, I wanted to suppress discovery of System Center Configuration Manager 2007 Clients in the SCCM 2007 Management Pack. To accomplish this, we need to identify the pertinent discovery rules, create a group that contains the agents that we want to exclude from discovery, then override the discovery for this new group. We then can speed cleanup of the now obsolete discovered objects using the PowerShell “remove-disabledMonitoringObject” cmdlet.
- Go to the OpsMgr console, change to the the Authoring->Management Pack Objects->Object Discoveries view. Use the “change scope” option to limit the displayed discovery rules to only those in the Configuration Manager management packs. In this instance, we see there are rules for “Microsoft ConfigMgr 2007 Clients Discovery” and “Microsoft ConfigMgr 2007 Advanced Client Discovery”. I will disable discovery for both of these. Before moving on, take careful note of the “target” column. In this case the target is “MOM 2005 Backward Compatibility Computer”, not “Windows Computer”, as you might expect.
- Change to the Authoring->Groups view. Create a group that includes only objects of the type you identified in the first step. I used dynamic inclusion rules to add all entities that do not match the naming convention of our Configuration Manager servers.
- Now go back to the Object Discoveries view, find the rules you want to override again, and add an override for objects in your new group.
- You could wait a few discovery cycles for the discovered entities to go away, or just pop into the OpsMgr PowerShell console, and run “remove-DisabledMonitoringObject”. If you did your override rules properly, your undesirable objects should disappear right away.
I now have removed discovery and monitoring of the SCCM Client on all of the Windows Servers in my monitored environment. We now shall see if this makes the OpsMgr Agent CPU utilization alerts go away.