Cross Management Group Health State Monitoring

OpsMgr.Health.Sync.Library.HealthState.Sync.Template (Template)

This template allows the health state of a monitoring object located in another OpsMgr management group to be synchronized.

Source Code:

<Template ID="OpsMgr.Health.Sync.Library.HealthState.Sync.Template">
<Configuration>
<!--
<IncludeSchemaTypes>
<SchemaType>OpsMgr.Health.Sync.Library.Health.State.SchemaType</SchemaType>
</IncludeSchemaTypes>
-->
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Name" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Description" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ManagementServer" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SourceInstanceID" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="RunAsAccount" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TemplateIdString" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HealthStateWatcherID" type="xsd:string"/>
</Configuration>
<References>
<Reference ID="System"/>
<Reference ID="SC"/>
<Reference ID="Self"/>
</References>
<Implementation>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$" Accessibility="Internal" Abstract="false" Base="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher" Hosted="false" Singleton="false"/>
</ClassTypes>
</EntityTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="OpsMgr.Health.Sync.Library.HealthServiceWatcher.$TemplateConfig/TemplateIdString$.ManagedBy.AMSRP.Discovery" Enabled="true" Target="$Reference/SC$Microsoft.SystemCenter.AllManagementServersPool" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryRelationship TypeID="$Reference/SC$Microsoft.SystemCenter.ManagementActionPointShouldManageEntity"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="$Reference/SC$Microsoft.SystemCenter.GroupPopulator">
<RuleId>$MPElement$</RuleId>
<GroupInstanceId>$Target/Id$</GroupInstanceId>
<MembershipRules>
<MembershipRule>
<MonitoringClass>$MPElement[Name="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="$Reference/SC$Microsoft.SystemCenter.ManagementActionPointShouldManageEntity"]$</RelationshipClass>
</MembershipRule>
</MembershipRules>
</DataSource>
</Discovery>
<Discovery ID="OpsMgr.Health.Sync.Library.HealthState.Watcher.Initial.Discovery.$TemplateConfig/TemplateIdString$" Enabled="true" Target="$Reference/SC$Microsoft.SystemCenter.AllManagementServersPool" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"/>
<DiscoveryClass TypeID="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="$Reference/Self$OpsMgr.Health.Sync.Library.HealthState.Watcher.Initial.Discovery.DS">
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
<ClassId>$MPElement[Name="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/HealthStateWatcherID$</Name>
<Value>$TemplateConfig/HealthStateWatcherID$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/SourceManagementServer$</Name>
<Value>$TemplateConfig/ManagementServer$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/SourceMonitoringObjectID$</Name>
<Value>$TemplateConfig/SourceInstanceID$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="$Reference/System$System.Entity"]/DisplayName$</Name>
<Value>$TemplateConfig/Name$</Value>
</Setting>
</Settings>
</InstanceSettings>
</DataSource>
</Discovery>
<Discovery ID="OpsMgr.Health.Sync.Library.HealthState.Watcher.Properties.Discovery.$TemplateConfig/TemplateIdString$" Enabled="true" Target="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"/>
<DiscoveryClass TypeID="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$"/>
<DiscoveryRelationship TypeID="$Reference/SC$Microsoft.SystemCenter.ManagementActionPointShouldManageEntity"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="$Reference/Self$OpsMgr.Health.Sync.Library.HealthState.Watcher.Properties.Discovery.DS">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ClassId>$MPElement[Name="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$"]$</ClassId>
<ManagementServer>$TemplateConfig/ManagementServer$</ManagementServer>
<SourceInstanceID>$TemplateConfig/SourceInstanceID$</SourceInstanceID>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/HealthStateWatcherID$</Name>
<Value>$Target/Property[Type="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/HealthStateWatcherID$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/SourceMG$</Name>
<Value>$Data/Property[@Name='SourceMG']$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/SourceMonitoringClassName$</Name>
<Value>$Data/Property[@Name='SourceMonitoringClassName']$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher"]/SourceMonitoringObjectDisplayName$</Name>
<Value>$Data/Property[@Name='SourceMonitoringObjectDisplayName']$</Value>
</Setting>
</Settings>
</InstanceSettings>
<TimeoutSeconds>120</TimeoutSeconds>
</DataSource>
</Discovery>
</Discoveries>
<!--
<Discoveries>
<Discovery ID="OpsMgr.Health.Sync.Library.HealthState.Watcher.Discovery.$TemplateConfig/TemplateIdString$" Enabled="true" Target="$Reference/SC$Microsoft.SystemCenter.AllManagementServersPool">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="$Reference/Self$OpsMgr.Health.Sync.Library.Health.State.Watcher" />
</DiscoveryTypes>
<DataSource ID="DiscoveryDS" TypeID="$Reference/Self$OpsMgr.Health.Sync.Library.HealthState.Watcher.Discovery.DataSource">
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime />
<SourceId>$MPElement$</SourceId>
<ManagedEntityId>$Target/Id$</ManagedEntityId>
<ManagementServer>$TemplateConfig/ManagementServer$</ManagementServer>
<SourceInstanceID>$TemplateConfig/SourceInstanceID$</SourceInstanceID>
<TimeoutSeconds>120</TimeoutSeconds>
</DataSource>
</Discovery>
</Discoveries>
-->
<Overrides>
<SecureReferenceOverride ID="OpsMgr.Health.Sync.Library.RunAsProfile.Account.$TemplateConfig/TemplateIdString$.Override" Context="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$" Enforced="false" SecureReference="$Reference/Self$OpsMgr.Health.Sync.Library.Management.Group.Connection.RunAs">
<Value>$TemplateConfig/RunAsAccount$</Value>
</SecureReferenceOverride>
</Overrides>
</Monitoring>
<LanguagePacks>
<LanguagePack ID="ENU" IsDefault="true">
<DisplayStrings>
<DisplayString ElementID="OpsMgr.Health.Sync.Library.HealthState.Watcher.$TemplateConfig/TemplateIdString$">
<Name>Cross Management Group Health State Watcher: $TemplateConfig/Name$</Name>
<Description>$TemplateConfig/Description$</Description>
</DisplayString>
</DisplayStrings>
</LanguagePack>
</LanguagePacks>
</Implementation>
</Template>