Make your MonitoringObject Highly Available: (SCOM 2012 Resource Pool)

Since SCOM 2012 beta released, and a key feature is make everything Highly Available:

1.       Make SCOM itself Highly Available. By remove RMS and make MS works peer to peer, unless all MS shutdown your SCOM still works.

2.       Make Monitoring Highly Available. By add new concept Resource Pool, make remote monitoring highly Available.

Remote Monitoring is you specify a SCOM Agent monitoring a Device or WebSite that doesn’t depend on this Agent. In SCOM 2007 if the Agent shutdown, your MonitoringObject is not reachable by SCOM.

 

Now SCOM 2012 bring this new feature: Resource Pool, Resource pool contains Members, Observers, Member and Observer must be HealthService. If the MonitoringObject running in the pool, unless all pool member shutdown, your MonitoringObject is reachable by SCOM. Kind of like the Failover Cluster.

 

Pool Member provides monitoring service, all MonitoringObject actually running on the Members, Resource Pool also balance work load between Members.

 

Pool Observer works if the Pool has less than 3 Members, Observer votes in the failover, vote which member is alive. Recommend use default Observer.

 

Now you may want know how to implement this, all you need to do is insert Manages relationship between Pool and your MonitoringObject.

Note: if your MonitoringObject inherit from System.Device, this won’t works, you need find some other way.

Code:

      <Discovery ID=MonitoringObjectManagesByPool.DiscoveryEnabled=trueTarget=SC!Microsoft.SystemCenter.AllManagementServersResourcePoolConfirmDelivery=trueRemotable=truePriority=Normal>

 

        <Category>Discovery</Category>

 

        <DiscoveryTypes>

 

          <DiscoveryRelationship TypeID=SC!Microsoft.SystemCenter.ManagementActionPointShouldManageEntity />

 

        </DiscoveryTypes>

 

        <DataSource ID=GroupPopulatorTypeID=SC!Microsoft.SystemCenter.GroupPopulator>

 

          <RuleId>$MPElement$</RuleId>

 

          <GroupInstanceId>$Target/Id$</GroupInstanceId>

 

          <MembershipRules>

 

            <MembershipRule>

 

              <MonitoringClass>$MPElement[Name=”YourCompany.YourNamespace.YourMonitoringClass”]$</MonitoringClass>

 

              <RelationshipClass>$MPElement[Name=”SC!Microsoft.SystemCenter.ManagementActionPointShouldManageEntity”]$</RelationshipClass>

 

            </MembershipRule>

 

          </MembershipRules>

 

        </DataSource>

 

      </Discovery>

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.