首先是补图:
1、之前的代码中有定义自己的搜索类,这部分的可以在对应的SCOM2007R2的创作中找到,在细节中我们可以清晰的看到所定义的属性结构:
2009-09-07_00411
2、导入包之后可以查看的包的信息如下图:
2009-09-07_00405 
3、建议的编译目录规划,”MpPack”用来放置编译好的Mp包;”Source”用来放Xml原文件;“Mp”目录放置在D盘的根目录,用于放置需要调用的MP包(图中无显示);“MPPack.bat”为编译批处理;“sn.exe”是用来生成Key的;”out.snk”是用于加密的key文件;“MPResources.resources”为编译时生成的资源文件:
2009-09-07_00401
==========================================================================
今天的部分,监控器的已定义:
前文有说过监控器的定义需要在 <Monitoring>节点下的 <Monitors>子节点中,如图:
2009-09-08_00418
这里我们定义两个监控单元,一个聚合监控器,另一个是单元监控器,他们是从属关系,单元监控器包含在聚合监控器中,代码部分如下:
          <!--
            聚合监视器
          -->
          <AggregateMonitor ID="Sxt.Services.Pack.SxtService.ServiceRollupMonitor" Accessibility="Internal" Enabled="true" Target="Sxt.Services.Pack.SxtService" ParentMonitorID="SystemHealth!System.Health.AvailabilityState">
          <Category>AvailabilityHealth</Category>
          <Algorithm>WorstOf</Algorithm>
          </AggregateMonitor>
聚合监控器,这里定义的类型为 AvailabilityHealth,健康健康类型,同时在 <Algorithm>节点中定义“ WorstOf”,这表示,聚合监视器下的任意一个单元监视器的健康状态为严重告警,则聚合监控器也会表现为严重告警。
          <!--
            SpoolerService监控单元
          -->
          <UnitMonitor ID="Sxt.Services.Pack.SxtService.SpoolerServiceMonitor" Accessibility="Internal" Enabled="true" Target="Sxt.Services.Pack.SxtService" ParentMonitorID="Sxt.Services.Pack.SxtService.ServiceRollupMonitor" TypeID="Windows!Microsoft.Windows.CheckNTServiceStateMonitorType" ConfirmDelivery="false">
        <Category>AvailabilityHealth</Category>
        <AlertSettings>
          <AlertOnState>Error</AlertOnState>
          <AutoResolve>true</AutoResolve>
          <AlertPriority>Normal</AlertPriority>
          <AlertSeverity>MatchMonitorHealth</AlertSeverity>
        </AlertSettings>
        <OperationalStates>
          <OperationalState ID="Running" MonitorTypeStateID="Running" HealthState="Success"/>
          <OperationalState ID="NotRunning" MonitorTypeStateID="NotRunning" HealthState="Error"/>
        </OperationalStates>
        <Configuration>
          <ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
          <ServiceName>spooler</ServiceName>
        </Configuration>
          </UnitMonitor>
单元监控器:
重点一:监控器的类型,这里我定义的是对NtService的监控( TypeID="Windows!Microsoft.Windows.CheckNTServiceStateMonitorType" ),这里也可以根据自己的需要自己定义类型来监控,以后在高级教程部分会涉及。
重点二:配置节点( <Configuration>)部分,包含两个值的输入,一个是计算机名,另一个你所需要监控的服务名称,我这里定义的是“ spooler
在Mp包导入之后我们可以找到面一些信息:
2009-09-07_00407
2009-09-07_00408
==================================================================================
Ps:明天讲展现以及对整理代码的说明,并放出完整代码。