IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Autonomic computing  >

WEF – ログの標準フォーマット – をGLAで実現する

CBEとWEFのマッピング

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

原文はこちら

原文はこちら


レベル: 中級

Abdi Salahshour (abdis@us.ibm.com), Senior Software Engineer, IBM 
Jane Fang (janefang@ca.ibm.com), Software Engineer, IBM Japan

2007年 11月 20日

今回は、Common Base Event と WSDM(Web Services Distributed Management)Event Format(WEF)間のマッピングを詳しく見てみましょう。これは、既にCommon Base Event フォーマットを採用していて、さらに WEF イベントに変換する必要があるというケースを想定したマッピングで、具体的にはCommon Base Event アダプターを WEF アダプターに変換します。

はじめに

最初にいくつか用語の説明をしましょう。ジェネリック・ログ・アダプター(GLA)は、ログ・イベントのフォーマットを独自仕様(ネイティブ・フォーマット)から Common Base Event 1.0.1 フォーマットに変換するツールです。IBM® のオートノミック・コンピューティング・ツールキットには、280 を超えるログをサポートする GLA の変換アダプターが含まれていて、ログ・アンド・トレース・アナライザー(問題判別ツール)で使用されています。Common Base Event フォーマットは2005年にOASIS(Organization for Advancement of Structured Information Standard)WSDM Technical Committee に提出され、WEF(WSDM Event Format)のベースとして採用されています。Common Base Event をさらに WEF イベントに変換する必要がある場合には、この記事で説明するCommon Base Event と WEF のマッピングや Common Base Event アダプターを WEF アダプターに変換する方法が役に立つでしょう。

イベントとは、プロセスの開始や進行、終了などのシステム動作全般を可視化したものです。もちろん局所的な状況にすぎないこともありますが、ハイレベルのシステム管理に必要な重要情報を提供する場合もあります。つまり、複雑なシステムが通信を行うためには、事象や状況の結果データをイベントで送信する必要があるといえます。

IT システムの稼動中に生成されたイベントを、共通フォーマットである Common Base Event を用いて表すことで、ロギングや管理、問題判別、オートノミック・コンピューティングおよび企業内のオンデマンド・ビジネス機能のサポートといった多様なコンポーネント間の通信効率を向上させることができます。Common Base Eventの目的は、イベントの正確さの保証、細部の修正、フォーマットの標準化によって堅牢で管理が容易なシステムの設計を支援することです。すなわち、高品質なイベント・データが、精度の高い企業システム管理を可能にするということです。

ジェネリック・ログ・アダプター(GLA)は、このような機能をJava™ ライブラリーのフレームワークとして提供しています。このライブラリーを呼び出すと、ログ・イベントをネイティブ・フォーマットから Common Base Event の変換、Common Base Event を WEF イベントへ変換またはその逆変換を実行できます。また、多くの主要なプロダクト・ログ用の独自アダプターとしても使用できます。

Common Base Event の定義では、基本的なメタデータの定義および要件を定義する以外に、以下の情報を公開するプロパティーの指定により、データの完全性を保証します。

  • イベントを報告したコンポーネント
  • 影響を受けるコンポーネント(報告したコンポーネントと同じになる場合もある)
  • 発生した状況の一般的な説明
  • 他のイベントとの相互関係を示すのに使用できるコンテンツ

2005 年 3 月、OASIS WSDM Technical Committee はMUWS 1.1(Web Services Distributed Management: Management Using Web Services)Part 1 と Part 2(参考文献を参照)の 二つの仕様を策定しました。WSDM Event Format も、ここに規定されています。WEF は IBMがOASISに申請したCommon Base Event をベースとしていて、実質的には Common Base Event のサブセットになっています。共通点としては、WEF は Common Base Event の重要な要素と構造(メタデータ、ソースと報告コンポーネントの情報、発生状況の種類を含む)を保持します。一方相違点としては、Common Base Event フォーマットはイベントの意味情報を豊富に提供することも可能ですが、WEFではいくつかの要素と属性が省かれています。またWEF には標準化された拡張ポイントが数多くあり、要素や属性の追加が可能です。

IBM オートノミック・コンピューティング・ツールキットに含まれるJavaライブラリーを使用すれば、WEF イベントの生成やWEF と Common Base Event の双方向の変換が可能になります。これはApache Muse WEF ライブラリー上で構築されていて、Common Base Event から WEF、あるいはその逆変換で情報が損失しないようになっています。

この記事では、GLA アダプターの動作やCommon Base Event フォーマット、WEF フォーマットについてある程度知識があることを前提としています。これらについての詳細な情報は、必要に応じて資料内で参照してください。

では次に、ライブラリーで提供される Common Base Event と WEF イベントのマッピングを調べてみましょう。




上に戻る


Common Base Event から WEF へのマッピング

WEF フォーマットは、Common Base Eventの中核となる必須要素を持っていて、表 1 に示すように 1 対 1 でマップされます。


表 1.WEF の Common Base Event 必須要素
WSDM イベント・フォーマットCommon Base Event
SourceComponent sourceComponentId
ReporterComponent reporterComponentId
Situation situation

Common Base Event が提供する豊富な意味情報に対応するものとして、WEFでは表 2 に示すように、拡張ポイントを通じて製品固有の要素が導入されています。


表 2. 拡張 WEF
WSDM Event FormatCommon Base Event
MsgCatalogInformation msgDataElement
CorrelationProperties sequenceNumber
repeatCount
elapsedTime
ComponentIdentification ComponentIdentification
DeviceAddress
SNAAddress
HostAddress
GUIDAddress
WsaAddress
TCPAddress
OtherAddress
location
locationType
ExtendedContent extendedDataElements

ExtendedContent は、その他のWEF に対応する要素がないものにも使用できます。

重要度

WEF の重要度属性は、表 3 に示すように 0 から 6 に分けられます。しかし、Common Base Event では、重要度の値の範囲は 0 から 70 になります。表 3 の 4列目は、Common Base Event の各重要度の値の範囲を示しています。


表 3. 重要度
レベルWEF 重要度CCommon Base Event の重要度Common Base Event の重要度の範囲
不明00[0, 9]
情報110[10, 29]
警告230[30, 39]
マイナー340[40, 44]
メジャー4- [45, 49]
クリティカル550[50, 59]
致命的660[60, 70]

WEF イベントを Common Base Event に変換する場合、重要度は対応する Common Base Event 重要度(表3の2列目)に変換されますが、メジャーレベル(WEF重要度の 4)は値 45 に変換されます。

また、Common Base Event を WEF イベントに変換する場合、重要度の値(cbeSeverity)は対応する WEF の重要度の値に変換され、元の値(cbeSeverity)も ExtendedContent で維持されます。例えば、Common Base Event の重要度 55 は 5 に変換され、WEF イベントにExtendedContent 要素(リスト 1 に表示)が追加されます。


リスト 1. Common Base Event の重要度の WEF ExtendedContent への変換
<ExtendedContent extendedDataType="ExtendedDataElement"
instanceOf="ExtendedDataElement">
    <ExtendedDataElement name="severity" type="string">
        <values>55</values>
    </ExtendedDataElement>
</ExtendedContent>
  

Situation

WEF イベントの situation 要素には、Common Base Event の situation 要素よりも多くの情報が格納されていて、Common Base Event のルートレベル属性であるmsgprioritycreationTime もここに含まれています。これらの要素/属性の詳細については、『OASIS Web Services Distributed Management: Management Using Web Services (MUWS 1.1) Part 1』(参考文献を参照)を参照してください。

WEF の situation category typeは、Common Base Event の situation typeとほぼ同じです。Common Base Event の一部の situation typeが持つ追加修飾子(situationQualifier)についても、WEF の situationの修飾子にマップされます(表4)。


表 4. Situation category
WEF Situation CategoryTypeCBE SituationType
<operationDisposition>
   <availabilityDisposition>
      <processingDisposition>
          <AvailabilitySituation/>
    </processingDisposition>
</availabilityDisposition>
</operationDisposition>
AvailableSituation
    @operationDisposition
  @availabilityDisposition
  @processingDisposition
ConfigureSituation ConfigureSituation
<situationDisposition>
   ConnectSituation
</situationDisposition>
ConnectSituation
    @situationDisposition
CreateSituation CreateSituation
<dependencyDisposition>
   DependencySituation
</dependencyDisposition>
DependencySituation
    @dependencyDisposition
DestroySituation DestroySituation
<featureDisposition>
   CapabilitySituation
</featureDisposition>
FeatureSituation
    @featureDisposition
<reportCategory>
   ReportSituation
</reportCategory>
ReportSituation
    @reportCategory
<situationQualifier>
   RequestSituation
</situationQualifier>
RequestSituation
    @situationQualifier
<situationQualifier>
   StartSituation
</situationQualifier>
StartSituation
@situationQualifier
<situationQualifier>
   StopSituation
</situationQualifier>
StopSituation
    @situationQualifier
OtherSituation OtherSituation

WEF の situation には、MsgDataElement の属性と要素、msgCatalogTokensmsgIdmsgIdType も含まれます。詳細については『Web Services Distributed Management: Management Using Web Services (MUWS 1.1) Part 1』を参照してください。

ReportTime

WEF イベントでは、ReportTime はオプションの属性です。ただし、wefReportTime の値を持っている場合は、GLA アダプターによって extendedDataElement に変換されます(リスト2)。


リスト 2. WEF ReportTime の Common Base Event への変換
<extendedDataElement name="ReportTime" type=”string”>
    <values>wefReportTime<values>
</extendedDataElement>

WEF の any 要素

GLA は WEF イベントを Common Base Event フォーマットのイベントに変換するアダプターとしても使用できます。このアダプターは、もともとWEF フォーマットで生成されるログを、オートノミック・コンピューティングのログ・アンド・トレース・アナライザー(問題判別ツール)といったCommon Base Event を対象とする高度な分析ツールにかけるために利用する簡易ツールです。

WEF は 4 タイプの any 要素に対応する4つの拡張ポイントを提供しています。これらの any 要素は Common Base Event のExtendedDataElement要素に変換され、name属性がそのタイプ名になります。


表 5. WEF の any要素
WEF の any要素Common Base Event の extendedDataElement の名称
ManagementEvent\any ManagementEvent_any
SourceComponent\any Component_any
ReporterComponent\any Reporter_any
ComponentAddress\any Source_Address_any

リスト 3 と 4 に、変換前後のWEF イベント(リスト 3)と Common Base Event イベント(リスト 4)を示しています。


リスト 3. WEF イベント
<muws1:ManagementEvent
    xmlns:muws1="http://docs.oasis-open.org/wsdm/muws1-2.xsd"
    ReportTime="2007-05-07T08:25:16-04:00">
  <muws1:EventId>uuid:ADT-A04-ADT_A01</muws1:EventId>
    <muws1:SourceComponent>
      <muws1:ComponentAddress>
        <wsa:EndpointReference 
             xmlns:wsa="http://www.w3.org/2005/08/addressing">
    	    <wsa:Address>
    	      http://localhost:8080/axis2/services/HealthcareProviderService
   	    </wsa:Address>
    	  </wsa:EndpointReference>
    	</muws1:ComponentAddress>
    </muws1:SourceComponent>
    <muws2:Situation 
        xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2.xsd">
      <muws2:SituationCategory>
        <muws2:ReportSituation />
      </muws2:SituationCategory>
    <muws2:SituationTime>
      2007-05-07T08:25:16-04:00
    </muws2:SituationTime>
  </muws2:Situation>
  <HL7V2>MSH|^~\\&|HealthcareProviderService^
    	http://hips.hl7.example^URI||||200705070825||
    	ADT^A04^ADT_A01PID|||1000||DOE^JOHN
  </HL7V2>
</muws1:ManagementEvent>


リスト 4. 変換された Common Base Event
<CommonBaseEvent creationTime="2007-05-07T12:25:16.000Z" 
  globalInstanceId="ADT-A04-ADT_A01">
  <extendedDataElements name="ExtendedDataElement_situation" 
    type="string">
    <children name="ReportSituation" type="string">
   <values>http://docs.oasis-open.org/wsdm/muws2-2.xsd</values>
   <values>muws2</values>
    </children>
  </extendedDataElements>
  <extendedDataElements name="ReportTime" type="string">
    <values>1178540716000</values>
  </extendedDataElements>
  <extendedDataElements name="Source_Address_any">
    <children name="wsa:EndpointReference" type="string">
   <children name="uri" type="string">
     <values>http://www.w3.org/2005/08/addressing</values>
   </children>
   <children name="wsa:Address" type="string">
     <children name="uri" type="string">
    <values>http://www.w3.org/2005/08/addressing</values>
     </children>
     <children name="Text" type="string">
    <values>
      http://localhost:8080/axis2/services/HealthcareProviderService
    </values>
     </children>
   </children>
    </children>
  </extendedDataElements>
  <extendedDataElements name="ManagementEvent_any">
    <children name="HL7V2" type="string">
   <children name="uri" type="string">
     <values>http://www.ibm.com/AC/commonbaseevent1_0_1</values>
   </children>
   <children name="Text" type="string">
     <values>
    MSH|^~\&|HealthcareProviderService^
http://hips.hl7.example^URI||||200705070825||ADT^A04^ADT_A01PID|||1000||DOE^JOHN
     </values>
   </children>
    </children>
  </extendedDataElements>
  <sourceComponentId/>
  <situation categoryName="OtherSituation">
   <situationType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:type="OtherSituation">
    </situationType>
  </situation>
</CommonBaseEvent>
  

逆にCommon Base Event が WEF フォーマット・イベントに変換される際には、表 4 の対応規則に当てはまらない Common Base Event のExtendedDataElement要素は全てWEF の ExtendedContent に配置されます。




上に戻る


GLA で WEF を使う

前提条件

ライブラリーを使用するには、GLA のフレームワーク以外に以下のJarファイルを ac-gla\lib ディレクトリー内の GLA インストール・パスに配置する必要があります。


表 6. ソフトウェアの前提条件
プラグインJar ファイル
Com.ibm.etools.logging.adapter_Version glacomponents.jar
IBMsecEvents.jar
jaxrpc.jar
snmp.jar
Com.ibm.etools.logging.parser_Version logparsers.jar
Com.ibm.etools.ac.event.wef_Version wef-layer1.jar
wef-layer2.jar
org.apache.muse_Version muse-util-2.0.0-M1.jar
muse-util-qname-2.0.0-M1.jar
muse-util-xml-2.0.0-M1.jar
muse-wsdm-wef-api-2.0.0-M1.jar
muse-wsdm-wef-impl-2.0.0-M1.jar

WEF イベントを生成するGLA アダプターの構成

GLA アダプターはアウトプッターをWEFアウトプッター(com.ibm.etools.logging.adapter.outputters.WEF11Outputter)に変更することで、Common Base Event の代わりに WEF イベントを出力できます。

Apache アクセス・ログを WEF ログに変換する場合を例にとってみましょう。GLA エディターを使用して Apache 1.3.26 アクセス・ログのスタティック・アダプターを構成する場合、次の手順を用います。

  1. GLA エディターでアダプター・ファイルを開きます。Contexts > Basic Context Implementation に移動し、Common Base Event ファイル・アウトプッターの実行クラスを com.ibm.etools.logging.adapter.outputters.WEF11Outputter に置き換えます。

    図 1. GLA エディターでスタティック・アダプターを開く

    GLA エディターでスタティック・アダプターを開く
  2. Configuration > Context Instance > Sensor に移動します。nameをdirectory、valueを Apache アクセス・ログ・ファイルがあるディレクトリーに設定したものと、nameをfileName、valueをログ・ファイルの名前に設定したものの2つのプロパティーを作ります。

  3. 図 2 のように、選択したアウトプッターのDisabled のチェックを外して、nameをdirectory、valueを出力ファイルを保存する場所(d:\tmp など)に設定したものと、nameをfileName、valueを出力ファイル名(myWef.log など)にしたものの2つのプロパティーを作ります。また、他の 2つのアウトプッターは Disabled をチェックして無効にします。

    図 2. アウトプッターを構成する
    アウトプッターを構成する

アダプターをテストする場合、図 2 の Extractor Results ビューで Run をクリックします。出力ファイルの場所、この例では \tmp にmyWef.log が作成され、Apache アクセス・ログの各レコードが WEF イベントに変換されて保存されます。




上に戻る


まとめ

この記事では、IBM ライブラリーと Apache Muse WEF ライブラリーを使って、Common Base Event がどのように WEF イベントに変換されるのかを見てきました。既に Common Base Event フォーマットを採用していて、さらに WEF イベントに変換する必要があるユーザーに特に有用です。これを使えば、イベント分析ツールがWEF と Common Base Event のどちらを解析対象としているかに関わらず、さまざまな製品のログを対象にすることができます。



参考文献



著者について

i

Abdi Salahshour は IBM Autonomic Computing Technology and Development のシニア・ソフトウェア・エンジニアであり、問題判別のアーキテクトやMaster Inventor でもあります。現在は Plug and Manage アーキテクチャーのアーキテクトとして活躍しています。1982年に IBM に入社して以来、データベース診断ツールの設計開発からシステム管理自己修復アーキテクチャー、そして異種分散環境でのイネーブルメントまでさまざまな職務を経験してきました。彼は IBM Problem Determination Council のメンバーで、IBM Common Base Event 仕様の作成にも参加しています。また、Generic Log Adapter の主任設計者およびインプリメンターの一員、Log and Trace Analyzer for Java Desktop のアーキテクト兼設計者でもあります。


Jane Fang はIBMトロント研究所のオートノミック・コンピューティングチームのソフトウェア・エンジニアです。3年以上オートノミック・コンピューティングのログ&トレースアナライザーと関連したテクノロジーに従事しており、WEF extension Java libraryの開発にも従事しています。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ