none
Как реализовать во VSAE RRS feed

  • Вопрос

  • Есть код:
     <Monitoring>
        <Discoveries>
          <Discovery ID="Poseidon3262.NetworkDevice.DiscoverDevice" Enabled="true" Target="NetworkLibrary!System.NetworkManagement.Node"
    
    ConfirmDelivery="true" Remotable="true" Priority="Normal">
            <Category>Discovery</Category>
            <DiscoveryTypes>
              <DiscoveryClass TypeID="Poseidon3262.NetworkDevice.UPS" />
            </DiscoveryTypes>
            <DataSource ID="DS" TypeID="Poseidon3262.SNMP.Discovery.Provider">
              <Interval>14400</Interval>
              <IP>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</IP>
              <CommunityString>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$$Target/Property
    
    [Type="NetworkLibrary!System.NetworkManagement.Node"]/VirtualCommunitySuffix$</CommunityString>
              <Version>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPVersion$</Version>
              <Expression>
                <SimpleExpression>
                  <ValueExpression>
                    <XPathQuery Type="String">SnmpVarBinds/SnmpVarBind[OID='.1.3.6.1.2.1.1.2.0']/Value</XPathQuery>
                  </ValueExpression>
                  <Operator>Equal</Operator>
                  <ValueExpression>
                    <Value>.1.3.6.1.4.1.21796.3.3</Value>
                  </ValueExpression>
                </SimpleExpression>
              </Expression>
              <ClassId>$MPElement[Name="Poseidon3262.NetworkDevice.Class"]$</ClassId>
              <InstanceSettings>
                <Settings>
                  <Setting>
                    <Name>$MPElement[Name="NetworkLibrary!System.NetworkManagement.Node"]/DeviceKey$</Name>
                    <Value>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/DeviceKey$</Value>
                  </Setting>
                </Settings>
              </InstanceSettings>
            </DataSource>
          </Discovery>
        </Discoveries>
      </Monitoring>
    как мне реализовать часть данного кода во VSAE?
    13 февраля 2013 г. 0:19

Ответы

  • Всем спасибо - сам разобрался, хотя можно было бы и подсказать, что нужно просто в Discovery, в свойствах, в самом модуле дописать конфигурацию для собственно монитора.
    • Помечено в качестве ответа Starley25 18 февраля 2013 г. 12:54
    18 февраля 2013 г. 12:54

Все ответы

  • Все эти страницы уже прочитаны, к сожалению ни в одной из них не рассмотрен пример создания именно этого участка кода, я пытаюсь реализовать задачу по мониторингу APC основываясь на вашей статье от 2009 года, есть некоторые различия между реализацией в Authoring для 2007 и  VSAE для 2012, поэтому и задается вопрос, в msdn'е все конечно объясняется, однако исключительно по кусочкам, полной реализации никогда и не будет. Есть уже написанный пример для 2012:

    <?xml version="1.0" encoding="utf-8"?><ManagementPack ContentReadable="true" SchemaVersion="2.0" OriginalSchemaVersion="2.0"
    
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <Manifest>
        <Identity>
          <ID>Poseidon3262.Management.Pack</ID>
          <Version>1.0.0.5</Version>
        </Identity>
        <Name>Poseidon3262 Management Pack</Name>
        <References>
          <Reference Alias="NetworkDevice">
            <ID>Microsoft.SystemCenter.NetworkDevice.Library</ID>
            <Version>7.0.8560.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SNMP">
            <ID>System.Snmp.Library</ID>
            <Version>7.0.8427.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="NetworkLibrary">
            <ID>System.NetworkManagement.Library</ID>
            <Version>7.0.8560.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="NetworkMonitoring">
            <ID>System.NetworkManagement.Monitoring</ID>
            <Version>7.0.8560.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="System">
            <ID>System.Library</ID>
            <Version>7.5.8501.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SC">
            <ID>Microsoft.SystemCenter.Library</ID>
            <Version>7.0.8427.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="Health">
            <ID>System.Health.Library</ID>
            <Version>7.0.8427.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
        </References>
      </Manifest>
      <TypeDefinitions>
        <EntityTypes>
          <ClassTypes>
            <ClassType ID="Poseidon3262.NetworkDevice.Class" Accessibility="Public" Abstract="false" Base="NetworkLibrary!
    
    System.NetworkManagement.Node" Hosted="false" Singleton="false" Extension="false">
              <Property ID="ObjectID" Type="string" AutoIncrement="false" Key="false" CaseSensitive="true" MaxLength="256" MinLength="0"
    
    Required="false" Scale="0" />
            </ClassType>
          </ClassTypes>
        </EntityTypes>
        <ModuleTypes>
          <DataSourceModuleType ID="Poseidon3262.System.SnmpQueryProvider" Accessibility="Public" Batching="false">
            <Configuration>
              <xsd:element name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="NoOfRetries" type="xsd:unsignedInt" default="3"
    
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Timeout" type="xsd:unsignedInt" default="500" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    
    />
              <xsd:element minOccurs="0" maxOccurs="1" name="Port" type="xsd:unsignedInt" default="161" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3UserName" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3EngineID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3AuthProtocol" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3AuthPassword" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3PrivProtocol" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3PrivPassword" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3ContextName" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="IsWriteAction" type="xsd:boolean" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="IP" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="CommunityString" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Version" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="SnmpVarBinds" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="1" maxOccurs="unbounded" name="SnmpVarBind">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element name="OID" type="xsd:string" />
                          <xsd:element name="Syntax" type="xsd:integer" />
                          <xsd:element name="Value">
                            <xsd:complexType>
                              <xsd:simpleContent>
                                <xsd:extension base="xsd:string">
                                  <xsd:attribute name="VariantType" type="xsd:integer" use="optional" />
                                </xsd:extension>
                              </xsd:simpleContent>
                            </xsd:complexType>
                          </xsd:element>
                        </xsd:sequence>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </Configuration>
            <ModuleImplementation Isolation="Any">
              <Composite>
                <MemberModules>
                  <DataSource ID="Scheduler" TypeID="System!System.Discovery.Scheduler">
                    <Scheduler>
                      <SimpleReccuringSchedule>
                        <Interval Unit="Seconds">$Config/Interval$</Interval>
                      </SimpleReccuringSchedule>
                      <ExcludeDates />
                    </Scheduler>
                  </DataSource>
                  <ProbeAction ID="Probe" TypeID="NetworkLibrary!System.NetworkManagement.SnmpProbe">
                    <NoOfRetries>$Config/NoOfRetries$</NoOfRetries>
                    <Timeout>$Config/Timeout$</Timeout>
                    <Port>$Config/Port$</Port>
                    <SNMPv3UserName>$Config/SNMPv3UserName$</SNMPv3UserName>
                    <SNMPv3AuthProtocol>$Config/SNMPv3AuthProtocol$</SNMPv3AuthProtocol>
                    <SNMPv3AuthPassword>$Config/SNMPv3AuthPassword$</SNMPv3AuthPassword>
                    <SNMPv3PrivProtocol>$Config/SNMPv3PrivProtocol$</SNMPv3PrivProtocol>
                    <SNMPv3PrivPassword>$Config/SNMPv3PrivPassword$</SNMPv3PrivPassword>
                    <SNMPv3ContextName>$Config/SNMPv3ContextName$</SNMPv3ContextName>
                    <IsWriteAction>false</IsWriteAction>
                    <IP>$Config/IP$</IP>
                    <CommunityString>$Config/CommunityString$</CommunityString>
                    <Version>$Config/Version$</Version>
                    <SnmpVarBinds>$Config/SnmpVarBinds$</SnmpVarBinds>
                    <OutputOnError>false</OutputOnError>
                  </ProbeAction>
                </MemberModules>
                <Composition>
                  <Node ID="Probe">
                    <Node ID="Scheduler" />
                  </Node>
                </Composition>
              </Composite>
            </ModuleImplementation>
            <OutputType>SNMP!System.SnmpData</OutputType>
          </DataSourceModuleType>
          <DataSourceModuleType ID="MGE.SNMP.Discovery.Provider" Accessibility="Internal" Batching="false">
            <Configuration>
              <IncludeSchemaTypes>
                <SchemaType>System!System.Discovery.MapperSchema</SchemaType>
                <SchemaType>System!System.ExpressionEvaluatorSchema</SchemaType>
              </IncludeSchemaTypes>
              <xsd:element name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="IP" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="CommunityString" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Version" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="Expression" type="ExpressionType" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="ClassId" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
              <xsd:element name="InstanceSettings" minOccurs="0" maxOccurs="1" type="SettingsType" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </Configuration>
            <OverrideableParameters>
              <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
            </OverrideableParameters>
            <ModuleImplementation Isolation="Any">
              <Composite>
                <MemberModules>
                  <DataSource ID="DataSource1" TypeID="Poseidon3262.System.SnmpQueryProvider">
                    <Interval>$Config/Interval$</Interval>
                    <IsWriteAction>false</IsWriteAction>
                    <IP>$Config/IP$</IP>
                    <CommunityString>$Config/CommunityString$</CommunityString>
                    <Version>$Config/Version$</Version>
                    <SnmpVarBinds>
                      <SnmpVarBind>
                        <OID>.1.3.6.1.2.1.1.2.0</OID>
                        <Syntax>0</Syntax>
                        <Value VariantType="8" />
                      </SnmpVarBind>
                    </SnmpVarBinds>
                  </DataSource>
                  <ConditionDetection ID="DiscoveryMapper" TypeID="System!System.Discovery.FilteredClassSnapshotDataMapper">
                    <Expression>$Config/Expression$</Expression>
                    <ClassId>$Config/ClassId$</ClassId>
                    <InstanceSettings>$Config/InstanceSettings$</InstanceSettings>
                  </ConditionDetection>
                </MemberModules>
                <Composition>
                  <Node ID="DiscoveryMapper">
                    <Node ID="DataSource1" />
                  </Node>
                </Composition>
              </Composite>
            </ModuleImplementation>
            <OutputType>System!System.Discovery.Data</OutputType>
          </DataSourceModuleType>
        </ModuleTypes>
      </TypeDefinitions>
      <Monitoring>
        <Discoveries>
          <Discovery ID="Poseidon3262.NetworkDevice.DiscoverDevice" Enabled="true" Target="NetworkLibrary!System.NetworkManagement.Node"
    
    ConfirmDelivery="true" Remotable="true" Priority="Normal">
            <Category>Discovery</Category>
            <DiscoveryTypes>
              <DiscoveryClass TypeID="Poseidon3262.NetworkDevice.UPS" />
            </DiscoveryTypes>
            <DataSource ID="DS" TypeID="Poseidon3262.SNMP.Discovery.Provider">
              <Interval>14400</Interval>
              <IP>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</IP>
              <CommunityString>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$$Target/Property
    
    [Type="NetworkLibrary!System.NetworkManagement.Node"]/VirtualCommunitySuffix$</CommunityString>
              <Version>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPVersion$</Version>
              <Expression>
                <SimpleExpression>
                  <ValueExpression>
                    <XPathQuery Type="String">SnmpVarBinds/SnmpVarBind[OID='.1.3.6.1.2.1.1.2.0']/Value</XPathQuery>
                  </ValueExpression>
                  <Operator>Equal</Operator>
                  <ValueExpression>
                    <Value>.1.3.6.1.4.1.21796.3.3</Value>
                  </ValueExpression>
                </SimpleExpression>
              </Expression>
              <ClassId>$MPElement[Name="Poseidon3262.NetworkDevice.Class"]$</ClassId>
              <InstanceSettings>
                <Settings>
                  <Setting>
                    <Name>$MPElement[Name="NetworkLibrary!System.NetworkManagement.Node"]/DeviceKey$</Name>
                    <Value>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/DeviceKey$</Value>
                  </Setting>
                </Settings>
              </InstanceSettings>
            </DataSource>
          </Discovery>
        </Discoveries>
      </Monitoring>
     
      <LanguagePacks>
        <LanguagePack ID="ENU" IsDefault="true">
          <DisplayStrings>
            <DisplayString ElementID="Poseidon3262.Management.Pack">
              <Name> Poseidon3262 Management Pack </Name>
            </DisplayString>
            <DisplayString ElementID="Poseidon3262.System.SnmpQueryProvider">
              <Name> Poseidon3262 System SnmpQueryProvider </Name>
            </DisplayString>
            <DisplayString ElementID="Poseidon3262.SNMP.Discovery.Provider">
              <Name> Poseidon3262 SNMP Discovery Provider </Name>
            </DisplayString>
            <DisplayString ElementID="Poseidon3262.NetworkDevice.Class">
              <Name> Poseidon3262 NetworkDevice Class </Name>
            </DisplayString>
            <DisplayString ElementID="Poseidon3262.NetworkDevice.DiscoverDevice">
              <Name> Poseidon3262 NetworkDevice DiscoverDevice </Name>
            </DisplayString>
          </DisplayStrings>
        </LanguagePack>
      </LanguagePacks>
    </ManagementPack>

    практически все моменты мною уже изучены и реализованы во VSAE, однако именна та часть кода с которой я начинал тему вызвала затруднения.

    14 февраля 2013 г. 9:16
  • Всем спасибо - сам разобрался, хотя можно было бы и подсказать, что нужно просто в Discovery, в свойствах, в самом модуле дописать конфигурацию для собственно монитора.
    • Помечено в качестве ответа Starley25 18 февраля 2013 г. 12:54
    18 февраля 2013 г. 12:54