Monday, December 15, 2014

Create a Group containing all Computers hosting an Application

This sample is using SQL Server even if there is already a group (SQL Computers) available when importing the SQL MPs.

There is a link to the gallery if you’d like to download the sample MP at the bottom of this post.

Create a MP with a Group that contains all classes involved

This task is just in case that you’re not so familiar in how to find the proper class ID.

Create a new Group within a (new) MP:

clip_image002

Select all classes involved (here Windows Computers and SQL Engines):

clip_image004

The formula now looks like the following one and would show all Windows Computers and all SQL Engines what is not the target of this task:

clip_image006

Export MP and edit the MP (for instance using Notepad++).

Increase the MP Version

The next step is increase the version number to allow importing it again in your Management Group:

<Manifest>
<Identity>
<ID>Custom.Groups.Management.Pack</ID>
<Version>1.0.0.1</Version>
</Identity>

Optional: set default language

Move down to LanguagePacks.
Change isDefault to true for the language you’d like to use by default:

<LanguagePack ID="ENU" IsDefault="false">
should become
<LanguagePack ID="ENU" IsDefault="true">

Remove other languages if not needed.

Optional: cleanup the automatically created IDs

Search and replace the automatically generated IDs by something more readable, for instance:

Folder_2caa4b7e281c435b841a54dd143e8fdd
should become
Custom.Groups.Management.Pack.Folder

UINameSpace53f2e808dba448bab7f3f717cc8b2d4f
should become
Custom.Groups.Management.Pack.WindowsHostingSql

Change the Group Calculation to include all SQL Servers

To change the group calculation just add the green marked lines, copy and paste the yellow marked class from the red section to the green one and remove the red marked ones:

<DataSource ID="GroupPopulationDataSource" TypeID="SystemCenter!Microsoft.SystemCenter.GroupPopulator">
    <RuleId>$MPElement$</RuleId>
    <GroupInstanceId>$MPElement[Name="Custom.Groups.Management.Pack.WindowsHostingSql.Group"]$</GroupInstanceId>
    <MembershipRules>
        <MembershipRule>
            <MonitoringClass>$MPElement[Name="MicrosoftWindowsLibrary7585010!Microsoft.Windows.Computer"]$</MonitoringClass>
            <RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
            <Expression>
                <Contains>
                    <MonitoringClass>$MPElement[Name="MicrosoftSQLServerLibrary6510!Microsoft.SQLServer.DBEngine"]$</MonitoringClass>
                </Contains>
            </Expression>
        </MembershipRule>
        <MembershipRule>
            <MonitoringClass>$MPElement[Name="MicrosoftSQLServerLibrary6510!Microsoft.SQLServer.DBEngine"]$</MonitoringClass>
            <RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary7585010!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
        </MembershipRule>
    </MembershipRules>
</DataSource>

Import the MP in SCOM

Save the XML and import it into SCOM

Check the Group

Under Authoring, Groups, search for the group and right-click to show all members:

clip_image010

The view should contain all computers hosting SQL monitored by your SCOM.

Download

The sample MP from above can be found here: https://gallery.technet.microsoft.com/Sample-MP-for-Group-of-26dce52c

All information is provided "as is" without any warranty! Try in lab before. Handle with care in production.

0 Comments:

Post a Comment