ロギングは、コンポーネントがファイルにメッセージを書き込むためのメカニズムです。OAMの管理者は、ロギング・メカニズムを使用して重要なコンポーネント・イベントを取得することができます。ロギングの構成とログ・ファイルの検索がこの章の焦点です。ログ・ファイルの情報を使用した問題診断については、このマニュアルでは取り上げません。
この章の内容は次のとおりです。
Oracle Access Manager 11gのコンポーネントは、Oracle Fusion Middleware 11gの他のコンポーネントと同じロギング・インフラストラクチャとガイドラインを使用しています。これはjava.util.loggingパッケージを使用して行ないますが、このパッケージは標準的なもので、すべてのJava環境で使用することができます。ロギング・システムはフラット・ファイルにのみ出力を書き出します。Oracle Databaseインスタンスへのロギングはサポートされていません。
ログ・メッセージは問題の診断に使われます。ロギング・インフラストラクチャは、OAMコンポーネントからのメッセージを記録します。管理者は、ロガーの定義対象となる各OAMコンポーネントに対してログ・レベルを指定することにより、メッセージ内の記録情報量を制御します。
|
注意: 一般に、ユーザーは、問題診断のためにOracleテクニカル・サポートへ送るファイルを作成するためにロギングを有効にします。ログ・メッセージに関するドキュメントはありません。場合によっては、ログ・ファイルを参照することによってユーザー自身で問題を診断できることもあります。 |
デフォルトでは、すべてのOAMコンポーネントのログ・レベルが「通知」レベルになっています。「エラー」レベルでのロギングで生成される出力は少量ですが、他のログ・レベルではロギング出力が大量になることがあり、その場合はOAMのパフォーマンスに影響します。本番環境では、通常はロギングを無効にするか、ロギング出力量が少くなるようなレベル(たとえばエラー・レベル)に設定します。
Oracle Access Managerは、WebLogicコンテナのロギング・デフォルトを使用します。
ロギング・ファイル: DOMAIN_HOME/servers/SERVER-NAME/logs/SERVER-NAME-diagnostics.log
ロギング構成ファイル: ロギング・レベルと、ロギングのためのその他の構成情報を提供します。このファイルは次のパスに保存されます: DOMAIN_HOME/config/fmwconfig/servers/SERVER-NAME/logging.xml
以下のイベントは自動的に記録されます。
OAMサーバー・イベント(管理されたランタイム・サーバー)
OAM管理イベント(これらは、管理コンソールを使用した構成変更に対して生成されます)
|
関連項目: Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイドのロギング情報 |
下の表に示すように、それぞれのOAMコンポーネントには対応するロガー名が関連付けられています。
表13-1 OAMサーバー側コンポーネント
| コンポーネント名 | OAMロガー名 |
|---|---|
|
プロトコル・バインディング |
oracle.oam.binding |
|
SSOコントローラ |
oracle.oam.controller.sso |
|
OAMプロキシ |
oracle.oam.proxy.oam |
|
OSSOプロキシ |
oracle.oam.proxy.osso |
|
資格証明コレクタ |
oracle.oam.credcollector |
|
パートナーのリモート登録 |
oracle.oam.engine.remotereg |
|
管理コンソール |
oracle.oam.admin.console |
|
管理サービス構成 |
oracle.oam.admin.service.config |
|
診断とモニタリング |
oracle.oam.diag |
表13-2 OAM共有サービス・エンジン・コンポーネント
| コンポーネント名 | 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 |
例13-1にlogging.xmlファイル内のロガーとログ・ハンドラの構成を示します。
|
関連項目: 『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』のロギング情報 |
例13-1 ロガーとログ・ハンドラの構成
<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 Fusion Middlewareアプリケーション・セキュリティ・ガイド』の付録I、I.1.1項を参照してください。 |
ロガーによるデータ出力の量はそのレベルによって制御され、レベルが高いほど記録される情報量も多くなります。ロガーのレベルは、ファイルlogging.xml内の<logger>という要素によって指定されます。フォーマットは以下のとおりです。
<logger name="loggerName" level="notifLevel"/>
ここで、loggerNameはロガー名(表13-1、表13-2、および表13-3)で、notifLevelはODLメッセージ・レベルまたはJavaメッセージ・レベルです。
表13-4に、ODLメッセージ・レベルとJavaメッセージ・レベルの対応を昇順に示します。
表13-4 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 and CONFIG |
|
TRACE:1 |
FINE(状況によっては本番環境に推奨) |
|
TRACE:16 |
FINER(本番環境には推奨しない) |
|
TRACE:32 |
FINEST(本番環境には推奨しない) |
上記に挙げられていない他のJavaレベル値は(つまり、SEVERE.intValue()+100からFINESTまでの範囲にないもの)、ODLレベルのUNKNOWNに相当します。
グラフィカル・ユーザー・インタフェースはロガー・レベルの変更には使用できません。使用できるのはWLSTコマンドだけです。この項の内容は次のとおりです。
管理者は、以下に示す手順に従い、OAM用のカスタムWLSTコマンドを使用してOAMのロガーの設定を変更することができます。実際のデプロイメントと選択肢は、説明と異なることがあります。
|
注意: WLSTコマンドhelp("fmw diagnostics")を使用してください。 |
OAMロガー・レベルの変更方法
OAMサーバーが稼動中であることを確認します。
OAM用のカスタムWLSTスクリプトを取得します。例:
<ORACLE_HOME>/common/bin/wlst.sh
WebLogic Serverに接続してWebLogic管理者としてログインします。例:
sh wlst.sh wls:/offline> connect adminID password
OAMサーバーで使用可能なOAMロガーをリストします。例:
wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",target="oam_ server1")
ここで、pattern=はoam.controllerコンポーネントを表し、target=は希望のOAMサーバー(登録時に指定されたもの)を表します。
このOAMサーバーに関連付けられているOAMロガーのリストを表示します。例:
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>
自身の要求に基づいてログ・レベルを変更します。たとえば、このシーケンスは、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")
ステップ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 | <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>
生成されたログ・ファイルを検証して、コントローラがTRACE:32レベルでロギングされていることを確認します。
DOMAIN_HOME/server/SERVER_INSTNCE_NAME/logs/
「ランタイム・イベント・ロギング構成の検証」へ進みます。
管理者は、以下の手順を使用してログ・ファイルのパスと必要な属性を指定することができます。実際のデプロイメントと選択肢は、説明と異なることがあります。
|
注意: より詳しい内容を知るには、WLSTコマンドhelp("fmw diagnostics")を使用してください。 |
以下の条件に合致する場合はステップ1から3をスキップしてください。
OAMサーバーが稼動している
WLSTスクリプトがある
すでにサーバーに接続してログインしている
|
関連項目: Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス |
OAMロガー、レベル、およびログ・ハンドラの変更方法
OAMサーバーが稼動中であることを確認します。
WLSTスクリプトを取得します。例:
<ORACLE_HOME>/common/bin/wlst.sh
WebLogic Serverに接続してWebLogic管理者としてログインします。例:
sh wlst.sh wls:/offline> connect
OAMロガーと、OAMサーバーのレベルを追加します。例:
wls:/base_domain/serverConfig> domainRuntime() wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam", level="WARNING", persist="0", target="oam_server1")
ここで<<<???>>>は<<<???>>>を表し、target="oam_server1"は希望するOAMサーバーを表します。
カスタム・ログ・ハンドラを追加して、それにOAMロガーを関連付けます。例:
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")
DOMAIN_HOME/oamlogsディレクトリに生成されるすべてのOAMログを確認します。
DOMAIN_HOME/oamlogs/
以下の手順を使用して、ランタイム・イベントのロギング構成をテストすることができます。
前提条件
この章に示すWLSTコマンドを使用してロギングを構成します。
エージェントとサーバーが稼動していることを確認します。
第9章、「リソースを保護してSSOを有効にするための管理ポリシー」に従い、リソースを保護するためにアプリケーション・ドメインを構成します。
ランタイム・イベント・ロギングの検証方法
保護されたリソースのURLをブラウザに入力し、無効な資格証明を使ってサインインします。
正しい資格証明を使って再度サインインします。
物理サーバー上で、下記のパスに生成されるすべてのOAMログを検証します。
DOMAIN_HOME/oamlogs/
ログ・ファイルを開いて最後のエントリを探し、認証の失敗と成功を確認します。