この章では、イベント・コネクタを作成し、Enterprise Managerと統合するために必要な情報を提供しています。
この章の内容は次のとおりです。
Oracle Enterprise Manager 10gには、Management Connectorフレームワーク(Connectorフレームワークとも呼ばれる)が導入され、開発者はメタデータ(XMLおよびXSL)に基づいてイベント・コネクタを作成できます。イベント・コネクタにより、Enterprise Managerは、ポーリング・ベースのアプローチを使用して外部イベントを取得できます。外部システムにイベントを送信することもできます。
イベント・コネクタの作成には、次のカテゴリのメタデータ・ファイルが必要です。
コネクタ・デプロイメント・ディスクリプタ
IsNewTargetTypeがtrueに設定されている場合、ターゲット・タイプ(targetType.xml)およびデフォルト・ターゲット(defaultTargetInstance.xml)の定義ファイルも必要です。
リクエスト変換XSL
レスポンス変換XSL
コネクタ・フレームワークを作成する前に、次のイベント・システムの前提条件を満たしていることを確認してください。
外部イベント・システムに、次のWebサービスが表示されている。
getNewAlerts
getUpdatedAlerts
acknowledgAlerts
getResponse(オプション)
updateAlert(オプション)
uninitialize(オプション)
initialize(オプション)
setup(オプション)
destroy(オプション)
|
注意: カスタムWebサービスのエンドポイント名は、リストされたものと異なる場合があり、それらはコネクタ・フレームワークでマッピングされます。 |
Webサービスが、ドキュメント・リテラル形式である。
Webサービスが、SOAPヘッダー・ベース認証をサポートしている。
次の項では、イベント・コネクタを作成するために定義が必要な、様々なXMLおよびXSLファイルの詳細を説明します。
次の場所でメタデータ・ファイルを参照することをお薦めします。
$OMS_HOME/sysman/connector
コネクタの.jarファイルは、次の場所で参照できます。
$OMS_HOME/ j2ee/OC4J_EM/applications/em/em/WEB-INF/lib
コネクタ記述子XMLファイルを定義して、コネクタ・メタデータおよびコネクタの構成プロパティ(Webサービスのエンドポイントおよび認証スキーマなど)を記述します。このファイルは、スキーマconnectorType.xsdに準拠する必要があります。
次に、コネクタ記述子XMLファイルの例を示します。各種の要素を定義する必要があります。ハイライトされたテキストを、対応する要素で置き換えてください。
<?xml version='1.0' encoding='UTF-8'?>
<ManagementConnector xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://xmlns.oracle.com/sysman/connector">
<Name>specify the connector name</Name>
<Version>specify the 5-digit version, e.g., 1.0.0.0.0</Version>
<Description>specify a short description</Description>
<Category>EventConnector</Category>
<!-- Category is fixed to EventConnector. -->
<EventConnector>
<!-- If IsNewTargetType is set to true, it means the developers want to define
a new target type to hold external alerts. In that case, targetType.xml and
defaultTargetType.xml need to be shipped in the connector jar. -->
<IsNewTargetType>true</IsNewTargetType>
<EventService>
<Method>getNewAlerts</Method>
<WebServiceEndpoint>
<![CDATA[specify URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>getUpdatedAlerts</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>acknowledgeAlerts</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>setup</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>destroy</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<!-- BaseURL element is for the default UI for event connectors, the following value should not be changed. -->
<BaseURL>/em/console/connector/event/configuration</BaseURL>
</EventConnector>
</ManagementConnector>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://xmlns.oracle.com/sysman/connector"
targetNamespace="http://xmlns.oracle.com/sysman/connector"
elementFormDefault="qualified" >
<xsd:element name="ManagementConnector">
<xsd:annotation>
<xsd:documentation>Deployment Descriptor for Management Connectors</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Version" type="xsd:string"/>
<xsd:element name="Description" type="xsd:string"/>
<xsd:element name="Category">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="EventConnector"/>
<xsd:enumeration value="TicketingConnector"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:choice>
<xsd:element name="EventConnector" type="EventConnector"/>
<xsd:element name="TicketingConnector" type="TicketingConnector"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="EventConnector">
<xsd:sequence>
<xsd:element name="IsNewTargetType" type="xsd:boolean"/>
<xsd:element name="Authentication" type="Authentication" minOccurs="0"/>
<xsd:element name="EventService" type="EventService" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="TargetResponse" type="Response" minOccurs="0"/>
<xsd:element name="BaseURL" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TicketingConnector">
<xsd:sequence>
<xsd:element name="Authentication" type="Authentication" minOccurs="0"/>
<xsd:element name="TicketingService" type="TicketingService" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="BaseURL" type="xsd:string"/>
<xsd:element name="ExternalURL" type="ExternalURL"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EventService">
<xsd:sequence>
<xsd:element name="Method" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="getNewAlerts"/>
<xsd:enumeration value="getUpdatedAlerts"/>
<xsd:enumeration value="acknowledgeAlerts"/>
<xsd:enumeration value="setup"/>
<xsd:enumeration value="initialize"/>
<xsd:enumeration value="uninitialize"/>
<xsd:enumeration value="cleanup"/>
<xsd:enumeration value="updateAlerts"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="WebServiceEndpoint" type="xsd:string"/>
<xsd:element name="SOAPAction" type="xsd:string" minOccurs="0"/>
<xsd:element name="Namespace" type="xsd:string"/>
<xsd:element name="NamespacePrefix" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TicketingService">
<xsd:sequence>
<xsd:element name="Method" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="createTicket"/>
<xsd:enumeration value="updateTicket"/>
<xsd:enumeration value="getTicket"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="WebServiceEndpoint" type="xsd:string"/>
<xsd:element name="SOAPAction" type="xsd:string" minOccurs="0"/>
<xsd:element name="Namespace" type="xsd:string"/>
<xsd:element name="NamespacePrefix" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Authentication">
<xsd:sequence>
<xsd:element name="Username" type="Username"/>
<xsd:element name="Password" type="Password"/>
<xsd:element name="Attribute" type="Attribute" maxOccurs="unbounded" minOccurs="0"/>
<xsd:element name="Data" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Username">
<xsd:sequence>
<xsd:element name="AttributeName" type="xsd:string"/>
<xsd:element name="DisplayName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Password">
<xsd:sequence>
<xsd:element name="AttributeName" type="xsd:string"/>
<xsd:element name="DisplayName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Attribute">
<xsd:sequence>
<xsd:element name="AttributeName" type="xsd:string"/>
<xsd:element name="DisplayName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Response">
<xsd:sequence>
<xsd:element name="ScriptName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ExternalURL">
<xsd:sequence>
<xsd:element name="Pattern" type="xsd:string"/>
<xsd:element name="UserVariable" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
<xsd:element name="SubstitutionVariable" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Webサービスを正常に動作させるには、リクエストXMLファイルおよびリクエストXSLファイルが必要です。たとえば、Microsoft Operations Manager(MOM)ConnectorがMOMへの設定Webサービス・コールの一部として機能するには、設定名および解決状態が必要です。リクエスト・ファイルsetup_request.xmlが、これに使用されます。
表3-1に、作成する必要があるリクエストXMLファイルのリストを示します。指定するファイル名が表内のファイル名と完全に一致していることを確認してください。
| テンプレート | 説明 |
|---|---|
|
|
新規アラートの初期リクエストXMLファイルを作成します。 |
|
generic_request_updatedalerts.xml |
更新アラートの初期リクエストXMLファイルを作成します。 |
|
|
外部イベント・システムにコネクタを登録します。 |
|
|
設定後、外部イベント・システムのコネクタを初期化します。 |
|
uninitialize_request.xml(オプション) |
外部イベント・システムのコネクタを初期化解除します。 |
|
外部イベント・システムのコネクタを登録解除します。 |
|
|
acknowledge_request.xml(オプション) |
承認リクエストを定義し、外部イベント・システムに送信します。 |
次の詳細は、表3-1にリストされたすべてのリクエストXMLファイルに適用されます。
$REGISTRATION_ID$など、$で囲まれた文字列は、置換変数です。これらは、プロパティ名としてこれらの文字列を含むEnterprise Managerリポジトリ内に格納された値で置き換えられます。
|
注意: Enterprise Manager 10gリリース4では、設定に使用可能な置換変数は、$REGISTRATION_ID$のみです。 |
リクエストXMLファイルは、必要に応じて、変換される場合があります。詳細は、デフォルト・リクエストXSLファイルを参照してください。
次の例では、テンプレートのコードについて説明しています。
<?xml version="1.0" encoding="utf-8" ?>
<getAlerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericGetAlertRequest.xsd"
xmlns="http://xmlns.oracle.com/sysman/connector">
<registrationId>$REGISTRATION_ID$</registrationId>
<maxCount>100</maxCount> <typeOfAlerts> NewAlerts</typeOfAlerts>
<getAlertsData>
<ConfigParam>
<Name></Name>
<Value></Value>
</ConfigParam>
</getAlertsData></getAlerts
generic_request_updatedalerts.xml
<?xml version="1.0" encoding="utf-8" ?>
<getAlerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericGetUpdateRequest.xsd"
xmlns="http://xmlns.oracle.com/sysman/connector">
<registrationId>$REGISTRATION_ID$</registrationId>
<maxCount>100</maxCount>
<typeOfAlerts> UpdatedAlerts</typeOfAlerts>
<getAlertsData>
<ConfigParam>
<Name></Name>
<Value></Value>
</ConfigParam>
</getAlertsData>
</getAlerts
<?xml version="1.0" encoding="UTF-8" ?>
<setup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericSetupRequest.xsd"
xmlns="http://xmlns.oracle.com/sysman/connector">
<setupname>$SETUP_NAME$</setupname>
<setupData>
<ConfigParam>
<Name></Name>
<Value></Value>
</ConfigParam>
</setupData>
</setup
<?xml version="1.0" encoding="UTF-8" ?>
<initialize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/sysman/connector">
<registrationId>$REGISTRATION_ID$</registrationId>
<typeofAlerts>NewAlerts UpdatedAlerts</typeofAlerts>
</initialize>
uninitialize_request.xml(オプション)
<?xml version="1.0" encoding="UTF-8" ?>
<uninitialize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/sysman/connector">
<registrationId>$REGISTRATION_ID$</registrationId>
<typeofAlerts>NewAlerts UpdatedAlerts</typeofAlerts>
</uninitialize>
<?xml version="1.0" encoding="UTF-8" ?>
<cleanup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/sysman/connector">
<registrationId>$REGISTRATION_ID$</registrationId>
<cleanupData>
<ConfigParam>
<Name></Name>
<Value></Value>
</ConfigParam>
</cleanupData>
</cleanup>
acknowledge_request.xml(オプション)
<?xml version="1.0" encoding="utf-8" ?>
<getAlerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericGetAlertRequest.xsd"
xmlns="http://xmlns.oracle.com/sysman/connector">
<registrationId>$REGISTRATION_ID$</registrationId>
<maxCount>100</maxCount>
<typeOfAlerts> NewAlerts</typeOfAlerts>
<getAlertsData>
<ConfigParam>
<Name></Name>
<Value></Value>
</ConfigParam>
</getAlertsData></getAlerts>
表3-2に、イベント・コネクタを作成するために定義する必要のあるリクエストXSLファイルのリストを示します。変換が必要ない場合は、次のXSLファイルを定義して変更なしにコンテンツをパススルーできます。
| ファイル名 | 説明 |
|---|---|
|
setup_request.xsl |
|
|
initialize_request.xsl |
|
|
getNewAlert_request.xsl |
|
|
getUpdatedAlert_request.xsl |
|
|
acknowledge_request.xsl |
|
|
uninitialize_request.xsl |
|
|
cleanup_request.xsl |
|
レスポンスXSLファイルは、外部イベント・システムからのアラートをEnterprise Managerにロードする前にどのように変換するかを定義する変換ファイルです。
表3-3に、作成する必要があるレスポンスXMLファイルのリストを示します。指定するファイル名が表内のファイル名と完全に一致していることを確認してください。
| ファイル名 | 説明 |
|---|---|
|
|
外部イベント・システムからの受信レスポンスを、登録IDをEnterprise Managerで理解できるように変換します。 以降、外部システムは、このIDを使用してイベント・コネクタを識別します。 Enterprise Managerでレスポンスを理解してリポジトリに追加できるよう、外部システムからのレスポンスは、次の形式に変換される必要があります。
|
|
|
新規の受信アラートをEnterprise Managerの基本アラート・スキーマに変換します。 |
|
受信中の更新アラートをEnterprise Managerの基本アラート・スキーマに変換します。 |
次の例では、これらのファイルのコードについて説明しています。
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0"
xmlns:ns0="http://www.microsoft.com/EnterpriseManagement/Mom/Connector/V2"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:a="http://xmlns.oracle.com/sysman/connector">
<xsl:template match="/">
<ns0:registrationId>
<xsl:value-of select="ns0:SetupWithResolutionStateResponse/ns0:SetupWithResolutionStateResult"/>
</ns0:registrationId>
</xsl:template>
</xsl:stylesheet>
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<EMAlerts>
<xsl:for-each select="getNewAlertsReturn/item">
<Alert>
<key1>
<xsl:value-of select="id"/>
</key1>
<key2>
<xsl:value-of select="application"/>
</key2>
<key3>
<xsl:value-of select="messageGroup"/>
</key3>
<key4>
<xsl:value-of select="node"/>
</key4>
<key5>
<xsl:value-of select="serviceName"/>
</key5>
<message>
<xsl:value-of select="messageText"/>
</message>
<producerID>xyz</producerID>
<targetName>
<xsl:value-of select="node"/>
</targetName>
<targetType>hp_managed_host</targetType>
<timeStamp>2006-10-09T09:23:32.6430000-07:00</timeStamp>
<metricName>
<xsl:value-of select="source"/>
</metricName>
<category>
<xsl:value-of select="messageGroup"/>
</category>
<severity>
<xsl:variable name="ovoseverity"><xsl:value-of select="severity"/></xsl:variable>
<xsl:variable name="critical">32</xsl:variable>
<xsl:variable name="major">128</xsl:variable>
<xsl:variable name="warning">16</xsl:variable>
<xsl:variable name="minor">64</xsl:variable>
<xsl:variable name="normal">8</xsl:variable>
<xsl:variable name="unknown">4</xsl:variable>
<xsl:variable name="none">0</xsl:variable>
<xsl:variable name="emclear">Clear</xsl:variable>
<xsl:variable name="emcritical">Critical</xsl:variable>
<xsl:variable name="emwarning">Warning</xsl:variable>
<xsl:variable name="eminformational">Informational</xsl:variable>
<xsl:choose>
<xsl:when test="$ovoseverity = $critical">
<xsl:value-of select="$emcritical"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$ovoseverity = $unknown">
<xsl:value-of select="$eminformational"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$ovoseverity = $none">
<xsl:value-of select="$eminformational"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$ovoseverity = $warning">
<xsl:value-of select="$emwarning"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$ovoseverity = $major">
<xsl:value-of select="$emcritical"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$ovoseverity = $minor">
<xsl:value-of select="$eminformational"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$ovoseverity = $normal">
<xsl:value-of select="$emclear"/>
</xsl:when>
</xsl:choose>
</severity>
</Alert>
</xsl:for-each>
</EMAlerts>
</xsl:template>
</xsl:stylesheet>
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:a="http://www.microsoft.com/EnterpriseManagement/Mom/Connector/V2">
<xsl:template match="/">
<EMAlerts>
<xsl:for-each select="a:GetDataResponse/a:GetDataResult/a:UpdatedAlerts/a:Alert">
<Alert>
<key1>
<xsl:value-of select="a:AlertId"/>
</key1>
<key2>
<xsl:value-of select="a:ComputerName"/>
</key2>
<key3>
<xsl:value-of select="a:ComputerDomain"/>
</key3>
<key4>
<xsl:value-of select="a:Name"/>
</key4>
<key5>
<xsl:value-of select="a:RuleId"/>
</key5>
<message>
<xsl:value-of select="a:Description"/>
</message>
<producerID>xyz</producerID>
<targetName>
<xsl:value-of select="a:ComputerName"/>
</targetName>
<targetType>hp_managed_host</targetType>
<timeStamp>
<xsl:value-of select="a:TimeLastModified"/>
</timeStamp>
<username></username>
<password></password>
<metricName>
<xsl:value-of select="a:Source"/>
</metricName>
<category>
<xsl:value-of select="a:Source"/>
</category>
<value>
<xsl:value-of select="a:AckId"/>
</value>
<severity>
<xsl:variable name="momseverity" select="a:Severity"/>
<xsl:variable name="criticalerror">CriticalError</xsl:variable>
<xsl:variable name="error">Error</xsl:variable>
<xsl:variable name="warning">Warning</xsl:variable>
<xsl:variable name="information">Information</xsl:variable>
<xsl:variable name="securityissue">SecurityIssue</xsl:variable>
<xsl:variable name="unknown">Unknown</xsl:variable>
<xsl:variable name="serviceunavailable">ServiceUnavailable</xsl:variable>
<xsl:variable name="success">Success</xsl:variable>
<xsl:variable name="emclear">Clear</xsl:variable>
<xsl:variable name="emcritical">Critical</xsl:variable>
<xsl:variable name="emwarning">Warning</xsl:variable>
<xsl:variable name="eminformational">Informational</xsl:variable>
<xsl:choose>
<xsl:when test="$momseverity = $criticalerror">
<xsl:value-of select="$emcritical"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $unknown">
<xsl:value-of select="$eminformational"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $error">
<xsl:value-of select="$emcritical"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $securityissue">
<xsl:value-of select="$emcritical"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $warning">
<xsl:value-of select="$emwarning"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $serviceunavailable">
<xsl:value-of select="$eminformational"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $information">
<xsl:value-of select="$eminformational"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="$momseverity = $success">
<xsl:value-of select="$emclear"/>
</xsl:when>
</xsl:choose>
</severity>
</Alert>
</xsl:for-each>
</EMAlerts>
</xsl:template>
</xsl:stylesheet>
ターゲット・タイプ定義XMLファイルは、取得した外部イベントが格納されるターゲット・タイプを定義します。たとえば、MOMからのアラートの場合、mom_managed_hostです。このファイルは、targetType.xmlという名前にする必要があります。
<?xml version="1.0" encoding="UTF-8" ?>
<TargetMetadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
TYPE="hp_managed_host" TYPEDISPLAYNAME="OVO Managed Host" >
<Metrics>
<Metric>
<MetricName>
Response
</MetricName>
<Display>Response</Display>
<Category>Status</Category>
<ProducerId>xyz</ProducerId>
<MetricColumns>
<Column>Status</Column>
</MetricColumns>
<!-- No other Metric Columns should be defined for response Metric -->
</Metric>
<Metric>
<MetricName>Generic_Alert</MetricName>
<Display>Generic_Alert</Display>
<Category>Generic_Alert</Category>
<ProducerId>xyz</ProducerId>
<MetricColumns>
<Column1>AlertId</Column1>
<Column2>ComputerName</Column2>
<Column3>DomainName</Column3>
<Column4>Source</Column4>
<Column5>Rule</Column5>
</MetricColumns>
</Metric>
</Metrics>
<InstanceProperties>
<InstanceProperty NAME="HOSTNAME" CREDENTIAL="FALSE" OPTIONAL="FALSE">
<Display>
<Label>HOSTNAME_DISPLAY</Label>
<ShortName>HOSTNAME</ShortName>
</Display>
</InstanceProperty>
</InstanceProperties>
</TargetMetadata>
ターゲット・タイプ定義は、コネクタのデプロイ中にロードされます。
定義するターゲット・タイプに基づいて、デフォルトのターゲット・インスタンス定義を指定します。ファイルを、defaultTargetInstance.xml.のように名前付けします。ファイルは、コネクタのデプロイ時に読み込まれ、デフォルト・ターゲット・インスタンスが作成されます。
デフォルト・ターゲット・インスタンスを、次のように名前付けします。
generic_target_type_name.
たとえば、MOM Connectorに対して定義されるターゲット・タイプをmom_managed_host、そのデフォルト・ターゲット・インスタンスをgeneric_mom_managed_host.とします。
デフォルトで、デフォルト・ターゲット・インスタンスは、他に特定のターゲット・インスタンスが作成されていない場合、すべての受信アラートを保持します。
ターゲット・タイプがEnterprise Managerにすでに存在している場合、再作成しようとしても、コネクタは再登録されません。したがって、構成の変更は意図したとおりに実行されません。
getResponse操作は、Webサービスにマップされます。コネクタ・フレームワークは、これを使用して、定義済ターゲット・タイプに対するEnterprise Manager内の既存のターゲットのレスポンスを定義します。
表3-4に、メタデータの詳細を示します。必須のメタファイルは、デフォルト・リクエストXMLファイルに記載されている他のメソッドと類似しています。
|
注意: レスポンス・メトリック収集スクリプトは、MOM Connectorの作成に適用されません。 |
| 値 | 説明 |
|---|---|
|
getResponse_request.xml |
|
|
getResponse_request.xsl |
|
戻されたステータスは、次のステータス・コードに変換される必要があります。
0: ターゲット停止、1: ターゲット起動
いずれの値も適用されない場合、ターゲット・ステータスには、Pendingが表示されます。
レスポンス・ステータスを決定するために、Enterprise Managerコネクタは、次の形式でgetResponse_request.xmlを送信します。
<?xml version="1.0" encoding="utf-8" ?>
<GetResponseRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Target>
<Name>SMP-MPI2</Name>
<InstanceProperty>
<Name>host name</Name>
<Value>smp-mpi2.us.oracle.com</Value>
</InstanceProperty>
<!-- InstanceProperty
can repeat multiple times. InstanceProperty are the
properties that can identify the managed entity in the
external system. -->
</Target>
<!-- Target element can repeat. -->
<Attribute>
<Name>RegistrationId</Name>
<Value>$REGISTRATION_ID$</Value>
<!-- one example is RESITRATION_ID,
<Name>registrationId</Name><Value>$REGISTRATION_ID$</Value>
--> </Attribute> </GetResponseRequest>
この場合、getResponse_request.xslという名前のXSLファイルを定義して、Enterprise Managerで理解できる次のXMLフォーマットでEnterprise Managerにレスポンスを計算して返す必要があります。
<?xml version="1.0" encoding="utf-8" ?>
<GetResponseReponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Target>
<Name>SMP-MPI2</Name>
<Type>hp_managed_node</Type>
<Status>0<Status>
</Target> </GetResponseResponse>
前述のレスポンスに基づき、ターゲットのステータスがEnterprise Manager内で更新されます。
コネクタの統合を完了するには、すべてのXMLおよびXSLファイル(「XMLおよびXSLファイルの定義」の項で定義)を.jarファイルとしてパッケージした後、コネクタをデプロイ、登録および構成します。手順は、次のとおりです。
Oracle管理サービス(OMS)に.jarファイルをコピーします。OMSが複数ある場合は、すべてのOMSに対して.jarファイルをコピーする必要があります。
すべてのOMSで次のコマンドを実行します。
emctl extract_jar connector jar_file_name connector_name
ファイルは.jarファイルから次のディレクトリに抽出されます。
$ORACLE_HOME/sysman/connector/connector name_wo_space
コマンドで、connector_name内のスペースは、connector_name_wo_spaceのアンダースコア(_)に置換されます。
次のコマンドを実行して、コネクタをデプロイします。
emctl register_connector connector connectorType.xml server name port databaseSid/Service_Name_for_RAC_DB username password
表3-5に、emctlパラメータとそれぞれの説明を示します。
Enterprise Managerコンソールにログインし、次の項で説明するようにイベント・コネクタを構成します。
スーパー管理者として、Enterprise Manager Grid Controlコンソールから「設定」をクリックします。
「設定の概要」ページが表示されます。
「管理コネクタ」をクリックします。
管理コネクタの設定ページが表示されます。このページに、定義したコネクタ名を含む行が表示されます。
登録したコネクタの「構成」アイコンをクリックします。
コネクタの構成ページが表示され、「管理コネクタの構成」ページの「一般」タブが表示されます。
アスタリスク(*)で示されるすべての必須フィールドを構成します。
「OK」をクリックします。
「管理コネクタの設定」ページが再表示されます。定義したコネクタの行の「構成済」列に、チェックマークが表示されます。
イベント・コネクタのデプロイまたはインストール時に、デフォルト・ターゲット・インスタンスが作成されます。他にターゲットが作成されていない場合、デフォルト・ターゲット・インスタンスは、このイベント・コネクタで取得されたすべての外部イベントを保持します。外部イベントを保持する特定のターゲットを作成することもできます。
追加ターゲット・インスタンスを作成するには、次の操作を行います。
Enterprise Managerコンソールから、「設定」をクリックします。
左マージンに設定リンクが表示されます。
「管理コネクタ」をクリックします。
Management Connectorのホームページが表示されます。このページに、定義したコネクタ名を含む行が表示されます。
イベント・コネクタの「構成」アイコンをクリックし、その後「ターゲット」タブをクリックします。
「ターゲット」ページが表示されます。
「ターゲット」ページでは、次の操作を実行できます。
ターゲットを追加するには、「ターゲット名」および他の必須プロパティを指定し、「OK」をクリックします。
追加したターゲットを削除するには、ターゲットを選択し、「削除」をクリックした後に「OK」をクリックします。
(有効でないかまたは削除された)汎用ターゲットを有効化するには、「有効化」をクリックします。
変換後、Enterprise Managerで定義したターゲット名と一致するターゲット名が受信アラートに含まれている場合、そのアラートはそのターゲットに関連付けられます。そうでない場合、アラートはデフォルト・ターゲット・インスタンスgeneric_target_typeにリダイレクトされます。たとえば、コネクタにmy_managed_deviceというターゲット・タイプが含まれている場合、デフォルト・ターゲット・インスタンスはgeneric_my_managed_deviceとなります。
targetType.xmlでインスタンス・プロパティを定義して、次の例のように複数のインスタンス・プロパティを追加できます。
<InstanceProperty NAME="HOSTNAME" CREDENTIAL="FALSE" OPTIONAL="FALSE">
<Display>
<Label>HOSTNAME</Label>
<ShortName>HOSTNAME</ShortName>
</Display>
</InstanceProperty>
インスタンス・プロパティは、ターゲットを識別する属性である必要があります。たとえば、ホスト名のみでターゲットを一意に識別できる場合、インスタンス・プロパティはhostnameのみとなります。
Enterprise Manager 10gリリース4以降では、Webサービス・インタフェースを介して、アラートを外部システムへリアルタイムで送信できます。送信するアラートのタイプ(本番データベース上のクリティカル・アラートなど)を選択できます。Enterprise Manager 10gリリース4では、メトリック・アラートがサポートされています。外部システムを強制的に登録して、リアルタイムで情報を取得することもできます。
アラートを送信するには、外部システムで次のものがサポートされている必要があります。
次の項で説明されているリテラル-ドキュメント形式のWebサービス、create eventおよびupdate event
IPベース認証またはSOAPヘッダー・ベース認証
次の項で説明されているように、アラート交換用に作成されたコネクタも変更する必要があります。
次のマッピングが必要です。
createEvent
updateEvent
太字で示されたコードは、createEventおよびupdateEventに対する追加です。
<ManagementConnector xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://xmlns.oracle.com/sysman/connector">
<Name>specify the connector name</Name>
<Version>specify the 5-digit version, e.g., 1.0.0.0.0</Version>
<Description>specify a short description</Description>
<Category>EventConnector</Category>
<!-- Category is fixed to EventConnector. -->
<EventConnector>
<!-- If IsNewTargetType is set to true, it means the developers want to define
a new target type to hold external alerts. In that case, targetType.xml and
defaultTargetType.xml need to be shipped in the connector jar. -->
<IsNewTargetType>true</IsNewTargetType>
<EventService>
<Method>getNewAlerts</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>getUpdatedAlerts</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>acknowledgeAlerts</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>setup</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>destroy</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>createEvent</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<EventService>
<Method>updateEvent</Method>
<WebServiceEndpoint>
<![CDATA[specify the URL]]>
</WebServiceEndpoint>
<SOAPAction>specify the SOAP action</SOAPAction>
<Namespace>specify the namespace</Namespace>
<NamespacePrefix>specify the namespace prefix</NamespacePrefix>
</EventService>
<!-- BaseURL element is for the default UI for event connectors, the following value should not be changed. -->
<BaseURL>/em/console/connector/event/configuration</BaseURL>
</EventConnector>
</ManagementConnector>
次のリクエスト変換ファイルが必要です。
createEvent_request.xsl
updateEvent_request.xsl
EMEvent.xsdスキーマを使用して、外部システムへのアラート送信時にマッピングできるようにするEnterprise Managerのフィールドを決定できます。このスキーマは、次のパスにあります。
$ORACLE_HOME/sysman/connector/common/schema/EMEvent.xsd
ファイルおよびスキーマの例は、次のとおりです。
createEvent_request.xsl変換ファイルの例
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="..."
xmlns:a="http://xmlns.oracle.com/sysman/connector">
<xsl:template match="a:EMEvent">
<ns0:InsertAlerts>
<ns0:registrationId>
<xsl:for-each select="a:Property">
<xsl:if test="a:Name = 'REGISTRATION_ID'">
<xsl:value-of select="a:Value"/>
</xsl:if>
</xsl:for-each>
</ns0:registrationId>
<ns0:alerts>
<ns0:AlertInsert>
<ns0:Name>
<xsl:value-of select="a:MetricColumn"/>
</ns0:Name>
<ns0:ComputerName>
<xsl:value-of select="a:TargetHost"/>
</ns0:ComputerName>
<ns0:ComputerDomain></ns0:ComputerDomain>
<ns0:Description>
<xsl:value-of select="a:CollectionTime"/>
Received alert reported by Oracle Enterprise Manager:
Target Type: <xsl:value-of select="a:TargetType"/>
Target Name: <xsl:value-of select="a:TargetName"/>
Metric Name: <xsl:value-of select="a:MetricName"/>
Metric Column: <xsl:value-of select="a:MetricColumn"/>
<xsl:choose>
<xsl:when test="a:KeyValues">
Key Values: <xsl:for-each select="a:KeyValues">
<xsl:value-of select="."/>;
</xsl:for-each>
</xsl:when>
</xsl:choose>
Severity: <xsl:value-of select="a:Severity"/>
<xsl:choose>
<xsl:when test="normalize-space(a:NotificationRuleName)
!= ''">
Notification Rule: <xsl:value-of
select="a:NotificationRuleName"/>
</xsl:when>
</xsl:choose>
Message: <xsl:value-of select="a:Message"/>
</ns0:Description>
<ns0:Severity>
<xsl:choose>
<xsl:when test="a:SeverityCode = '15'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '18'">Information</xsl:when>
<xsl:when test="a:SeverityCode = '20'">Warning</xsl:when>
<xsl:when test="a:SeverityCode =
'25'">CriticalError</xsl:when>
<xsl:when test="a:SeverityCode = '115'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '125'">Warning</xsl:when>
<xsl:when test="a:SeverityCode = '215'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '225'">Warning</xsl:when>
<xsl:when test="a:SeverityCode = '315'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '325'">Error</xsl:when>
<xsl:otherwise>Error</xsl:otherwise>
</xsl:choose>
</ns0:Severity>
<ns0:Source>
<xsl:value-of select="a:TargetType"/>: <xsl:value-of select="a:TargetName"/>
</ns0:Source>
<ns0:TimeRaised>
<xsl:value-of select="a:CollectionTime"/>
</ns0:TimeRaised>
</ns0:AlertInsert>
</ns0:alerts>
</ns0:InsertAlerts>
</xsl:template>
</xsl:stylesheet>
updateEvent_request.xsl変換ファイルの例
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="..."
xmlns:a="http://xmlns.oracle.com/sysman/connector">
<xsl:template match="a:EMEvent">
<ns0:UpdateAlerts>
<ns0:registrationId>
<xsl:for-each select="a:Property">
<xsl:if test="a:Name = 'REGISTRATION_ID'">
<xsl:value-of select="a:Value"/>
</xsl:if>
</xsl:for-each>
</ns0:registrationId>
<ns0:updatedAlerts>
<ns0:AlertUpdate>
<ns0:AlertId>
<xsl:value-of select="a:ExternalEventId"/>
</ns0:AlertId>
<ns0:OwnerNameUseExisting>true</ns0:OwnerNameUseExisting>
<ns0:SeverityUseExisting>false</ns0:SeverityUseExisting>
<xsl:variable name="Severity">
<xsl:choose>
<xsl:when test="a:SeverityCode = '15'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '18'">Information</xsl:when>
<xsl:when test="a:SeverityCode = '20'">Warning</xsl:when>
<xsl:when test="a:SeverityCode = '25'">CriticalError</xsl:when>
<xsl:when test="a:SeverityCode = '115'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '125'">Warning</xsl:when>
<xsl:when test="a:SeverityCode = '215'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '225'">Warning</xsl:when>
<xsl:when test="a:SeverityCode = '315'">Success</xsl:when>
<xsl:when test="a:SeverityCode = '325'">Error</xsl:when>
<xsl:otherwise>Error</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<ns0:Severity>
<xsl:value-of select="$Severity"/>
</ns0:Severity>
<xsl:choose>
<xsl:when test="a:SeverityCode = '15'">
<ns0:ResolutionStateUseExisting>false</ns0:ResolutionStateUseExisting>
<ns0:ResolutionState>255</ns0:ResolutionState>
</xsl:when>
<xsl:otherwise>
<ns0:ResolutionStateUseExisting>true</ns0:ResolutionStateUseExisting>
<ns0:ResolutionState>0</ns0:ResolutionState>
</xsl:otherwise>
</xsl:choose>
<ns0:LastModifiedByUseExisting>true</ns0:LastModifiedByUseExisting>
</ns0:AlertUpdate>
</ns0:updatedAlerts>
</ns0:UpdateAlerts>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://xmlns.oracle.com/sysman/connector"
targetNamespace="http://xmlns.oracle.com/sysman/connector"
elementFormDefault="qualified">
<xsd:element name="EMEvent" type="EMEventType"/>
<xsd:complexType name="EMEventType">
<xsd:sequence>
<xsd:element name="EventGuid" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="ExternalEventId" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="ViolationId" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="TargetType" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="TargetName" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="MetricName" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="MetricColumn" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="KeyValues" type="xsd:string" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="Message" type="xsd:string" minOccurs="1"
maxOccurs="1" nillable="true"/>
<xsd:element name="Severity" type="SeverityType" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="SeverityCode" type="SeverityCodeType"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="CollectionTime" type="xsd:dateTime"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="EMUser" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="NotificationRuleName" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="TargetHost" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="TargetTimezone" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="Property" type="PropertyType" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PropertyType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="SeverityType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Clear"/>
<xsd:enumeration value="Info"/>
<xsd:enumeration value="Warning"/>
<xsd:enumeration value="Critical"/>
<xsd:enumeration value="Agent Unreachable Clear"/>
<xsd:enumeration value="Blackout End"/>
<xsd:enumeration value="Blackout Start"/>
<xsd:enumeration value="Metric Error End"/>
<xsd:enumeration value="Metric Error Start"/>
<xsd:enumeration value="Unknown"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SeverityCodeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="15"/>
<xsd:enumeration value="18"/>
<xsd:enumeration value="20"/>
<xsd:enumeration value="25"/>
<xsd:enumeration value="115"/>
<xsd:enumeration value="125"/>
<xsd:enumeration value="215"/>
<xsd:enumeration value="225"/>
<xsd:enumeration value="315"/>
<xsd:enumeration value="325"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
次のレスポンス変換ファイルが必要です。
createEvent_response.xsl
updateEvent_response.xsl
EMEventResponse.xsdスキーマを使用して、外部システムからのレスポンスをEnterprise Managerで期待されるレスポンスに変換する方法を決定できます。このスキーマは、次のパスにあります。
$ORACLE_HOME/sysman/connector/common/schema/EMEventResponse.xsd
変換後、Enterprise Managerでは<SuccessFlag>と、値に応じて次のいずれかの要素が必要とされます。
true: Enterprise Managerでは、外部システムのアラートのID、<externalEventID>が必要とされます。これは、将来アラートを更新する際に使用されます。
false: Enterprise Managerでは、<ErrorMessage>が必要とされます。Enterprise Managerにより、アラートにexternalEventIDまたはErrorMessageの注釈が付けられます。
ファイルおよびスキーマの例は、次のとおりです。
createEvent_response.xslレスポンス変換ファイルの例
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="..."
xmlns:a="http://xmlns.oracle.com/sysman/connector">
<xsl:template match="ns0:InsertAlertsResult">
<a:EMEventResponse>
<xsl:choose>
<xsl:when test="ns0:InsertedAlerts/ns0:SuccessfulAlertInsert/ns0:NewAlertId">
<a:SuccessFlag>true</a:SuccessFlag>
<a:ExternalEventId>
<xsl:value-of select="ns0:InsertedAlerts/ns0:SuccessfulAlertInsert/ns0:NewAlertId"/>
</a:ExternalEventId>
</xsl:when>
<xsl:otherwise>
<a:SuccessFlag>false</a:SuccessFlag>
<a:ErrorMessage>
<xsl:value-of select="ns0:FailedAlerts/ns0:FailedAlertInsert/ns0:Error"/>
</a:ErrorMessage>
</xsl:otherwise>
</xsl:choose>
</a:EMEventResponse>
</xsl:template>
</xsl:stylesheet>
updateEvent_response.xslレスポンス変換ファイルの例
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="..."
xmlns:a="http://xmlns.oracle.com/sysman/connector">
<xsl:template match="ns0:UpdateAlertsResult">
<a:EMEventResponse>
<xsl:choose>
<xsl:when test="ns0:UpdatedAlerts/ns0:guid">
<a:SuccessFlag>true</a:SuccessFlag>
<a:ExternalEventId>
<xsl:value-of select="ns0:UpdatedAlerts/ns0:guid"/>
</a:ExternalEventId>
</xsl:when>
<xsl:otherwise>
<a:SuccessFlag>false</a:SuccessFlag>
<a:ErrorMessage>
<xsl:value-of select="ns0:FailedUpdatedAlerts/ns0:FailedAlertUpdate/ns0:Error"/>
</a:ErrorMessage>
</xsl:otherwise>
</xsl:choose>
</a:EMEventResponse>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://xmlns.oracle.com/sysman/connector"
targetNamespace="http://xmlns.oracle.com/sysman/connector"
elementFormDefault="qualified">
<xsd:element name="EMEventResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="SuccessFlag" type="xsd:boolean"
minOccurs="1" maxOccurs="1"/>
<xsd:choice>
<xsd:element name="ExternalEventId" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="ErrorMessage" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
この項では、Enterprise Managerでメトリックを定義および管理する方法について説明します。
targetType.xmlファイル内で、新しいターゲット・タイプに対して、2つ以上のメトリックを定義します。2つの必須メトリックは次のとおりです。
Response
Generic_Alert
<Metrics>
<Metric>
<MetricName>Response</MetricName>
<Display>Response</Display>
<Category>Status</Category>
<ProducerId>MySystem</ProducerId>
<MetricColumns>
<Column>Status</Column>
</MetricColumns>
<!-- No other Metric Columns should be defined for response Metric -->
</Metric> <Metric>
<MetricName>Generic_Alert</MetricName>
<Display>Generic_Alert</Display>
<Category>Generic_Alert</Category>
<ProducerId>MySystem</ProducerId>
<MetricColumns>
<Column1>AlertId</Column1>
</MetricColumns>
</Metric></Metrics>
外部アラートが取得されている場合、それらはメトリック(レスポンスXSLT内の<MetricName/>要素)にマップされます。メトリックがすでに定義済の場合、アラートはそれらに関連付けられます。定義済でない場合、Generic_Alertと同じ構造を持つが名前は異なるGeneric_Alertをテンプレートとして使用して、即時に新規メトリックが作成されます。
最大50のメトリックが即時に作成されます。それを超えると、(既存のメトリックに関連付けできない)アラートが、Generic_Alertに関連付けられます。
次の例に示すように、最大5つまでのキー・フィールドを指定できます。1つのキー・フィールド(Alert IDと同等)は、必須です。Column 1は、アラートの一意性を識別します。他のColumnはオプションです。
<Column1>AlertId</Column1>
<Column2>Ackid</Column2> <Column3>customfield1</Column3> <Column4>ruleid</Column4> <Column5>description</Column5>
定義したキー・フィールドがgetNewAlerts_response.xslであり、getUpdatedAlerts_response.xslに適切な値が書き込まれていることを確認してください。
例:
<key1> <xsl:value-of select="a:AlertId"/> </key1>
<key2>
<xsl:value-of select="a:AckId"/>
</key1>
<key3>
<xsl:value-of select="a:customfield1"/>
</key3>
<key4> <xsl:value-of select="a:ruleId"/> </key4>
<key5> <xsl:value-of select="a:description"/> </key5>
Generic_Alertメトリックに定義したキー・フィールドのみ定義します。たとえば、Generic_Alertに対して1つのキー・フィールドのみ定義している場合、<key1/>要素のみ変換が必要となります。XSLT内に追加の値を追加している場合、それらはアラート処理中に削除されます。
フィールドが宣言済であり、割当済の値がない場合、アラートは拒否され、ログ・ファイルにログされます。つまり、アラートは不適切な状態として処理されます。たとえば、AlertIdが定義されていて、それがアラートに対する一意の識別子であると仮定します。この場合、値が送信されない場合には、アラートは無効な状態であるとみなされ、その結果、拒否されます。
外部イベント・システムとEnterprise Manager間の接続を確立するプロトコルとしてHTTPSを選択している場合は、この項で説明している手順に従ってください。
外部イベント・システムに対する証明書リクエスト・ファイルを作成し、たとえばVeriSignなどの認証局に送信します。
|
注意: 証明書リクエスト・ファイルは、外部イベント・システムで使用されるWebサーバーに依存します。 |
証明書の取得後、外部イベント・システムで使用されているWebサーバーにインポートします。インポート・メカニズムは、外部イベント・システムで使用されているWebサーバーによって異なります。
|
注意: Oracle Wallet Managerは、OMS上の$ORACLE_HOME/binで参照できます。詳細は、『Oracle Application Server管理者ガイド』を参照してください。 |
スーパー管理者として、次のコマンドとともにorapki utilityを使用して、ウォレットを作成します。
orapki wallet create -wallet client -auto_login
|
注意: orapkiは、OMS上の$ORACLE_HOME/binで参照できます。 |
次のコマンドを使用して、信頼できる証明書をウォレットに追加します。
orapki wallet add -wallet client -trusted_cert -cert verisignCert.cer
ウォレットのコンテンツを表示するには、次のコマンドを実行します。
orapki wallet display -wallet client
ewallet.p12という名前のファイルが有効であることを確認します。
Oracle Wallet Managerで、クライアント証明書ewallet.p12を開きます。
信頼できる証明書の選択へ進み、メイン・メニューで「操作」を選択します。
「すべての信頼できる証明書のエクスポート」を選択します。
ファイルをcertdb.txtという名前で保存します。
certdb.txtを、コネクタのホーム・ルート・ディレクトリ($OMS_HOME/sysman/connector)に配置します。
コネクタのホーム・ルート・ディレクトリにすでにcertdb.txtが存在する場合は、このファイルを開き、作成したcertdb.txtファイルのコンテンツを既存のコンテンツに追加します。
これで、Java SSLでこのファイルを使用し、情報を取得できるようになります。
|
関連項目: ウォレットの作成の詳細は、『Oracle Database Advanced Security管理者ガイド』の、orapkiを使用したOracleウォレットの作成および表示に関する項を参照してください。 |