代码之家  ›  专栏  ›  技术社区  ›  Alexander I.

SCOM中的运行状况没有变化

  •  1
  • Alexander I.  · 技术社区  · 7 年前

    我们的SCOM版本是 7.3.13142.0

    我们已经为scom集成开发了管理包。

    请查看管理包源代码:

    <?xml version="1.0" encoding="utf-8"?><ManagementPack ContentReadable="true" SchemaVersion="2.0" OriginalSchemaVersion="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <Manifest>
        <Identity>
          <ID>CloudMonix.ResourceMonitoring</ID>
          <Version>1.0.0.0</Version>
        </Identity>
        <Name>CloudMonix Resource Monitoring Pack</Name>
        <References>
          <Reference Alias="System">
            <ID>System.Library</ID>
            <Version>7.5.8501.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="Health">
            <ID>System.Health.Library</ID>
            <Version>7.0.8438.6</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SystemCenter">
            <ID>Microsoft.SystemCenter.Library</ID>
            <Version>7.0.8438.6</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
        </References>
      </Manifest>
      <TypeDefinitions>
        <EntityTypes>
          <ClassTypes>
            <ClassType ID="CloudMonix.ResourceMonitoring.Resource" Accessibility="Public" Abstract="false" Base="System!System.Entity" Hosted="false" Singleton="false" Extension="false">
              <Property ID="ResourceId" Type="string" AutoIncrement="false" Key="true" CaseSensitive="false" MaxLength="256" MinLength="1" Required="false" Scale="0" />
              <Property ID="ResourceType" Type="string" AutoIncrement="false" Key="false" CaseSensitive="false" MaxLength="256" MinLength="1" Required="false" Scale="0" />
              <Property ID="ResourceGroups" Type="string" AutoIncrement="false" Key="false" CaseSensitive="false" MaxLength="1024" MinLength="1" Required="false" Scale="0" />
            </ClassType>
          </ClassTypes>
        </EntityTypes>
        <ModuleTypes>
          <WriteActionModuleType ID="CloudMonix.ResourceMonitoring.SetStateAction" Accessibility="Internal" Batching="false">
            <Configuration>
              <IncludeSchemaTypes>
                <SchemaType>Health!System.Health.AlertSchema</SchemaType>
              </IncludeSchemaTypes>
              <xsd:element name="ManagementGroupId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="MonitorId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="ManagedEntityId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="HealthState" type="System.Health.AlertHealthState" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </Configuration>
            <ModuleImplementation Isolation="Any">
              <Native>
                <ClassID>44cbc334-8b5f-4cb6-bee0-6bdcbc80e8d5</ClassID>
              </Native>
            </ModuleImplementation>
            <InputType>System!System.BaseData</InputType>
          </WriteActionModuleType>
          <WriteActionModuleType ID="CloudMonix.ResourceMonitoring.TargetSetStateAction" Accessibility="Internal" Batching="false">
            <Configuration>
              <IncludeSchemaTypes>
                <SchemaType>Health!System.Health.AlertSchema</SchemaType>
              </IncludeSchemaTypes>
              <xsd:element name="MonitorId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="HealthState" type="System.Health.AlertHealthState" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </Configuration>
            <ModuleImplementation Isolation="Any">
              <Composite>
                <MemberModules>
                  <WriteAction ID="WA" TypeID="CloudMonix.ResourceMonitoring.SetStateAction">
                    <ManagementGroupId>$Target/ManagementGroup/Id$</ManagementGroupId>
                    <MonitorId>$Config/MonitorId$</MonitorId>
                    <ManagedEntityId>$Data/ManagedEntityId$</ManagedEntityId>
                    <HealthState>$Config/HealthState$</HealthState>
                  </WriteAction>
                </MemberModules>
                <Composition>
                  <Node ID="WA" />
                </Composition>
              </Composite>
            </ModuleImplementation>
            <InputType>System!System.BaseData</InputType>
          </WriteActionModuleType>
          <WriteActionModuleType ID="CloudMonix.ResourceMonitoring.TargetSetSuccessAction" Accessibility="Public" Batching="false">
            <Configuration>
              <xsd:element name="MonitorId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </Configuration>
            <ModuleImplementation Isolation="Any">
              <Composite>
                <MemberModules>
                  <WriteAction ID="WA" TypeID="CloudMonix.ResourceMonitoring.TargetSetStateAction">
                    <MonitorId>$Config/MonitorId$</MonitorId>
                    <HealthState>Success</HealthState>
                  </WriteAction>
                </MemberModules>
                <Composition>
                  <Node ID="WA" />
                </Composition>
              </Composite>
            </ModuleImplementation>
            <InputType>System!System.BaseData</InputType>
          </WriteActionModuleType>
          <WriteActionModuleType ID="CloudMonix.ResourceMonitoring.TargetSetWarningAction" Accessibility="Public" Batching="false">
            <Configuration>
              <xsd:element name="MonitorId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </Configuration>
            <ModuleImplementation Isolation="Any">
              <Composite>
                <MemberModules>
                  <WriteAction ID="WA" TypeID="CloudMonix.ResourceMonitoring.TargetSetStateAction">
                    <MonitorId>$Config/MonitorId$</MonitorId>
                    <HealthState>Warning</HealthState>
                  </WriteAction>
                </MemberModules>
                <Composition>
                  <Node ID="WA" />
                </Composition>
              </Composite>
            </ModuleImplementation>
            <InputType>System!System.BaseData</InputType>
          </WriteActionModuleType>
          <WriteActionModuleType ID="CloudMonix.ResourceMonitoring.TargetSetErrorAction" Accessibility="Public" Batching="false">
            <Configuration>
              <xsd:element name="MonitorId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </Configuration>
            <ModuleImplementation Isolation="Any">
              <Composite>
                <MemberModules>
                  <WriteAction ID="WA" TypeID="CloudMonix.ResourceMonitoring.TargetSetStateAction">
                    <MonitorId>$Config/MonitorId$</MonitorId>
                    <HealthState>Error</HealthState>
                  </WriteAction>
                </MemberModules>
                <Composition>
                  <Node ID="WA" />
                </Composition>
              </Composite>
            </ModuleImplementation>
            <InputType>System!System.BaseData</InputType>
          </WriteActionModuleType>
        </ModuleTypes>
      </TypeDefinitions>
      <Monitoring>
        <Rules>
          <Rule ID="CloudMonix.ResourceMonitoring.Monitor.Success" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.RootManagementServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>StateCollection</Category>
            <DataSources>
              <DataSource ID="DataSource" TypeID="SystemCenter!Microsoft.SystemCenter.SdkEventProvider" />
            </DataSources>
            <ConditionDetection ID="ConditionDetection" TypeID="System!System.ExpressionFilter">
              <Expression>
                <SimpleExpression>
                  <ValueExpression>
                    <XPathQuery>EventNumber</XPathQuery>
                  </ValueExpression>
                  <Operator>Equal</Operator>
                  <ValueExpression>
                    <Value>1</Value>
                  </ValueExpression>
                </SimpleExpression>
              </Expression>
            </ConditionDetection>
            <WriteActions>
              <WriteAction ID="WriteAction" TypeID="CloudMonix.ResourceMonitoring.TargetSetSuccessAction">
                <MonitorId>$MPElement[Name="CloudMonix.ResourceMonitoring.Monitor"]$</MonitorId>
              </WriteAction>
            </WriteActions>
          </Rule>
          <Rule ID="CloudMonix.ResourceMonitoring.Monitor.Warning" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.RootManagementServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>StateCollection</Category>
            <DataSources>
              <DataSource ID="DataSource" TypeID="SystemCenter!Microsoft.SystemCenter.SdkEventProvider" />
            </DataSources>
            <ConditionDetection ID="ConditionDetection" TypeID="System!System.ExpressionFilter">
              <Expression>
                <SimpleExpression>
                  <ValueExpression>
                    <XPathQuery>EventNumber</XPathQuery>
                  </ValueExpression>
                  <Operator>Equal</Operator>
                  <ValueExpression>
                    <Value>2</Value>
                  </ValueExpression>
                </SimpleExpression>
              </Expression>
            </ConditionDetection>
            <WriteActions>
              <WriteAction ID="WriteAction" TypeID="CloudMonix.ResourceMonitoring.TargetSetWarningAction">
                <MonitorId>$MPElement[Name="CloudMonix.ResourceMonitoring.Monitor"]$</MonitorId>
              </WriteAction>
            </WriteActions>
          </Rule>
          <Rule ID="CloudMonix.ResourceMonitoring.Monitor.Error" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.RootManagementServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>StateCollection</Category>
            <DataSources>
              <DataSource ID="DataSource" TypeID="SystemCenter!Microsoft.SystemCenter.SdkEventProvider" />
            </DataSources>
            <ConditionDetection ID="ConditionDetection" TypeID="System!System.ExpressionFilter">
              <Expression>
                <SimpleExpression>
                  <ValueExpression>
                    <XPathQuery>EventNumber</XPathQuery>
                  </ValueExpression>
                  <Operator>Equal</Operator>
                  <ValueExpression>
                    <Value>3</Value>
                  </ValueExpression>
                </SimpleExpression>
              </Expression>
            </ConditionDetection>
            <WriteActions>
              <WriteAction ID="WriteAction" TypeID="CloudMonix.ResourceMonitoring.TargetSetErrorAction">
                <MonitorId>$MPElement[Name="CloudMonix.ResourceMonitoring.Monitor"]$</MonitorId>
              </WriteAction>
            </WriteActions>
          </Rule>
        </Rules>
        <Monitors>
          <AggregateMonitor ID="CloudMonix.ResourceMonitoring.Monitor" Accessibility="Public" Enabled="true" Target="CloudMonix.ResourceMonitoring.Resource" ParentMonitorID="Health!System.Health.EntityState" Remotable="true" Priority="Normal">
            <Category>StateCollection</Category>
            <Algorithm>WorstOf</Algorithm>
          </AggregateMonitor>
        </Monitors>
      </Monitoring>
      <Presentation>
        <Views>
          <View ID="CloudMonix.ResourceMonitoring.MainView" Accessibility="Public" Enabled="true" Target="CloudMonix.ResourceMonitoring.Resource" TypeID="SystemCenter!Microsoft.SystemCenter.StateViewType" Visible="true">
            <Category>Operations</Category>
            <Criteria>
              <InMaintenanceMode>false</InMaintenanceMode>
            </Criteria>
            <Presentation>
              <ColumnInfo Index="0" SortIndex="-1" Width="100" Grouped="false" Sorted="true" IsSortable="true" Visible="true" SortOrder="Ascending">
                <Name>State</Name>
                <Id>CloudMonix.ResourceMonitoring.Resource</Id>
              </ColumnInfo>
              <ColumnInfo Index="1" SortIndex="-1" Width="100" Grouped="false" Sorted="false" IsSortable="true" Visible="true" SortOrder="Ascending">
                <Name>Resource Type</Name>
                <Id>ResourceType</Id>
              </ColumnInfo>
              <ColumnInfo Index="2" SortIndex="-1" Width="100" Grouped="false" Sorted="false" IsSortable="true" Visible="true" SortOrder="Ascending">
                <Name>Resource Name</Name>
                <Id>DisplayName</Id>
              </ColumnInfo>
              <ColumnInfo Index="3" SortIndex="-1" Width="100" Grouped="false" Sorted="false" IsSortable="true" Visible="true" SortOrder="Ascending">
                <Name>Resource Groups</Name>
                <Id>ResourceGroups</Id>
              </ColumnInfo>
            </Presentation>
            <Target />
          </View>
        </Views>
        <Folders>
          <Folder ID="CloudMonix.ResourceMonitoring.MainFolder" Accessibility="Public" ParentFolder="SystemCenter!Microsoft.SystemCenter.Monitoring.ViewFolder.Root" />
        </Folders>
        <FolderItems>
          <FolderItem ElementID="CloudMonix.ResourceMonitoring.MainView" ID="CloudMonix.ResourceMonitoring.MainView" Folder="CloudMonix.ResourceMonitoring.MainFolder" />
        </FolderItems>
      </Presentation>
      <LanguagePacks>
        <LanguagePack ID="ENU" IsDefault="false">
          <DisplayStrings>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring">
              <Name>CloudMonix Resource Monitoring</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.MainFolder">
              <Name>CloudMonix Folder</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.MainView">
              <Name>CloudMonix Resource View</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.Monitor">
              <Name>CloudMonix Health State Monitor</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.Resource">
              <Name>CloudMonix Resource</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.Resource" SubElementID="ResourceId">
              <Name>Resource Id</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.Resource" SubElementID="ResourceType">
              <Name>Resource Type</Name>
            </DisplayString>
            <DisplayString ElementID="CloudMonix.ResourceMonitoring.Resource" SubElementID="ResourceGroups">
              <Name>Resource Groups</Name>
            </DisplayString>
          </DisplayStrings>
        </LanguagePack>
      </LanguagePacks>
    </ManagementPack>
    

    我们试图更改此包中受监视资源的运行状况。 我们实现了jakub oleksy中描述的3个状态 article .

    我们使用.net向scom发送数据 SDK . 一切正常…我们可以看到性能数据和事件。

    但不幸的是,健康状况并没有改变。

    当然,我们已经清除了健康状态缓存、重新启动服务器等。 但没有结果。

    请询问我能提供的解决问题的任何附加信息。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alexander I.    7 年前

    我们已经解决了这个问题。

    目标规则有问题:

    <Rule ID="CloudMonix.ResourceMonitoring.Monitor.Error" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.RootManagementServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
    

    我们用过 系统中心!Microsoft.SystemCenter.RootManagement服务器 目标。此目标对我们的环境无效。

    我们把目标改成 cloudmonix.resourcemonitoring.resource资源 . 现在健康状况改变正确了。

    你可以看到Jakub Oleksy的详细信息 article .