プライマリ・コンテンツに移動
Oracle® Enterprise Manager Cloud Control拡張プログラマーズ・リファレンス
13c リリース2
E92082-01
目次へ移動
目次
索引へ移動
索引

前
次

2 プラグインの定義

この章では、プラグインを作成するために定義する必要があるプラグイン・メタデータについて説明します

内容は次のとおりです。

2.1 プラグインの定義の概要

プラグイン開発者は、プラグイン定義プロセスにおいて、次の手順に従う必要があります。

  1. プラグイン識別子(ID)を定義します。

    詳細は、「プラグインIDの定義」を参照してください。

  2. プラグイン・バージョンを定義します。

    詳細は、「プラグイン・バージョンの定義」を参照してください。

  3. 次のように、プラグイン定義ファイルを作成します。

    1. plugin.xmlファイルを作成します。

      plugin.xmlファイルはプラグインを記述するメタデータを提供します。

      詳細は、「plugin.xmlファイルの作成」を参照してください。

    2. plugin_registry.xmlファイルを作成します。

      plugin_registry.xmlファイルは、プラグインがデプロイされる管理エージェントで必要なメタデータを提供します。

      詳細は、「plugin_registry.xmlファイルの作成」を参照してください。

  4. プラグイン定義ファイルを次のプラグイン・ステージング・ディレクトリ(plugin_stage)にパッケージ化します。

    • plugin_stage/plugin.xml

    • plugin_stage/agent/plugin_registry.xml

    詳細は、「プラグインの検証、パッケージ化およびデプロイ」を参照してください。

  5. プラグイン定義ファイルを検証します。

    詳細は、「プラグイン定義ファイルの検証」を参照してください

2.2 プラグイン・メタデータについて

基本プラグインでは、プラグイン自体のためのメタデータが必要です。これには、Oracle Management Serviceと管理エージェントで使用される名前とバージョンなどの情報、監視対象のターゲットが稼働しているかを示すメトリックの定義、およびメトリック・データを収集する頻度の定義などが含まれています。

2.2.1 プラグインIDの定義

プラグインは、一意のプラグイン識別子(ID)で識別されます。プラグインIDは、次の3つの部分から構成されています。

  • ベンダーID (8文字)。例: test

  • 製品ID (8文字)。例: switch

  • プラグイン・タグ(4文字)。例: xkey

    注意:

    • ベンダーID、製品IDおよびプラグイン・タグは、先頭に数字を指定できません。また、特殊文字を含めることもできません 。すべてこれらの項目には英数字のみを指定してください。

    • プラグイン・タグは、小文字のxで始まる必要があり、4文字を超えることはできません。すべての文字が小文字である必要があります。

    • 1つ以上のプラグインを定義する場合、各プラグインのプラグイン・タグが個別および一意であることを確認してください。

    • 既存のプラグインの前の名前を維持する場合、AgentSideCompatibility要素を使用する必要があります。それ以外の場合、プラグイン検証に失敗します。プラグイン検証の詳細は、「プラグインの検証、パッケージ化およびデプロイ」を参照してください。AgentSideCompatibility要素の詳細は、表2-1を参照してください。

前述の例で作成したプラグインIDは、次のとおりです。

test.switch.xkey

注意:

プラグインIDは、Enterprise Manager全体で一意である必要があります。

2.2.2 プラグイン・バージョンの定義

各プラグインにバージョンを割り当てる必要があります。プラグインのバージョニングの構成は、次のとおりです。

a.b.c.d.e

  • a.b: 開発に使用するEnterprise Manager拡張開発キット(EDK)のバージョン(13.1、13.2など)。

  • c: 開発者が割り当てるプラグインのバージョン。この値は、同じEnterprise Manager Cloud Controlのリリースで、プラグインがリリースされるたびに加算されます。

  • d: プラグインがベータ・バージョンか本番バージョンかを示します。0はベータ・バージョンを示し、1以上は本番バージョンを示します。

  • e: 予備。デフォルト値は0 (ゼロ)です。

全部組み合せると、Enterprise Manager Cloud Control 13cで最初に作成されるプラグインのバージョンを次の例に示します。

13.1.1.1.0

注意:

プラグインを作成およびデプロイするたびに、プラグインのバージョンを加算して更新することをお薦めします。たとえば、13.1.1.1.0、13.1.2.1.0、13.1.3.1.0などです。

2.3 プラグイン定義ファイルの作成

次の2つのメタデータ・ファイルが、Enterprise Manager Cloud Control 13cに対してデプロイされるすべてのプラグインに必要です。

  • plugin.xml

    このファイルはプラグインのデプロイメント中に使用されます。これには、名前やバージョンなどのプラグインを識別するプロパティが含まれます。また、Enterprise Manager Cloud Controlに追加されるターゲット・タイプのセットを宣言します。

  • plugin-registry.xml

    このファイルは、管理エージェントにデプロイされるプラグインに含まれるコンポーネントを宣言します。

2.3.1 plugin.xmlファイルの作成

plugin.xmlファイルはプラグインを記述するメタデータを提供します。

次の項では、plugin.xmlに含めることができる、必須のタグおよび一部のオプションのタグについて説明します。

この例は、プラグイン用のサンプルのplugin.xmlを示しています。

<?xml version = '1.0' encoding = 'UTF-8'?>
<Plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.oracle.com/EnterpriseGridControl/plugin_
metadata plugin_metadata.xsd"
        xmlns="http://www.oracle.com/EnterpriseGridControl/plugin_metadata">

 <PluginId vendorId="test" productId="demo" pluginTag="xkey"/>

  <PluginVersion value="13.1.1.1.0"/>

  <ShortDescription>Test plugin for the Test Demo Plug-in.</ShortDescription>
  <Readme><![CDATA[Brief details about the Test Demo plug-in]]></Readme>
  <!--
  <AgentSideCompatibility>
     <Version>Previous_Version</Version>
  </AgentSideCompatibility>
  -->

  <TargetTypeList>
    <TargetType name="test_demo_xkey" isIncluded="TRUE">
       <VersionSupport>
        <SupportedVersion supportLevel="Basic" minVersion="9.2.0.1"
                          maxVersion="9.8.0.0.0"/>
      </VersionSupport>
    </TargetType>
  </TargetTypeList>

  <PluginDependencies>
   <DependentPlugin pluginDependencyType="RunTime">
    <DepPluginId vendorId="test" productId="switch" pluginTag="xyz1"/>
    <BaseVersion version="11.2.0.1.0"/>
   </DependentPlugin>
   <DependentPlugin pluginDependencyType="RunTime">
    <DepPluginId vendorId="test" productId="switch" pluginTag="xyz2"/>
    <BaseVersion version="11.2.0.1.0"></BaseVersion>
   </DependentPlugin>  </PluginDependencies>
  <PluginAttributes Type="MP" Category="Databases"/>
</Plugin>

2.3.1.1 plugin.xml要素の概要

表2-1に、plugin.xmlファイルに含まれるキー要素を示します。

表2-1 plugin.xmlファイル内のキー要素

要素 必須 説明

Plugin

Y

ファイルのルート要素。

PluginID

Y

プラグインに割り当てられている一意の識別子。

詳細は、「プラグインIDの定義」を参照してください。

PluginVersion

Y

プラグイン・バージョン。

詳細は、「プラグイン・バージョンの定義」を参照してください。

PluginOMSOSAruId

N

プラグインがデプロイされるOracle Management Serviceのオペレーティング・システム(OS)ID。通常、この要素は2000 (一般)に設定されています。

詳細は、「プラグインの動作保証」を参照してください。

Readme

Y

Cloud Controlコンソールのプラグイン・ページに表示されるプラグインの情報を示します。

プラグイン・ページにアクセスするには、「設定」メニューから、「拡張性」「自己更新」「プラグイン」の順に選択します。

PluginAttributes

N

プラグイン・タイプ、表示名、カテゴリなどのプラグインの属性を定義します。

メタデータ・プラグインのデフォルトのプラグイン・タイプはMPです。デフォルトのカテゴリはOthersです。

有効なタイプの値は次のとおりです。

  • MP

    デフォルトUIを持つメタデータ・プラグイン

  • MPP

    カスタムUIを持つメタデータ・プラグイン

有効なカテゴリの値は次のとおりです。

  • Applications

  • Databases

  • Middleware

  • Cloud

  • Engineered Systems

  • Servers, Storage and Network

  • Others

    注意: Othersではなく特定のカテゴリ値を使用することをお薦めします。

TargetTypeList

N

プラグインにパッケージ化されているターゲット・タイプ名をそれぞれ指定する1つ以上のTargetType要素を含みます。

ターゲット・タイプ・メタデータ・ファイルの詳細は、「ターゲット・タイプ・メタデータ・ファイルの作成」を参照してください。

TargetType要素には、ターゲット・タイプのバージョンがサポートされているかどうかを識別するVersionSupport要素も含まれています。

PluginDependencies

N

プラグインに存在する依存性を記述します。依存性は次のように記述されます。

  • RunTimeMandatory: この依存性は、現在のプラグインが依存するプラグインが現在のプラグインをデプロイする前に存在する必要があることを示します。たとえば、依存するプラグインが存在しない場合、プラグインAをデプロイできません。プラグインAは実行時にプラグインBの機能を使用しますが、プラグインBが見つからない場合はこの機能が中断します。

  • RunTime: この依存性は、機能の依存性を含む現在のプラグインのデプロイメントが依存するプラグインなしで続行できることを示します。現在のプラグインが依存するプラグインが後で環境に使用される場合、依存機能が有効化されます。依存性の他に、前提条件を記述することもできます。現在サポートされている前提条件のタイプはバグです。

  • CompileTime: この依存性は、依存プラグインが現在のプラグインのデプロイメント前に存在する必要があることを示します。つまり、現在のプラグインが依存プラグインからAPIを明示的に使用し、作成時間の依存性を持ちます。

AgentSideCompatibility

N

現在のプラグインと互換性がある以前のプラグイン・バージョンを識別します。

この要素を指定することによって、管理エージェント側の以前のプラグイン・メタデータがOMS側のプラグイン・メタデータの新しいバージョンと互換性があることを明示的に示します。つまり、以前のプラグインをアップグレードした後、メトリック、しきい値、構成収集などの機能を中断せずにデータをOMSの新しいバージョンにアップロードできます。

プラグインの新しいバージョンと互換性がないプラグインの以前のバージョンがある場合、この要素を使用して互換性があるバージョンのみをリストできます。たとえば、バージョン12.1.0.2.0が13.1.1.1.0 (新しいプラグイン・バージョン)と互換性がない場合、12.1.0.3.0および12.1.0.4.0をリストして12.1.0.3.0および12.1.0.4.0プラグインのみが新しい13.1.1.1.0プラグインと互換性があることを示すことができます。

2.3.1.2 プラグインの動作保証

注意:

すべてのメタデータ・プラグインはOMS側で汎用である必要があります。また、すべてのプラットフォームで暗黙的に動作保証されています。ただし、プラグインでは管理エージェントでOSの動作保証を指定できます。

Enterprise Managerは多数のOSプラットフォームでリリースされるため、それぞれのOSプラットフォームでのプラグインの動作方法を考慮する必要があります。plugin.xmlファイルには、動作保証メカニズムをサポートする要素と属性が含まれています。

プラグインがOSプラットフォームのサブセットにのみ該当する場合は、表2-2で定義されているタグを使用できます。<Certification>セクションに何の情報も指定しない場合、プラグインはすべてのプラットフォームで動作保証されているとみなされます。

表2-2 動作保証のタグ

タグ 説明

Component type

プラグイン・コンポーネントを指定します。

有効な値は次のとおりです。

  • Agent: 管理エージェント・コンポーネント

  • Discovery: 検出コンポーネント

PortARUId value

OSまたはプラットフォームのARU IDを指定します。

有効な値は次のとおりです。

  • 46: Linux x86 (32ビット)

  • 212: AIX 5Lおよび6.1 (64ビット)

  • 226: Linux x86-64 (64ビット)

  • 23: Solaris Sparc (64ビット)

  • 267: Solaris x86-64 (64ビット)

  • 233: Microsoft Windows x86-64 (64ビット)

次の例は、プラグインがLinux 32およびLinux 64プラットフォームでのみ動作するように設計されていることを示しています。動作保証されたポートを指定しない場合、プラグインはデフォルトですべてのオペレーティング・システムとプラットフォームで動作保証されています。ただし、少なくとも1つのPortARUId要素を指定した場合、そのコンポーネントは指定したプラットフォームでのみ動作保証されています。

注意:

管理エージェントと検出コンポーネントは、同じ値を持つ必要があります。

例: 汎用プラグインの動作保証

<Certification>
  <Component type="Agent">
        <CertifiedPorts>
              <PortARUId value="46" />
              <PortARUId value="226" />
        </CertifiedPorts>
  </Component>
  <Component type="Discovery">
        <CertifiedPorts>
              <PortARUId value="46" />
              <PortARUId value="226" />
        </CertifiedPorts>
  </Component>
</Certification>
  

2.3.2 plugin_registry.xmlファイルの作成

plugin_registry.xmlファイルは、プラグインがデプロイされる管理エージェントで必要なメタデータを提供します。これはプラグイン・アーカイブ内の/agentディレクトリにパッケージ化され、ターゲットを監視する管理エージェントにデプロイされます。

次の例は、plugin_registry.xmlファイルのサンプルを示しています。TargetTypes要素には、プラグイン・アーカイブ内のターゲット・タイプのメタデータ・ファイルの場所への参照が含まれています。場所は、管理エージェントのサブディレクトリから始まる、plugin_stageディレクトリ・ルートに対する相対ディレクトリ、またはplugin_registry.xmlファイルが存在する場所です。

同様に、TargetCollections要素には、プラグインのデフォルト収集メタデータ・ファイルへの参照が含まれています。これも、プラグインにパッケージ化されています。

例: plugin_registry.xmlファイルのサンプル

<?xml version="1.0"?>
<PlugIn ID="test.demo.xkey" Description="Demo Sample Host Plugin" Version="13.1.1.1.0" HotPluggable="false"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.oracle.com/EnterpriseGridControl/plugin plugin.xsd">
  <TargetTypes>
        <FileLocation>metadata/test_switch_key.xml</FileLocation>  </TargetTypes>
  <TargetCollections>
       <FileLocation>default_collection/test_switch_key_collection.xml</FileLocation>
  </TargetCollections>
  <PlugInLibrary>
    <FileLocation>archives/em-as-fmw-fetchlet.jar</FileLocation>
    <FetchletRegistration>
      <Fetchlet ID="DMS" ExecutionClass="oracle.sysman.as.fetchlets.DMSFetchlet" Version="" Description="" Adapter=""/>
    </FetchletRegistration>
    <AdditionalClassPath>
      <FileLocation>archives/dms.jar</FileLocation>
    </AdditionalClassPath>
  </PlugInLibrary>
</PlugIn>

2.3.2.1 plugin_registry.xml要素の概要

表2-3に、ファイル内に含まれているキー要素を示します。

表2-3 plugin_registry.xmlファイル内のキー要素

要素 必須 説明

Plugin

Y

ファイルのルート要素。次の属性があります。

TargetTypes

N

1つ以上のFileLocation要素が含まれています。それぞれの要素で、プラグインにパッケージ化されているターゲット・タイプのメタデータ・ファイルのパスとファイル名を指定します。

ターゲット・タイプ・ファイルの詳細は、「ターゲット・タイプ・メタデータ・ファイルの作成」を参照してください。

TargetCollections

N

1つ以上のFileLocation要素が含まれています。それぞれの要素で、ターゲット・タイプのデフォルトの収集を指定します。

このファイルの詳細は、「デフォルトの収集ファイルの作成」を参照してください。

PlugInLibrary

N

プラグインにパッケージ化されている様々なタイプのアーティファクト(fetchlet、receiveletなど)をリストします。

PlugInLibrary要素には、次の下位要素が含まれています。

  • FileLocation: 必須。次に示したfetchletの実装を含むJARの場所を定義します。

  • FetchletRegistration: オプション。fetchlet ID (「plugin_registry.xmlファイルのサンプル」の例ではDMS)をfetchletインタフェースの実装を含むクラスにマップするエントリを作成します。

  • ReceiveletRegistration: オプション。receiveletインタフェースの実装を含むクラスにreceivelet IDをマップする、エントリを作成します。

  • AdditionalClassPath: オプション。特定のライブラリ用にプラグインによってロードされるように追加のJARファイルを指定します。

AdditionalClassPath

N

すべてのプラグイン・ライブラリによって共有されるプラグインによってロードされるように追加のJARファイルを指定します。

2.4 プラグイン定義ファイルの検証

plugin.xmlおよびplugin_registry.xmlファイルが正しく定義されていることを確認するには、EDKの/binディレクトリから次のコマンドを入力します。

empdk validate_plugin -stage_dir plugin_stage

前述のコマンドのplugin_stageは、プラグインのステージング・ディレクトリを示します。

EDKの詳細は、「拡張開発キット(EDK)」を参照してください。empdkコマンドおよびその使用方法の詳細は、「プラグインの検証」を参照してください。

2.5 プラグインへのログ・ビューア・サポートの追加

Enterprise Manager Cloud Controlリリース12c (12.1.0.3)から、デプロイされたプラグイン用のログ・ファイルをCloud Controlのログ・ビューアで表示できます。このコンポーネントにアクセスするには、Cloud Controlの「エンタープライズ」メニューから「モニタリング」を選択し、「ログ」を選択します。

次の手順に従って、この機能を有効にします。

  1. プラグイン用のログ・ビューア登録XMLファイルを作成します。このXMLファイルのDTDは次のとおりです。

    oracle/sysman/emSDK/logmgmt/registration/LogMgmtTargetTypeRegistration.xsd

  2. このファイルをプラグイン・ディレクトリ構造内のoms/metadata/logmgmt/にパッケージ化します。

次に、ログ・ビューア登録ファイルの例を示します。

例: ログ・ビューア登録ファイルのサンプル

<LogMgmtUITargetConfig TARGET_TYPE="%your targe type%">
  <LogViewerImpl CLASS_NAME="oracle.sysman.emas.model.logmgmt.MASLogViewer"/>
  <VersionProperties VALID_VERSIONS="11" MIN_META_VER="11.00000"VERSION_
   CATEGORY_PROP_WILDCARD_CHAR="*"/>
</LogMgmtUITargetConfig>

2.6 アップグレードのプラグインの定義

プラグインの開発中に、プラグインの後続のバージョンを計画する場合、プラグインをアップグレードできる、つまり古いバージョンのプラグインを削除せずに新しいバージョンをデプロイできることを確認する必要があります。

プラグインをアップグレードできることを確認するには、次の手順を実行します。

  1. 新しいplug-in.xmlファイルで、互換性のある以前のバージョンのプラグインを明示的に指定して、AgentSideCompatibilityタグを含めます。

    AgentSideCompatibilityタグの詳細は、表2-1を参照してください。

    注意:

    • 少なくとも以前のバージョンを2つ含めることをお薦めします。

    • 以前のプラグイン・メタデータが新しいバージョンと互換性がない場合、アップグレード後にメトリックおよび収集エラーが表示される可能性があります。プラグインのアップグレードの問題を回避するためにAgentSideCompatibility要素に互換性のあるバージョンのプラグインをリストすることをお薦めします。

  2. AgentSideCompatibility要素に以前のプラグインのバージョンを指定する場合、プラグイン・ステージング・ディレクトリにこれらのプラグイン・バージョンのOPARをバンドルする必要があります。

    プラグイン・ステージング・ディレクトリ(plugin_stage)で、released_pluginsディレクトリを作成し、このディレクトリに以前にリリースされたプラグインのOPARアーカイブ(たとえば、12.1.0.2.0_test.demo.xkey_2000_0.opar)を配置します。

    プラグイン・ステージング・ディレクトリの詳細は、「プラグインのステージング」を参照してください。

  3. プラグインの以前のすべてのバージョンのアップグレード・テストを実行して、次のようにすべての機能が正しく動作していることを確認します。
    • メトリック収集の検証

    • 構成収集の検証

    • アップグレードのためにメトリック収集エラーがないことの確認

    • 更新されたメトリックしきい値およびテンプレートが予期したとおりに選択されていることの確認

    • 更新されたジョブ・メタデータが予期したとおりに選択されていることの確認

2.7 プラグインの非推奨化

プラグインを非推奨としてマークするには、plugin.xmlファイルに次の行を追加します。

<Deprecated /> 

次に例を示します。

<?xml version = '1.0' encoding = 'UTF-8'?>
<Plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.oracle.com/EnterpriseGridControl/plugin_        metadata plugin_metadata.xsd"
        xmlns="http://www.oracle.com/EnterpriseGridControl/plugin_metadata">

  <PluginId vendorId="test" productId="demo" pluginTag="xkey"/>

  <PluginVersion value="12.1.0.1.0"/>

  <Deprecated/>

  <ShortDescription>Test plugin for the Test Demo Plug-in.</ShortDescription>
  <Readme><![CDATA[Brief details about the Test Demo plug-in]]></Readme>
  .
  .
  .

注意:

プラグインが非推奨としてマークされても、次のメジャー・リリースで廃止されるまで引き続き同じレベルのサポートが提供されます。