前のトピック: カスタム メトリック ファミリの XML ファイルのインポート次のトピック: トラブルシューティング


廃止されたコンポーネントの削除の自動化

管理者は、廃止されたコンポーネントがネットワークから自動で削除されるようにできます。 プロセスを自動化するスクリプトを書く前に、廃止されたコンポーネントを削除するために Data Aggregator に含まれているスクリプトを使用する方法を理解します。 たとえば、週単位の cron ジョブをセットアップし、1 か月経過した廃止コンポーネントを削除できます。

Data Aggregator に含まれている remove_retired_items スクリプトは 2 つの部分で構成されます。 スクリプトの最初の部分は、設定したフィルタに基づいて、廃止されたコンポーネントに関するデータを識別して返します。 スクリプトの 2 番目の部分は、廃止されたコンポーネント リストの削除を実行します。 プロセスを自動化するには、このスクリプトがどのように構築されているかを理解します。

注: remove_retired_items スクリプトの使用に関する詳細については、「Data Aggregator 管理者ガイド」を参照してください。

例: 廃止されたコンポーネントのリストをデバイス IP アドレスでフィルタリング

この例では、10.252.1.1 のプライマリ IP アドレスを持つデバイスについて廃止されたコンポーネントをすべて検索します。 IP アドレスによる直接のコンポーネント フィルタが可能ではないので、IP アドレスによるフィルタリングは 2 段階のプロセスとなります。 廃止されたコンポーネントをフィルタするには、まずコンポーネントが関連付けられているデバイスの IP アドレスをメモします。 IP アドレス情報で、デバイスに対するデバイス アイテム ID を判断します。 次に、そのデバイス アイテム ID を使用して、廃止されたコンポーネントを判断します。 最後に、廃止されたコンポーネントを削除します。

注: この例は curl コマンドを使用しますが、慣れているコマンドを使用してもかまいません。

  1. filterDeviceIP.xml ファイルを作成します。 このファイルを使用して、10.252.1.1 のプライマリ IP アドレスがあるデバイスに対するデバイス アイテム ID を返します。 ファイルは以下の例のようになります。
    <FilterSelect xsi:noNamespaceSchemaLocation="filter.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Filter>
        <And>
         <Device.PrimaryIPAddress type="EQUAL">10.252.1.1</Device.PrimaryIPAddress>
        </And>
      </Filter>
    </FilterSelect>
    
  2. 以下のコマンドを実行します。

    curl -X http://hostname:port/rest/devices/filtered -H "Content-Type: application/xml" -T "filterDeviceIP.xml" > returnedDeviceID.xml

    -X

    対象のフィルタを作成します。

    hostname:port

    Data Aggregator のホスト名およびポート番号を指定します。

    デフォルト ポート: 8581

    -H

    ポストしているファイルのコンテンツ タイプを示します。

    -T

    ポストしているファイルを示します。

    以下の結果が HTTP レスポンスとして返されます。

    <?xml version="1.0"?>
    <DeviceList>
      <Device version="1.0.0">
        <ID>107881</ID>
        <PrimaryIPAddress>10.252.1.1</PrimaryIPAddress>
        <supportsOnDemandMFDiscovery>true</supportsOnDemandMFDiscovery>
        <SupportedProtocolsList>
          <SupportedProtocols>ICMP</SupportedProtocols>
        </SupportedProtocolsList>
        <DiscProfileID>107503</DiscProfileID>
        <HostName>rtp003723rts.ca.com</HostName>
        <RelatesTo>
          <MonitoredGroupIDList relatesURL="relatesto/monitoredgroups" rootURL="monitoredgroups">
            <ID>509</ID>
          </MonitoredGroupIDList>
          <GroupIDList relatesURL="relatesto/groups" rootURL="groups">
            <ID>547</ID>
            <ID>530</ID>
            <ID>509</ID>
          </GroupIDList>
        </RelatesTo>
        <IsAlso>
          <IsA name="MetricFamilyDiscoveryHistory" rootURL="devices/mfdiscoveryhistory"/>
          <IsA name="AccessibleDevice" rootURL="devices/accessible"/>
          <IsA name="Syncable" rootURL="syncable"/>
          <IsA name="IPDomainMember" rootURL="ipdomainmember"/>
        </IsAlso>
        <DataCoectionMgrId version="1.0.0">
          <DcmID>dcname.ca.com:8f53bc55-f442-42fc-9bd5-a907d0261421</DcmID>
        </DataCollectionMgrId>
        <Syncable version="1.0.0">
          <SyncID>-1</SyncID>
        </Syncable>
        <Item version="1.0.0">
          <DisplayName>router.ca.com</DisplayName>
          <CreateTime>Wed Feb 05 10:20:26 EST 2014</CreateTime>
          <Name>router.ca.com</Name>
        </Item>
        <IPDomainMember version="1.0.0">
          <IPDomainID>2</IPDomainID>
        </IPDomainMember>
        <DeviceMonitoringProfile version="1.0.0">
          <ConsolidatedMonitoringProfile>2509</ConsolidatedMonitoringProfile>
        </DeviceMonitoringProfile>
      </Device>
    </DeviceList>
    

    デバイス アイテム ID 107881 が返されます。 結果にはデバイスに関する詳細情報も表示されます。

  3. filterRetired.xml ファイルを作成します。 このファイルを使用して、デバイス アイテム ID が 107881 であるデバイスと関連付けられている廃止されたコンポーネントを返します。 このファイルは以下の例のようになるはずです。
    <FilterSelect xsi:noNamespaceSchemaLocation="filter.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Filter>
        <And>
            <DeviceComponent.DeviceItemID type="EQUAL">107881</DeviceComponent.DeviceItemID>
        </And>
      </Filter>
      <Select use="exclude">
        <Item use="exclude">
          <DisplayName use="include"/>
        </Item>
      </Select>
    </FilterSelect>
    
  4. 以下のコマンドを実行します。

    curl -X post http://hostname:port/rest/retired/filtered -H "Content-Type: application/xml" -T "filterRetired.xml" > returnedRetireItems.xml

    以下の結果が HTTP レスポンスとして返されます。

    <?xml version="1.0"?>
    <RetiredList>
      <Retired version="1.0.0">
        <ID>128452</ID>
        <Item version="1.0.0">
          <DisplayName>GigabitEthernet0/239 - GigabitEthernet0/239</DisplayName>
        </Item>
      </Retired>
      <Retired version="1.0.0">
        <ID>128451</ID>
        <Item version="1.0.0">
          <DisplayName>GigabitEthernet0/238 - GigabitEthernet0/238</DisplayName>
        </Item>
      </Retired>
    </RetiredList>
    

    フィルタ条件に適合する廃止された 2 つのコンポーネントが返されます。 コンポーネントのアイテム ID は 128452 および 128451 です。

  5. deleteRetiredList.xml ファイルを作成します。 このファイルを使用して、廃止されたコンポーネントの返されたリストを削除します。 ファイルは以下の例のようになります。
    <DeleteList>
      <ID>128452</ID>
      <ID>128451</ID>
    </DeleteList>
    
  6. 以下のコマンドを実行します。

    curl -X post http://hostname:port/rest/retired/deletelist -H "Content-Type: application/xml" -T "deleteRetiredList.xml" > deletelistreponse.xml

    以下の結果が HTTP レスポンスとして返されます。

    <?xml version="1.0"?>
    <DeleteListResult>
      <DeleteResult>
        <ID>128452</ID>
        <Error>SUCCESS</Error>
      </DeleteResult>
      <DeleteResult>
        <ID>128451</ID>
        <Error>SUCCESS</Error>
      </DeleteResult>
    </DeleteListResult>
    

    廃止されたコンポーネントは正常に削除されました。