1、之前的代码中有定义自己的搜索类,这部分的可以在对应的SCOM2007R2的创作中找到,在细节中我们可以清晰的看到所定义的属性结构:

2、导入包之后可以查看的包的信息如下图:

3、建议的编译目录规划,”MpPack”用来放置编译好的Mp包;”Source”用来放Xml原文件;“Mp”目录放置在D盘的根目录,用于放置需要调用的MP包(图中无显示);“MPPack.bat”为编译批处理;“sn.exe”是用来生成Key的;”out.snk”是用于加密的key文件;“MPResources.resources”为编译时生成的资源文件:

前文有说过监控器的定义需要在<Monitoring>节点下的<Monitors>子节点中,如图:

这里我们定义两个监控单元,一个聚合监控器,另一个是单元监控器,他们是从属关系,单元监控器包含在聚合监控器中,代码部分如下:
<!--
聚合监视器
-->
<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包导入之后我们可以找到面一些信息:


Ps:明天讲展现以及对整理代码的说明,并放出完整代码。