7 コンポーネント・イベント・メッセージのロギング

ロギングは、コンポーネントの重要なイベント、プロセスおよび状態情報を捕捉するために、コンポーネントとサービスがログ・ファイルにメッセージを書き込むメカニズムです。管理者は、各種の粒度で情報を提供するようにロギングを構成できます。この構成には、その他のOracle Fusion Middleware 12cコンポーネントと同じロギング・インフラストラクチャjava.util.logging (すべてのJava環境で使用できる標準)とガイドラインを使用します。

この章の内容は次のとおりで、ロギングの構成およびログ・ファイルの検出に重点を置いています。

7.1 Oracle Access Managementロギングについて

ロギング・システムはフラット・ファイルにのみ出力を書き出します。Oracle Databaseインスタンスへのロギングはサポートされていません。特に明記しないかぎり、この章の情報はOracle Access Managementのどのサービスを使用する場合でも同じです。

次の点にも留意してください:

  • カスタムのOracle WebLogic Scripting Tool (WLST)コマンドを使用して、ロギング・レベルを変更できます。

  • ログ・ファイルの情報を使用した問題診断については、この章では取り上げません。

  • この章のタスクを実行する前に、Oracle Access Managementコンソールと管理対象OAMサーバーが実行中であることを確認してください。

また、「サーバー登録の管理」も確認することをお薦めします。

7.2 コンポーネント・イベント・メッセージのロギング

ロギング・インフラストラクチャは、問題診断に使用できるメッセージを記録します。セキュリティ・トークン・サービスはJ2EE Webアプリケーションで、Access Manager J2EEアプリケーションの一部です。どちらもOJDLをロギング目的に使用します。セキュリティ・トークン・サービスでは、パートナとのやり取りをタイムスタンプとともに取得します。管理者は、ロガーの定義対象となる各コンポーネントに対してログ・レベルを指定することにより、メッセージに記録される情報の量を制御します。

一般に、ユーザーは、問題診断のためにOracleテクニカル・サポートへ送るファイルを作成するためにロギングを有効にします。ログ・メッセージに関するドキュメントはありません。場合によっては、ログ・ファイルを参照することによってユーザー自身で問題を診断できることもあります。

Oracle Access Managementでは、表7-1に示すファイルを使用します。

表7-1 ロギング・ファイル

ファイル・タイプ 説明

ロギング構成ファイル

ロギング・レベルとロギングに関するその他の構成情報を提供します。このファイルは次のパスに格納されています。

$DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xml

ノート: デフォルトでは、セキュリティ・トークン・サービスとIdentity Federationのメッセージは、OAMサーバーのログ・ファイルに記録されます。ただし、便宜上、「Identity Federationのロギング構成」で説明しているとおり、logging.xmlを編集してセキュリティ・トークン・サービスまたはIdentity Federationの情報を別のログ・ファイルに記録するようにできます。

ログ・ファイル

記録された情報は次の場所に格納されます。

$DOMAIN_HOME/servers/SERVER-NAME/logs/ SERVER-NAME-diagnostics.log

Oracle Access Managementでは、表7-2に示すWebLogicコンテナのロギングのデフォルトを使用します。

表7-2 ロギングのデフォルト

ログの種類 説明

イベント

次のイベントは自動的に記録されます。

  • OAMサーバー・イベント(管理されたランタイム・サーバー)

  • 管理イベント(コンソールを使用した構成変更に対して生成)

レベル

デフォルトでは、すべてのOracle Access Managementコンポーネントのログ・レベルが「通知」レベルになっています。「エラー」レベルでのロギングで生成される出力は少量ですが、他のログ・レベルではロギング出力が大量になることがあり、その場合はパフォーマンスに影響します。本番環境では、通常はロギングを無効にするか、ロギング出力量が少くなるようなレベル(たとえばエラー・レベル)に設定します。

詳細は、次を参照してください。

関連項目:

7.2.1 セキュリティ・トークン・サービスとAccess Managerのコンポーネント・ロガー

セキュリティ・トークン・サービスとAccess Managerのコンポーネント・ロガーは異なります。

セキュリティ・トークン・サービスにあるロガーは、oracle.security.fedの1つのみです。詳細は、「Identity Federationのロギング構成」を参照してください。

次の表に示すように、それぞれのAccess Managerコンポーネントには対応するロガー名が関連付けられています。

表7-3 Oracle Access Managementのサーバー側コンポーネントのロガー

コンポーネント名 OAMロガー名 説明

プロトコル・バインディング

oracle.oam.binding

ワイヤ・プロトコルのリクエストとレスポンスのJavaオブジェクト表現へのマーシャリング/アンマーシャリングを処理します

SSOコントローラ

oracle.oam.controller.sso

ユーザー・セッションのライフサイクル管理と、SSOおよびログアウト・フローの編成を処理します

OAMプロキシ

oracle.oam.proxy.oam

OAPプロトコルのリクエストとレスポンスのマーシャリング/アンマーシャリングによるOAM Webゲートとの相互作用と、OAPリクエスト/レスポンスを処理するOAMサーバーを支援するために必要なデータ/メッセージ変換の実行を処理します

資格証明コレクタ

oracle.oam.credcollector

認証スキームが要求する必須情報を取得するためのユーザーとの相互作用を処理します

パートナのリモート登録

oracle.oam.engine.remotereg

OAMサーバーへのパートナの登録と、それに関連付けられた保護済ポリシーの管理を処理します

Oracle Access Managementコンソール

oracle.oam.admin.console

Access Managementデプロイメントの管理とモニタリングをサポートするコンソールです

管理サービス構成

oracle.oam.admin.service.config

構成を管理するUIコンソールが使用するモジュールです

診断とモニタリング

oracle.oam.diag

診断とモニタリングを可能にするためにOAMサーバー・コンポーネントが使用するインストゥルメンテーションを提供します

表7-4 Oracle Access Management共有サービス・エンジン・コンポーネントのロガー

コンポーネント名 OAMロガー名 説明

認証エンジン

oracle.oam.engine.authn

指定した認証スキームが要求する資格証明とその他のデータを検証することで、ユーザー・アイデンティティの確立をサポートします

ポリシー・サービス・エンジン

oracle.oam.engine.policy

認証、認可およびトークン発行のポリシー管理をサポートします。さらに、ランタイム処理をサポートするポリシー決定サービスも提供します

セッション管理エンジン

oracle.oam.engine.session

ユーザー/管理者が開始したイベントとタイムアウト・ベースのイベントのサポートがある、ユーザー・セッションとトークン・コンテキスト情報の管理をサポートします

トークン・エンジン

oracle.oam.engine.token

生成から取消しまでのトークンの全ライフ・サイクルの管理をサポートします

SSOエンジン

oracle.oam.engine.sso

ユーザー・ログイン・セッションのライフサイクルを管理することで、シングル・サインオンの操作性をサポートします。

PartnerTrustMetadataエンジン

oracle.oam.engine.ptmetadata

パートナ・メタデータと信頼情報の管理をサポートします

認可エンジン

oracle.oam.engine.authz

OAPランタイム・リクエスト操作に直接マップするメソッドを提供するラッパーです

表7-5 Oracle Access Management Foundation APIコンポーネントのロガー

コンポーネント名 OAMロガー名 説明

セッション・アクセス

oracle.oam.session.access

** コードを逆コンパイルしないかぎり、有用ではありません

セッション・アクセス実行

oracle.oam.session.accessimpl

** コードを逆コンパイルしないかぎり、有用ではありません

ポリシー・アクセス

oracle.oam.policy.access

** コードを逆コンパイルしないかぎり、有用ではありません

7.2.2 サンプルのロガーおよびログ・ハンドラの定義

ここでは、Access Manager専用のサンプルのロガーおよびログ・ハンドラを示します。

セキュリティ・トークン・サービスにあるのは、「Identity Federationのロギング構成」で説明しているように、ロガーとログ・ハンドラそれぞれ1つずつのみです。

次の例に、logging.xmlファイルでのAccess Managerのロガーとログ・ハンドラの構成を示します。

<logging_configuration>

  <log_handlers>
    <log_handler name='oam-handler' class='oracle.core.ojdl.logging.
    ODLHandlerFactory'>
      <property name='path' value='oam/diagnostic'/>
      <property name='maxFileSize' value='10485760'/>
      <property name='maxLogSize' value='104857600'/>
    </log_handler>
  </log_handlers>

  <loggers>
    <logger name='oracle.security.am' level='NOTIFICATION:1'>
      <handler name='oam-handler'/> 
      ...
    </logger>
  </loggers>

</logging_configuration>

関連項目:

Java EEアプリケーションのロギング情報は、『Oracle Platform Security Servicesによるアプリケーションの保護』監査ファイルの命名とロギングに関する項を参照してください。

7.2.3 ロギング・レベルについて

Oracle Access Managementでは、ロガーにより出力されるデータの量はロガーのレベルによって制御され、レベルが高くなるほどより多くの情報が記録されます。

ロガーのレベルは、logging.xmlファイルの中で<logger>要素により、次の書式で指定されます。

<logger name="loggerName" level="notifLevel"/>

ここで、loggerNameはロガー名であり(「セキュリティ・トークン・サービスとAccess Managerのコンポーネント・ロガー」を参照)、notifLevelはODLメッセージ・レベルとJavaメッセージ・レベルのどちらかです。

表7-6に、ODLメッセージ・レベルとJavaメッセージ・レベルの対応を昇順に示します。

表7-6 ODLレベルとJavaレベルの対応

ODLメッセージ・レベル Javaメッセージ・レベル

INCIDENT_ERROR:1

SEVERE.intValue()+100

ERROR:1

SEVERE(例外を記録)

WARNING:1

WARNING(例外を記録)

NOTIFICATION:1

INFO(デフォルト)

NOTIFICATION:16

CONFIG

NOTIFICATION:32

INFOとCONFIG

TRACE:1

FINE(状況によっては本番環境に推奨)

TRACE:16

FINER(本番環境にはお薦めしない)

TRACE:32

FINEST(本番環境にはお薦めしない)

上記に挙げられていない他のJavaレベル値は(つまり、SEVERE.intValue()+100からFINESTまでの範囲にないもの)、ODLレベルのUNKNOWNに相当します。

ノート:

メッセージを最も詳細レベルで記録するフィルタをoracle.security.fedパッケージおよびサブパッケージ(セキュリティ・トークン・サービスのクラス)に定義すると、サーバーを再起動した後でOAMサーバーのログが表示されます。詳細は、「Identity Federationのロギング構成」を参照してください。

7.3 Access Managerのロギング構成

グラフィカル・ユーザー・インタフェースは、ロガー・レベルの変更には使用できません(WLSTコマンドのみ使用できます)。

この項では、Access Managerのみのタスクを説明します。

この項では次のトピックを記載しています:

7.3.1 Access Managerのロガー・レベルの変更

管理者は、Access Manager用のカスタムWLSTコマンドを使用してロガーの設定を変更できます。

実際のデプロイメントと選択肢は、説明と異なることがあります。

ノート:

WLSTコマンドhelp("fmw diagnostics")を使用してください。

次の手順に従い、OAMロガー・レベルを変更します。

  1. OAMサーバーが稼働中であることを確認します。
  2. Access Manager用のカスタムWLSTスクリプトを取得します。たとえば:
    $ORACLE_HOME/common/bin/wlst.sh

  3. WebLogic Serverに接続してWebLogic管理者としてログインします。たとえば:
    connect([username, password])
    
  4. OAMサーバーで使用可能なロガーをリストします。たとえば:
    wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",
      target="oam_server1")
    
    wls:/WLS_IDM/serverConfig> listLoggers(pattern="oracle.oam.*",
      target="oam_policy_mgr1")
    

    ここで、pattern=はoam.controllerコンポーネントを表し、target=は希望のOAMサーバー(登録時に指定されたもの)を表します。

  5. このOAMサーバーに関連付けられているAccess Managerロガーのリストを表示します。たとえば:
    Logger                                      | Level
    --------------------------------------------+-----------------
    oracle.oam                                  | <Inherited>
    oracle.oam.admin.foundation.configuration   | <Inherited>
    oracle.oam.agent-default                    | <Inherited>
    oracle.oam.audit                            | <Inherited>
    oracle.oam.binding                          | <Inherited>
    oracle.oam.commonutil                       | <Inherited>
    oracle.oam.config                           | <Inherited>
    oracle.oam.controller                       | <Inherited>
    oracle.oam.default                          | <Inherited>
    oracle.oam.diagnostic                       | <Inherited>
    oracle.oam.engine.authn                     | <Inherited>
    oracle.oam.engine.authz                     | <Inherited>
    oracle.oam.engine.policy                    | <Inherited>
    oracle.oam.foundation.access                | <Inherited>
    oracle.oam.idm                              | <Inherited>
    oracle.oam.idm                              | <Inherited>
    oracle.oam.idm                              | <Inherited>
    oracle.oam.user.identity.provider           | <Inherited>
    
  6. 自身の要求に基づいてログ・レベルを変更します。たとえば、このシーケンスは、oam.controllerのログ・レベルを永続性のないTRACE:32に変更します。
    wls:/base_domain/serverConfig> domainRuntime()
    wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam.controller", 
    level="TRACE:32", persist="0", target="oam_server1")
    
    wls:/WLS_IDM/domainRuntime> setLogLevel(logger="oracle.oam", level="TRACE:32", persist="0", target="oam_policy_mgr1")
    
  7. ステップ4を繰り返して再びロガーをリストし、ログ・レベルの変更を確認します。たとえば:
    wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",target="oam_
    server1")
    
    Logger                                      | Level
    --------------------------------------------+-----------------
    oracle.oam                                  | <Inherited>
    oracle.oam.admin.foundation.configuration   | <Inherited>
    oracle.oam.agent-default                    | <Inherited>
    oracle.oam.audit                            | <Inherited>
    oracle.oam.binding                          | <Inherited>
    oracle.oam.commonutil                       | <Inherited>
    oracle.oam.config                           | <Inherited>
    oracle.oam.controller                       | TRACE:32
    oracle.oam.default                          | <Inherited>
    oracle.oam.diagnostic                       | <Inherited>
    oracle.oam.engine.authn                     | <Inherited>
    oracle.oam.engine.authz                     | <Inherited>
    oracle.oam.engine.policy                    | <Inherited>
    oracle.oam.foundation.access                | <Inherited>
    oracle.oam.idm                              | <Inherited>
    oracle.oam.idm                              | <Inherited>
    oracle.oam.idm                              | <Inherited>
    oracle.oam.user.identity.provider           | <Inherited>
    
  8. 生成されたログ・ファイルを検証して、コントローラがTRACE:32レベルでロギングされていることを確認します。
    $DOMAIN_HOME/server/SERVER_INSTNCE_NAME/logs/
    
  9. 「ランタイム・イベント・ロギング構成の検証」に進みます。

7.3.2 Access Manager固有のロガーとログ・ハンドラの追加

管理者は、次の手順を使用してログ・ファイルのパスと必要な属性を指定することができます。

次の手順では、ターゲットのOAMサーバー、ローテーション期間と保持期間、ログ・ファイルのパス、ハンドラ、およびロガーを確認します。実際のデプロイメントと選択肢は、説明と異なることがあります。

ノート:

より詳しい内容を知るには、WLSTコマンドhelp("fmw diagnostics")を使用してください。

次の条件に合致する場合はステップ1から3をスキップしてください。

  • OAMサーバーが稼働している

  • WLSTスクリプトがある

  • すでにサーバーに接続してログインしている

関連項目:

『WebLogic Server WLSTコマンド・リファレンス』カスタマイズ・コマンドに関する項

この手順に従い、OAMロガー、レベルおよびログ・ハンドラを指定します。

  1. OAMサーバーが稼働中であることを確認します。
  2. WLSTスクリプトを取得します。たとえば:
    $ORACLE_HOME/common/bin/wlst.sh

  3. WebLogic Serverに接続してWebLogic管理者としてログインします。たとえば:
    sh wlst.sh wls:/offline> connect
    
  4. Access ManagerロガーとOAMサーバーのレベルを追加します。たとえば:
    wls:/base_domain/serverConfig> domainRuntime()
    wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam", 
    level="WARNING", persist="0", target="oam_server1")
    
  5. カスタム・ログ・ハンドラを追加して、それにAccess Managerロガーを関連付けます。たとえば:
    wls:/base_domain/domainRuntime> configureLogHandler(name="oam-log-handler", 
    target="oam_server1", rotationFrequency="daily", retentionPeriod="week", path="${domain.home}/oamlogs" , maxFileSize ="10485760", maxLogSize = "104857600", addHandler="true", handlerType="oracle.core.ojdl.logging
    .ODLHandlerFactory", addToLogger="oracle.oam")
    
    wls:/base_domain/domainRuntime>configureLogHandler(name="oam-log-handler", 
    addProperty="true", propertyName="supplementalAttributes", propertyValue=
    "OAM.USER, OAM.COMPONENT", target="oam_server1")
    
  6. DOMAIN_HOME/oamlogsディレクトリの中のすべてのログを確認します。
    $DOMAIN_HOME/oamlogs/ 

7.4 Identity Federationのロギング構成

デフォルトでは、Identity Federationのメッセージは、OAMサーバーのログ・ファイルに記録されます。

これらのログは、Fusion Middleware Controlで表示および構成できます。ただし、この項で説明するように、logging.xmlを編集してIdentity Federationの情報を個別のログ・ファイルに記録することもできます。この手順に関連するファイルは、次のとおりです。

  • ロギング構成ファイル: ロガー名と、ロギング用のその他の構成情報を提供します。このファイルは、$DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xmlに保存されます。

  • ログ・ファイル: たとえば、$DOMAIN_HOME/ostslogs/SERVER-NAME-diagnostics.log。

セキュリティ・トークン・サービスとIdentity Federationでは、ログ・ハンドラがAccess Managerのように分類されません。そのかわり、Identity Federationのログ・レベルに影響するロガーが1つだけあります。表7-7では、WLSTコマンドで必要となるこのロガーの詳細を示します。

表7-7 Oracle Identity Federationのロガー

コンポーネント名 ロガー名 ログ・ハンドラ名 ログ・クラス

Identity Federation

oracle.security.fed

stsfed-handler

class=oracle.core.ojdl.logging.ODLHandlerFactory

詳細は、次を参照してください。

関連項目:

7.4.1 Identity Federationのロギング構成

管理者は、Identity Federationのログ・メッセージをOAMサーバーのメッセージ・ログから切り離すことができます。

構成するには、次のようにします。

  1. 次のlogging.xmlを見つけて開きます。$DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xml
  2. 次のように追加して、Identity Federationの独立したメッセージ・ログを作成します。
    <log_handler name='stsfed-handler' class='oracle.core.ojdl.logging.ODLHand
    lerFactory'>
          <property name='path' value='sts/log'/>
          <property name='maxFileSize' value='10485760'/>
          <property name='maxLogSize' value='104857600'/>
        </log_handler>
    
    <logger name='oracle.security.fed' level='TRACE:32'>
          <handler name='stsfed-handler'/>
        </logger>
    
  3. ファイルを保存します。
  4. 「セキュリティ・トークン・サービスまたはIdentity Federationのログ・レベルおよびログ詳細の定義」に進みます。

7.4.2 セキュリティ・トークン・サービスまたはIdentity Federationのログ・レベルおよびログ詳細の定義

管理者は、ここでの説明に従い、Oracle Access Management用のカスタムWLSTコマンドを使用してセキュリティ・トークン・サービスのロガー設定を変更できます。この場合は、セキュリティ・トークン・サービスのログ・メッセージ専用の独立した出力ファイルを指定します。

WLSTコマンドhelp("fmw diagnostics")を使用してください。

次の条件に合致する場合はステップ1から3をスキップしてください。

  • OAMサーバーが稼働している

  • WLSTスクリプトがある

  • すでにサーバーに接続してログインしている

このセキュリティ・トークン・サービスのロギングの手順例は、Access Managerの場合の手順とほとんど同じです。ただしいくつかの違いがあります。実際のデプロイメントの選択肢は、説明と異なることがあります。

  1. OAMサーバーが稼働中であることを確認します。
  2. Oracle Access Management用のカスタムWLSTスクリプトを取得します。
    $ORACLE_HOME/common/bin/wlst.sh

  3. WebLogic Serverに接続してWebLogic管理者としてログインします。たとえば:
    sh wlst.sh wls:/offline> connect adminID password
    
  4. oracle.security.fedのログ・レベルを、自身の要求に基づいて変更します。たとえば、このシーケンスは、ログ・レベルを永続性のないWARNINGに変更します。
    wls:/base_domain/serverConfig> domainRuntime()
    wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.security.fed", 
    level="WARNING", persist="0", target="oam_server1")
    
  5. ターゲットのOAMサーバーの他に、ローテーション期間と保持期間、ログ・ファイルのパス、ハンドラ、およびロガーを指定します。たとえば:
     wls:/base_domain/domainRuntime> configureLogHandler(name="osts-log-handler",  
    target="oam_server1", rotationFrequency="daily", retentionPeriod="week", 
    path="${domain.home}/ostslogs", maxFileSize ="10485760", maxLogSize  
    ="104857600", addHandler="true",handlerType="oracle.core.ojdl.logging.ODL 
    HandlerFactory", addToLogger="oracle.security.fed")
    
  6. 生成されたログ・ファイルを検証して、コントローラがWARNINGレベルでロギングされていることを確認します。
     $DOMAIN_HOME/ostslogs/SERVER-NAME-diagnostics.log 
     $DOMAIN_HOME/oiflogs/SERVER-NAME-diagnostics.log 
    
  7. 「ランタイム・イベント・ロギング構成の検証」に進みます。

7.5 ランタイム・イベント・ロギング構成の検証

次の手順を使用して、ランタイム・イベントのロギング構成をテストすることができます。

始める前に:

ランタイム・イベント・ロギング構成を検証するには、次のようにします。

  1. 保護されたリソースのURLをブラウザに入力し、無効な資格証明を使ってサインインします。
  2. 正しい資格証明を使って再度サインインします。
  3. 物理サーバー上で、次のパスに生成されるすべてのログを検証します。
    $DOMAIN_HOME/oamlogs/
    $DOMAIN_HOME/ostslogs/SERVER-NAME-diagnostics.log
    $DOMAIN_HOME/oiflogs/SERVER-NAME-diagnostics.log
    
  4. ログ・ファイルを開いて最後のエントリを探し、認証の失敗と成功を確認します。