ManagementPack可以看作是扩展SCOM功能的扩展包,导入相应的MP就能监控需要监控东西,例如Windows,SQL,Exchange,Linux,AIX,Routers之类的。
实质上SCOM离不开MP,产品本身只创建了MP运行平台,是MP才让SCOM有了强势的监控功能。
那么下面仔细的讲解一下ManagementPack:
1. MP是一个容器:前面的博文SCOM工作概念介绍里面讲解过了,SCOM的一些基础概念有MonitoringClass, MonitoringObject, Monitor, Rule之类的都是我们自己定义的,为了迁移及管理方便,SCOM一如了MP的概念,我们定义的一些Class,Workflow可以放在一个MP里面,这个MP可以被导入导出。用户根据实际情况选择应用哪些MP,有很大的灵活性。
就像我们的一个DLL一样,里面可以包含Class及Class的方法。MP里面可以定义监控对象类及怎样去监控。
2. MP可以签名封装:MP存在格式有两种,一种是.xml格式的,明文定义的,另外一种是签名封装过的.mp格式,不能再更改,但可以被引用。MP签名封装可以用安装盘下面的SupportTools\MPSeal.exe,封装是需要提供一个key文件及Company名字,用sn.exe可以产生key文件。
3. MP可以相互引用:这个功能使得MP看起来更像是DLL,一个MP里面定义过的概念,另一个MP没不要重复定义,只需要引用第一个MP就可以了。就像我们写程序一样,没必要重复写代码,需要的话相互引用就行了,未经签名封装的MP不能被引用,但是使用时必须保证引用的MP已经导入。
下面给一个简单的MP代码段:
<ManagementPack xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Manifest>
<Identity>
<!--MP的ID,不能有空格,和一般的文件名格式差不多。
文件名必须是{MPID}.xml,这个ID决定了文件名必须是Microsoft.Mom.Samples.xml或者Microsoft.Mom.Samples.mp,
否则倒入时会报错。-->
<ID>Microsoft.SCOM.SampleMP</ID>
<Version>1.0.0.0</Version>
</Identity>
<!--MP 显示出来的名字,这个可以随意点。-->
<Name>Sample Management Pack</Name>
<References>
<!--下面加入需要引用的MP信息,可以加多个引用。-->
<Reference Alias="System">
<ID>System.Library</ID>
<Version>6.0.5000.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Performance">
<ID>System.Performance.Library</ID>
<Version>6.0.5000.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<!--下面给出结构,不详细讲了,以后具体讲的时候再贴具体的代码。-->
<TypeDefinitions>
<EntityTypes>
<ClassTypes></ClassTypes>
<RelationshipTypes></RelationshipTypes>
</EntityTypes>
<ModuleTypes></ModuleTypes>
<MonitorTypes></MonitorTypes>
</TypeDefinitions>
<Monitoring>
<Discoverys></Discoverys>
<Rules></Rules>
<Tasks></Tasks>
<Monitors></Monitors>
<Overrides></Overrides>
</Monitoring>
</ManagementPack>