Oracle Access Managerコンポーネント・インスタンスでは、プロセスおよび状態に関する情報をログ・ファイルに書き込めます。ログを構成して、様々なレベルの粒度で情報を提供できます。たとえば、エラー、状態の情報を加えたエラー、またはデバッグ・トレースのレベルのエラー、状態およびその他の情報を記録できます。ログから機密情報を除外することもできます。
この章の内容は次のとおりです。
ロギング機能により、システムのパフォーマンスおよび状態を分析し、問題をトラブルシューティングできます。
次のコンポーネントの個別のインスタンスのロギングを構成できます。
アクセス・サーバー
アイデンティティ・サーバー
ポリシー・マネージャ
Webパス・インスタンス
WebGate
カスタム・アクセス・ゲート(Access Manager SDK)
カスタム・プラグイン
コンポーネント・インスタンスの異なる機能領域に対して別々のロギング・レベルを構成できます。たとえば、LDAPアクティビティのデバッグ・データを取得して、それ以外のすべてのコンポーネント・アクティビティではエラー・レベルのデータのみを記録できます。また、コンポーネントが処理する各リクエストで要する時間を記録し、異なるレベルのログ・データを別々の宛先に送信できます。たとえば、エラー情報をファイルに送信し、その他のログ・データをシステム・ログに送信できます。
機密情報の保護: Oracle Access Managerでは、ユーザーの機密情報が処理されます。サイトによって異なりますが、ユーザー・パスワード、誕生日、社会保障番号、ロスト・パスワード・リクエストに対するセキュリティ上の質問と回答などが含まれます。セキュリティ番号や保護の対象とするその他の情報も機密データに含めることができます。機密情報は、特定のロギング・レベルで取得されます。現在は、ログ・ファイルの機密情報をフィルタ処理できます(「機密属性のフィルタ処理」を参照してください)。
ロギングの構成: コンポーネントとともに格納される構成ファイルを編集して、ロギングを構成します。アイデンティティ・サーバーの場合のみ、アイデンティティ・システム・コンソールで設定できるロギングのパラメータもあります。「ログ構成ファイルのパスおよび内容について」を参照してください。
ロギング・レベル: 様々なレベルで、ロギングをリクエストできます。最上位レベルは「致命的」で、最下位レベルは「トレース」です。詳細は、「ログ・レベルについて」を参照してください。
ログ出力先: ログ構成ファイルでは、ログ・ライターと呼ばれるパラメータがログ出力の宛先を決定します。詳細は、「ファイルまたはシステム・ファイルへのログ出力の送信について」を参照してください。ログ・ライターまたはログ・レベルを識別して、ログ出力の完全な定義を作成します。この完全な定義はログ・ハンドラと呼ばれます。詳細は、「2番目の複合リストおよびログ・ハンドラ」を参照してください。
ロギング・パフォーマンス: パフォーマンスの問題の分析では、特定の操作を実行するのに要する時間に関するデータをログで取得できます。詳細は、「リクエストの処理に要する時間のロギング」を参照してください。
この項には、次の各項目が含まれます。
ロギング・レベルは、ログ・データ・ファイルに書き込まれるデータの量を決定します。各ロギング・レベルは累積的で、上位のレベルで生成されたすべてのデータが各レベルに含まれます。たとえば、エラー・ログには、致命的ログで生成されたすべてのデータに加えて、エラー・カテゴリに固有のイベントが含まれます。
表10-5にレベルを示します。デフォルトのログ・レベルは警告(LOGLEVEL_ WARNING)です。
レベル | レポートされるイベント数 | 説明 |
---|---|---|
|
> 60 |
クリティカルなエラーを記録します。一般に、これらのイベントは、コンポーネントの終了の原因になります。 システム障害が発生した場合は、致命的レベルのメッセージが常にログ・ファイルにフラッシュされます。 |
|
> 960 |
コンポーネントが使用できないなど、修正処理を必要とする可能性のあるイベントを記録します。エラー・ログは、別のコンポーネントへの接続失敗など、一時的または自己修正可能な問題に対して生成されることもあります。 |
|
> 1200 |
将来のある時点でエラーを引き起こす、または修正処理を必要とする可能性のある問題を記録します。 |
|
> 400 |
コンポーネントの初期化中など、コンポーネントの完了したアクションまたは現在の状態を記録します。 |
|
> 400 |
デバッグ情報を記録します。通常は、このレベルの情報は開発者にとってのみ意味があります。 |
|
> 100 |
詳細なデバッグ情報を記録します。このレベルは、Debug1ログ・レベルを補強します。通常は、このレベルの情報は開発者にとってのみ意味があります。 |
|
> 900 |
大量のデバッグ情報またはコードの高コスト部分に関連するデータをログ・ファイルに記録します。このレベルは、タイト・ループやパフォーマンスに敏感なファンクションのデバッグに役立ちます。通常は、このログ・レベルの情報は開発者にとってのみ意味があります。 これらログには、機密情報が含まれる場合があります。 |
|
> 900 Oracle Access Manager API > 150サード・パーティAPI |
このログ・レベルは、コード・パス実行のトレースまたはパフォーマンス・メトリックの取得に使用されます。この情報は、各コンポーネント・ファンクションのエントリ・ポイントおよび終了ポイントで取得されます。通常は、このログ・レベルの情報は開発者にとってのみ意味があります。 これらログには、機密情報が含まれる場合があります。 |
|
> 5000 |
このレベルには、その他のレベルすべてのイベントおよび状態がすべて含まれます。 |
複合リスト: 隣接していないレベルからログ・データを収集し、異なるレベルのログ・データを別々の宛先に送信できます。たとえば、致命的ログをシステム・ログに送信し、エラー・ログをファイルに書き込めます。詳細は、「2番目の複合リストおよびログ・ハンドラ」を参照してください。
しきい値: グローバル・カットオフまたはしきい値を構成して、ログ構成ファイルのLOG_THRESHOLD_LEVEL
パラメータでロギングできます。デフォルトでは、ログ・ハンドラの構成済レベルがカットオフを超えると、ログ・データは収集されません。LOG_THRESHOLD_LEVEL
パラメータがログ・ハンドラで構成されたレベルに優先するため、構成済レベルにかかわらず、ログが書込みに失敗する場合があります。ログ構成ファイルのMODULE_CONFIG
セクションのみがグローバルしきい値をオーバーライドします。詳細は、「単純なリスト、ロギングしきい値およびアイデンティティ・システム・コンソールの同期」を参照してください。
オーバーライド: グローバル・ロギングしきい値に対する機能固有またはモジュール固有のオーバーライドを、MODULE_CONFIG
パラメータに指定します。詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。
コンポーネント・インスタンスのロギングが有効化されていて、インスタンスがクラッシュすると、Oracle Access Managerはスタック・トレース情報をログ・ファイルに書き込みます。スタック・トレースをリクエストごとに生成することもできます。
詳細は、「診断情報の取得」を参照してください。
ログ出力ファイルの各行は、特定の構造に従います。行は、日付およびタイム・スタンプで始まり、次にリクエストを処理するスレッド、ログが記録された機能またはモジュールの名前とログ・レベルが続きます。
次に、ログ出力ファイルの一番左の列のスナップショットを示します。
2007/06/01@00:50:56.859000 5932 2672 DB_RUNTIME DEBUG3 2007/06/01@00:50:56.859000 5932 2672 DB_RUNTIME TRACE 2007/06/01@00:50:56.859000 5932 2672 LDAP DEBUG1 2007/06/01@00:50:56.859000 5932 2672 LDAP TRACE 2007/06/01@00:50:56.859000 5932 2672 LDAP TRACE
リグ・レベルの右の2つの列は内的コード参照で、無視することができます。次に、この列の例を示します。
0x00000205 ldap_connection_mngr.cpp:212
内的参照列の右に、「コールされた機能」または「戻された機能」などのこのログ・レベルに割り当てられたログ・メッセージがあり、次に示すような機能の名前が続きます。
"Function called" _CallName^ldap_init
ログ・メッセージおよび機能名の後に、次の例に示すように、処理の間隔、機能が実行されるアドレス領域または状態の情報などの追加情報が続く場合があります。
"Connection health check result" Server^dlsun4072 Port^389 Server Priority^1 Connection available^true "Function entered" _TraceName^ConnectionWatcherThread::CheckPrimaries "Function exited" _TraceName^ConnectionWatcherThread::CheckPrimaries TraceDuration^0.000028 "Connection Pool Status in ValidateConnections() "NumLivePrimaryConnections^1 Maximum Connections^1 UpConnections^1 Failover Threshold^1 Max Session Time^0 SleepFor^60
機密情報を保護して、ロギング操作の出力に含まれないようにする方法は、「機密属性のフィルタ処理」を参照してください。
プレーンテキスト・エディタで編集するXMLベースのログ・ファイル内のログ出力を制御するパラメータを構成します。これらのファイルに対する変更は、即時に有効になります。
この項には、次の各項目が含まれます。
Oracle Access Managerの各コンポーネントには、ログ構成ファイルがあり、ここでログ出力内に記録するデータのタイプを定義します。ログ構成ファイルはログ出力ファイルとは異なります。ログ出力ファイルの詳細は、「ログ出力について」を参照してください。
ログ構成ファイルは次の場所にあります。
component_install_dir\identity|access\oblix\config
component_install_dirはコンポーネントがインストールされているディレクトリで、identity|accessはそれぞれアイデンティティ・システムとアクセス・システムを表します。このファイルのパスは変更しないでください。複数のアイデンティティ・サーバーをインストールするなど、コンポーネントの複数のインスタンスをインストールする場合、ログ構成ファイルはインスタンスごとにインストールされます。
インストール後は、oblog_config.xmlとoblog_config_original.xmlの両方にコメントが含まれます。アイデンティティ・システム・コンソールでロギング構成を変更すると、ディレクトリ・サーバーのデータがoblog_config.xmlに書き込まれます。このプロセスの際に、このファイル内のコメントは失われます。一方oblog_config_original.xmlは変更されないため、元のコメントを参照できます。
表10-2にログ構成ファイルの名前をリストします。名前を変更しないでください。
表10-2 コンポーネントのログ構成ファイル名
コンポーネント | ログ構成ファイル名 |
---|---|
アクセス・サーバー |
oblog_config.xml |
アイデンティティ・サーバー |
oblog_config.xml |
ポリシー・マネージャ |
oblog_config_am.xml |
WebGate |
oblog_config_wg.xml |
Webパス |
oblog_config_wp.xml |
Access Manager SDK(カスタム・アクセス・ゲート) |
oblog_config.xml |
重要: いずれのロギング構成ファイルについても、デフォルトのパスまたは名前を変更しないでください。 |
ログ構成ファイルは次の項目を制御します。
コンポーネントでログに記録される内容
データの送信先
特定の場合のみ、ログで使用される書込みバッファのサイズ
ログ・ファイル・ローテーション間隔
ログ構成ファイルにはテキスト・エディタで編集できるXML文が含まれます。
アイデンティティ・サーバーの場合のみ、構成ファイル内のAUTOSYNC
パラメータがデフォルト値のTrueに設定されていれば、アイデンティティ・システム・コンソールでログ・ファイル内の構成パラメータも変更できます。詳細は、「アイデンティティ・システム・コンソールでのログの構成」を参照してください。
ウォッチャ・スレッドは、ログ構成ファイルに対する変更を60秒ごとに取得し、その変更を有効にします。サーバーを再起動する必要はありません。
アイデンティティ・サーバーの場合、アイデンティティ・システム・コンソールを使用してロギング設定を変更すると、ファイル内のAutoSync
パラメータがTrue
に設定されている場合にのみ、変更がログ構成ファイルに書き込まれます。このパラメータがFalse
に設定されている場合、以前の構成ファイル設定がサーバーの再起動後に回復されます。
デフォルトの各ログ構成ファイルには、ファイルの編集に役立つコメントが含まれます。コメントのあるデフォルトの構成ファイルは、次のようになります。
コメントは、1つ以上の行にまたがる場合があります。コメントは次のように表示されます。
<!--NetPoint Logging Configuration File --> <!-- --> <!--Changes to this file will be automatically taken into effect --> <!--in one minute. This does not require any server restart. -->
例10-1に、コメントのある典型的なログ構成ファイルを示します。例10-8に、コメントのない典型的なログ構成ファイルを示します。
<?xml version="1.0" encoding="ISO-8859-1" ?> <!--============================================================ --> <!--============================================================ --> <!--NetPoint Logging Configuration File --> <!-- --> <!--Changes to this file will be automatically taken into effect --> <!--in one minute. This does not require any server restart. --> <!-- --> <!--============================================================ --> <!--============================================================ --> <!--Set the Log Threshold --> <!----> <!--The log Threshold determines the amount of information to log. --> <!--Selecting a lower level of logging includes the information --> <!--logged at the higher levels. For example, LOGLEVEL_ERROR --> <!--includes the information collected at LOGLEVEL_FATAL. --> <!----> <!--Choices are: --> <!--LOGLEVEL_FATAL - serious error, possibly a program halt. --> <!--LOGLEVEL_ERROR - a transient or self-correcting problem. --> <!--LOGLEVEL_WARNING - a problem that does not cause an error. --> <!--LOGLEVEL_INFO - reports the current state of the component. --> <!--LOGLEVEL_DEBUG1 - basic debugging information. --> <!--LOGLEVEL_DEBUG2 - advanced debugging information. --> <!--LOGLEVEL_DEBUG3 - logs performance-sensitive code. --> <!--LOGLEVEL_TRACE - used when you need to trace the code path --> <!--execution or capture metrics. Includes all previous levels. --> <!-- --> <!--If you do not specify a threshold, the default is WARNING. --> <!-- --> <!--In addition to specifying a threshold, you need to specify --> <!--if changes that you make to the logging configuration in --> <!--the NetPoint GUI overwrite the settings in this file. The --> <!--AutoSync parameter accomplishes this. This parameter takes a --> <!--value of True or False. If set to True, changes made in the --> <!--GUI overwrite changes in this config file. If False, changes --> <!--made in the GUI are only in effect until the server is --> <!--stopped or restarted, after which the settings in this file --> <!--overwrite the GUI settings. The default is True. --> <!-- --> <!-- --> <CompoundList xmlns="http://www.oblix.com" ListName="logframework.xml.staging"> <SimpleList> <NameValPair ParamName="LOG_THRESHOLD_LEVEL" Value="LOGLEVEL_WARNING" /> <NameValPair ParamName="AUTOSYNC" Value="True" /> <!-- SECURE_LOGGING flag can be used to turn on/off Secure Logging --> <!-- feature. By defalut this feature is tunred on. --> <NameValPair ParamName="SECURE_LOGGING" Value="On" /> <!-- In addition to specifying a log threshold, you need to --> <!-- configure log level for which Secure Logging should be --> <!-- applicable.Choices for this can be used same as that of --> <!-- LOG_THRESHOLD_LEVEL. Secure log threshold can be set using --> <!-- LOG_SECURITY_THRESHOLD_LEVEL flag. Default value for Secure --> <!-- log threshold is TRACE. --> <NameValPair ParamName="LOG_SECURITY_THRESHOLD_LEVEL" Value="LOGLEVEL_TRACE" /> <!-- LOG_SECURITY_ESCAPE_CHARS is used to configure escape sequence --> <!-- characters. This can be used to avoid additional information --> <!-- getting overwritten due to Secure Logging mechanism. Currently --> <!-- following characters have been identified as escape sequence. --> <!-- Configuring inappropriate characters may lead to sensitive --> <!-- information being unmasked. --> <NameValPair ParamName="LOG_SECURITY_ESCAPE_CHARS" Value="),]" /> <!-- LOG_SECURITY_MASK_LENGTH is used to specify default masking --> <!-- length if none is specified in FILTER_LIST. --> <!-- Default value for LOG_SECURITY_MASK_LENGTH is 300. --> <NameValPair ParamName="LOG_SECURITY_MASK_LENGTH" Value="300" / > </SimpleList> <!-- --> <!-- --> <!--============================================================ --> <!--============================================================ --> <!--Configure the Log Level --> <!-- --> <!-- --> <!--To configure a log level, you specify a name for the --> <!--configuration (for instance, MyErrorLog1) and --> <!--the log level that you are configuring. You can create --> <!--more than one configuration per log level if you want --> <!--to output to more than one destination. You can output to --> <!--the system log or to a file, as specified on --> <!--the LOG_WRITER parameter. The value for the LOG_WRITER --> <!--parameter may only be SysLogWriter, FileLogWriter or --> <!--MPFileLogWriter. The MPFileLogWriter is a multi-process safe --> <!--FileLogWriter. It should be used to log in webcomponents i.e --> <!--WebGate, Access Manager and WebPass loaded on multiprocess --> <!--webservers like Apache and IPlanet(UNIX) --> <!-- --> <!--If you do not specify an output destination, the default is --> <!--SysLogWriter. --> <!-- --> <!--If outputting to a file, you also specify a file name and --> <!--other parameters. Default parameter values are: --> <!--FILE_NAME: <installdir>/oblix/log/oblog.log --> <!--BUFFER_SIZE: 32767 (number of bytes) --> <!--MAX_ROTATION_SIZE: 5242880 (bytes, equivalent to 5MB) --> <!--MAX_ROTATION_TIME: 86400 (seconds, equivalent to one day) --> <!-- --> <!--Configuring the log level does not ensure that the data is --> <!--actually collected. Data collection for a log is --> <!--determined by the LOG_THRESHOLD_LEVEL parameter, above, --> <!--and the LOG_STATUS parameter in the log configuration. --> <!-- --> <!--If you do not provide a LOG_STATUS, the default for --> <!--LOGLEVEL_FATAL, LOGLEVEL_ERROR, and LOGLEVEL_WARNING, --> <!--is On. --> <!----> <!--This file contains several sample configurations that are --> <!--enclosed in comments. To use them, remove the comments. --> <!-- --> <CompoundList xmlns="http://www.oblix.com" ListName="LOG_CONFIG"> <!--Write all FATAL logs to the system logger. --> <ValNameList xmlns="http://www.oblix.com" ListName="LogFatal2Sys"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_FATAL" /> <NameValPair ParamName="LOG_WRITER" Value="SysLogWriter" /> <NameValPair ParamName="LOG_STATUS" Value="On" /> </ValNameList> <!--Write all logs to the Oracle log file. --> <ValNameList xmlns="http://www.oblix.com" ListName="LogAll2File"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_ALL" /> <NameValPair ParamName="LOG_WRITER" Value="FileLogWriter" /> <NameValPair ParamName="FILE_NAME" Value="oblog.log" /> <!-- Buffer up to 64 KB (expressed in bytes) of log entries before flushing to the file. --> <NameValPair ParamName="BUFFER_SIZE" Value="65535" /> <!--Rotate the log file once it exceeds 50 MB (expressed in bytes). --> <NameValPair ParamName="MAX_ROTATION_SIZE" Value="52428800" /> <!--Rotate the log file after 24 hours (expressed in seconds). --> <NameValPair ParamName="MAX_ROTATION_TIME" Value="86400" /> <NameValPair ParamName="LOG_STATUS" Value="On" /> </ValNameList> </CompoundList> <!-- List of values that can be specified in the module config --> <!-- --> <!-- On - Uses loglevel set in the loglevel threshold --> <!-- Off - No information is logged --> <!-- LOGLEVEL_FATAL - serious error, possibly a program halt. --> <!-- LOGLEVEL_ERROR - a transient or self-correcting problem. --> <!-- LOGLEVEL_WARNING - a problem that does not cause an error. --> <!-- LOGLEVEL_INFO - reports the current state of the component. --> <!-- LOGLEVEL_DEBUG1 - basic debugging information. --> <!-- LOGLEVEL_DEBUG2 - advanced debugging information. --> <!-- LOGLEVEL_DEBUG3 - logs performance-sensitive code. --> <!-- LOGLEVEL_TRACE - used when you need to trace the code path --> <!-- execution or capture metrics. Includes all previous levels. --> <!-- --> <!-- List of modules that can be specified in the module config --> <!-- --> <!-- ALL_MODULES - Applies to all log modules --> <!-- Specific module name - Applies to specific module --> <!-- --> <!-- --> <!-- <ValNameList --> <!-- xmlns="http://www.oblix.com" --> <!-- ListName="MODULE_CONFIG"> --> <!-- <NameValPair --> <!-- ParamName="CONNECTIVITY" --> <!-- Value="LOGLEVEL_TRACE"></NameValPair> --> <!-- </ValNameList> --> <!-- <!--FILTER_LIST is used to maintain list of attributes which need --> <!-- to be treated as sensitive and hence will be filtered out from --> <!-- from logs. FILTER_LIST consist of all attribute names along --> <!-- with corresponding masking lengths.There should be separate --> <!-- entry in the list for the display name of the attribute --> <!-- identified as sensitive. All attributes configured are case --> <!-- sensitive i.e. if we configured sensitive attribute homePhone --> <!-- as HomePhone then it will not get filtered out from logs. --> <!-- By default four attributes (password, Password, response and --> <!-- Response) are configured as sensitive --> <!-- A sample configuration is shown below --> <!-- <ValNameList --> <!-- xmlns="http://www.oblix.com" --> <!-- ListName="FILTER_LIST"> --> <!-- <NameValPair --> <!-- ParamName="password" --> <!-- Value="40"></NameValPair> --> <!-- <NameValPair --> <!-- ParamName="Password" --> <!-- Value="40"></NameValPair> --> <!-- <NameValPair --> <!-- ParamName="response" --> <!-- Value="40"></NameValPair> --> <!-- <NameValPair --> <!-- ParamName="Response" --> <!-- Value="40"></NameValPair> --> <!-- <NameValPair --> <!-- ParamName="homePhone" --> <!-- Value="40"></NameValPair> --> <!-- </ValNameList> --> <ValNameList xmlns="http://www.oblix.com" ListName="FILTER_LIST"> <NameValPair ParamName="password" Value="40" /> <NameValPair ParamName="Password" Value="40" /> <NameValPair ParamName="passwd" Value="40" /> <NameValPair ParamName="Passwd" Value="40" /> <NameValPair ParamName="response" Value="40" /> <NameValPair ParamName="Response" Value="40" /> </ValNameList> </CompoundList>
注意: アイデンティティ・システム・コンソール内のロギング設定を変更する場合、関連付けられるコンポーネント・インスタンスのログ構成ファイルはコメントなしで保存されます。詳細は、「アイデンティティ・システム・コンソールでのログの構成」を参照してください。 |
ログ出力を宛先に送信するには、ログ・ライターを構成します。ログ・ライターは、ログ出力を次のいずれかまたは両方に送信できます。またはいずれにも送信しないこともできます。
ログ・ファイル
このファイルは、コンポーネントのルート・インストール・ディレクトリの下にあります。
コンポーネントに対するホストのシステム・ファイル
複数のコンポーネントが同じホストに存在する場合、すべてのコンポーネントがそのホスト上のシステム・ログ・ファイルにデータを送信します。
特定のレベルのログまたは異なるレベルのログを、複数のタイプのログ・ライターに送信できます。たとえば、致命的データをシステム・ログに送信し、トレース・データをファイルに送信できます。または、致命的データをシステム・ログとファイルの両方に送信できます。
ログ・ハンドラ定義にあるLOG_WRITER
パラメータを使用して、ログ構成ファイル内のログ・ライターを定義します。詳細は、「2番目の複合リストおよびログ・ハンドラ」を参照してください。
ログ・ライターについて、表10-3で説明します。
表10-3 ログ・ライター
ライター | 説明 |
---|---|
ログに記録されるコンポーネントをホストするコンピュータのシステム・ログ・ファイルにデータを送信します。通常、システム・ログ・ファイルには、複数のアプリケーションおよびホスト・オペレーティング・システムによるイベント情報が含まれます。 Windowsマシンの場合、これは「マイ コンピュータ」、「管理」、「イベント ビューア」、「アプリケーション」にあるアプリケーション・ログ・ファイルです。 UNIXプラットフォームの場合、システム・ログ・ファイルの名前と場所は、システム管理者のコンピュータとプリファレンスに応じて異なります。ファイルの場所は、コンピュータの管理者に確認してください。 デフォルトのログ構成ファイルは、致命的メッセージ、エラー・メッセージおよび警告メッセージをシステム・ログ・ファイルに送信します。 |
|
このライターは、アクセス・サーバー、アイデンティティ・サーバーまたはその他のシングルプロセス・アプリケーションのログ・データをディスク・ファイルに保存する場合にお薦めします。 FileLogWriterは、ログ・ファイルを開き、おおよそのファイル・サイズ制限またはファイル・ローテーション間隔に達するまでディスク書込み用にファイルを開いたままにします。複数のプロセスが同じログ・ファイルに書き込む必要のある状況では、このログ・ライターをお薦めしません。このような状況では、MPFileLogWriterを使用してください。 |
|
このライターは、FileLogWriterに似ていますが、データをファイルに書き込むたびにログ・ファイルを開いて閉じる点が異なります。これにより、複数のプロセスが順番にファイルに書き込むことができます。ただし、これによってパフォーマンスが大幅に低下します。 MPFileLogWriterは、マルチプロセスWebサーバー(Apacheなど)またはSolarisバージョンのiPlanet Webサーバーにインストールされているアクセス・ゲートなど、マルチプロセス・アプリケーションに関連するプロセスの一部で、FileLogWriterがロギング・データの記録に失敗する場合にのみ使用することをお薦めします。 |
ログ構成ファイルは標準形式に準拠します。パラメータの編集や、ログ・ハンドラ定義と呼ばれる特定のセクションの追加または除去はできますが、ログ構成ファイルの基礎となる形式の変更はできません。
デフォルトのログ構成ファイルのリスティングは、例10-1または例10-8を参照してください。
この項には、次の各項目が含まれます。
ログ構成ファイルの先頭には、XMLファイル・ヘッダーがあります。
<?xml version="1.0" encoding="ISO-8859-1" ?>
ヘッダーは次の目的で使用します。
ヘッダーは、関連するXMLバージョン(常に1.0)を宣言します。
また、エンコーディング形式(常にISO-8559-1)を宣言します。
ヘッダーの後に、次のように区切られた最初の複合リストが続きます。
<CompoundList xmlns="http://www.oblix.com" ListName="logframework.xml.staging"> . . . </CompoundList>
最初の複合リストの構造は次のとおりです。
複合リスト開始タグは、xmlns
パラメータ内のログ構成ファイルの関連XMLネームスペースを示します。
また、複合リスト開始タグは、ListName
パラメータ内の複合リストの名前を指定します。
複合リスト終了タグは、ファイルの最後の近くで発生します。
この複合リストは、すべての構成情報を区切ります。
最初の複合リスト開始タグの後に、次のように、単純なリストでロギングのグローバル・デフォルトを設定します。
<SimpleList> . . . </SimpleList>
単純なリストの開始タグと終了タグとの間は、次のように構成します。
表10-4 最初の複合リストのグローバル・パラメータ
パラメータ | 説明 |
---|---|
デフォルトのロギングしきい値を設定します。 デフォルト値: 使用可能な値: 「ログ・レベルについて」に記載されているログ・レベルを参照してください。 グローバルしきい値により、特定のレベルおよびより一般的なレベルのログを収集し、下位レベルのログが収集されるのを防ぐことができます。このしきい値は、モジュール固有のしきい値でオーバーライドされます。詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。 |
|
アイデンティティ・システム・コンソールで実行されるロギング構成をログ構成ファイルに書き込むかどうかを決定します。 デフォルト値: True 使用可能な値: TrueまたはFalse |
|
|
セキュア・ロギングのメカニズムを動的に有効化または無効化します。サーバーやコンポーネントを再起動する必要はありません。 デフォルト値: On 使用可能な値: OnまたはOff |
|
セキュア・ロギングが有効なログしきい値を示します。 デフォルト値: 使用可能な値: 「ログ・レベルについて」に記載されているログ・レベルを参照してください。 注意: |
|
セキュア・ロギングのメカニズムによって追加の情報が上書きされるのを防ぐための、エスケープ・シーケンス文字を構成します。カンマ区切りリストを使用します。 デフォルト値: ),] 使用可能な値: 文字のみ 注意: デフォルト値を推奨します。不適切な文字を構成すると、機密情報がマスキングされない可能性があります。 |
|
FILTER_LISTで指定されていない場合に、デフォルトのマスキングの長さを指定します。 デフォルト値: 300 使用可能な値: 正の整数 注意: FILTER_LISTは、2番目の複合リスト(ログ・ハンドラ)の後に表示されます。詳細は、「機密属性のフィルタ処理」を参照してください。 |
例10-2は、oblog_config.xmlファイルの最初の複合リストに表示されるグローバル設定を含む単純なリストを示しています。
例10-2 グローバル設定を含む単純なリスト(oblog_config.xmlファイルの最初の複合リスト)
<SimpleList> <NameValPair ParamName="LOG_THRESHOLD_LEVEL" Value="LOGLEVEL_WARNING"> </NameValPair> <NameValPair ParamName="AUTOSYNC" Value="True"> </NameValPair> <NameValPair ParamName="SECURE_LOGGING" Value="On"> </NameValPair> <NameValPair ParamName="LOG_SECURITY_THRESHOLD_LEVEL" Value="LOGLEVEL_TRACE"> </NameValPair> <NameValPair ParamName="LOG_SECURITY_ESCAPE_CHARS" Value="),]"> </NameValPair> <NameValPair ParamName="LOG_SECURITY_MASK_LENGTH" Value="300"> </NameValPair> </SimpleList>
グローバル設定を含む単純なリストの後と最初の複合リストの開始タグおよび終了タグの間に、追加の複合リストを指定します。この複合リストには、ログ・ハンドラ定義が含まれます。このリストの開始タグおよび終了タグは次のとおりです。
<CompoundList xmlns="http://www.oblix.com" ListName="LOG_CONFIG"> . . . </CompoundList>
この複合リスト・タグは、次のように構成されます。
複合リスト開始タグ内で、xmlns
パラメータは関連XMLネームスペースを示します。
また、開始タグでは、リストの名前をListName
パラメータに指定します。
通常、このリストの名前はLOG_CONFIG
です。
ログ・ハンドラの複合リストの開始タグと終了タグとの間に、1つ以上のValNameList
要素を指定します。各ValNameList
要素には、ログ・ハンドラ定義が含まれます。この要素の各インスタンスの開始と終了は、次のとおりです。
<ValNameList xmlns="http://www.oblix.com" ListName="Unique_Name
">
. . .
</ValNameList>
ValNameList
要素は次のように構成されます。
開始タグは、関連XMLネームスペースをxmlns
パラメータに設定します。
また、開始タグは、ログ・ハンドラの名前をListName
パラメータに設定します。
ValNameList
の開始タグと終了タグとの間に、ログ・ハンドラを構成します。ログ・ハンドラ定義には、3つの必須NameValPair
要素が含まれます。
最初のNameValPair
要素は、ログ・ハンドラのロギング・レベルを定義します。
この要素にはParamName="LOG_LEVEL"
文が含まれ、その値は次のように表10-1の予約名です。
<NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_FATAL" />
2番目のNameValPair
要素は、ログ出力の宛先を定義します。
この要素にはParamName="LOG_WRITER"
文が含まれ、その値は次のように表10-3の予約名です。
<NameValPair ParamName="LOG_WRITER" Value="SysLogWriter" />
3番目のNameValPair
要素は、ログ・ハンドラのオンとオフを切り替えます。
この要素にはParamName="LOG_STATUS"
文が含まれ、次のように、On
またはOff
の値を伴います。
<NameValPair ParamName="LOG_STATUS" Value="On" />
最後に、ValNameList
の開始タグと終了タグとの間に、FileLogWriter
またはMPFileLogWriter
をログ・ライターとして指定する場合、次の一部またはすべてを追加できます。また、どれも追加しないこともできます。詳細は、表10-7を参照してください。
ログ・ハンドラを区切る複合リスト終了タグの後および最初の複合リストの終了タグの前に、モジュール固有のロギング・パラメータを追加できます。
詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。
モジュール固有のロギング・パラメータの後にはフィルタ・リストがあります。このリストでは、フィルタ処理によってログ・ファイルから除外される機密情報を指定します。たとえば、ロスト・パスワード管理用のパスワードおよびレスポンスは、フィルタ処理でログ・ファイルから除外できる機密情報です。
FILTER_LISTパラメータに関連付けられている名前と値の各ペアは、ログへの書込みの前にチェックする単語やフレーズの名前、およびその単語またはフレーズのマスキングの長さを指定します。ロギング時には、その単語またはフレーズがマスキングされ、ログ・ファイルから削除されます。
つまり、ロギング時には、Oracle Access Managerはマスキングされる値が属性、表示名またはそれ以外のもの(プレーン・テキスト)のいずれであるかを認識しません。セキュア・ロギングは、FILTER_LISTに追加された単語またはフレーズを検索し、検出されたそれらの単語やフレーズの後に続くすべてのデータをマスキングすることで実行されます。たとえば、次のような文があるとします。
\csabuild\coreid1014\np_common\db\ldap\util\ldap_util3.cpp:3107 "ldap_parse_result of Simple Bind" ld handle^0x0779FA00 result^0x09FB0088 bind^cn=orcladmin LDAP bind operation status code^0 Additional error message^ freeit^0 parse_rc^0
セキュア・ロギングを有効にしてFILTER_LISTに(属性でも表示名でもない)bindを追加すると、FILTER_LIST内の単語(ここではbind)に続くすべてのデータがマスキングされます。この例の場合、ログの内容は次のように表示されます。
\csabuild\coreid1014\np_common\db\ldap\util\ldap_util3.cpp:3107 "ldap_parse_result of Simple Bind" ld handle^0x0779FA00 result^0x09FB0088 bind^cn=orcladmin LDAP bind********** status code^0 Additional error message^ freeit^0 parse_rc^0
すべての属性は大/小文字が区別されます。たとえば、属性の表示名としてPasswordではなくpasswordと入力した場合、Passwordはフィルタ処理されません。デフォルトでは、password、Password、responseおよびResponseの4つの属性が、フィルタ・リスト内で常に構成されています。
デフォルトのマスキングの長さは40で、これら4つのデフォルト属性に対して個々に指定されています。デフォルト属性のデフォルトのマスキングの長さは、必要に応じて変更できます。フィルタ・リストにその他の属性を追加する場合は、マスキングの長さとして、より大きい値が必要になる可能性があります(例: 300)。
デフォルトのフィルタ・リストを例10-3に示します。
例10-3 FILTER_LISTによるログ・ファイル内の機密属性のマスキング
<ValNameList> xmlns="http://www.oblix.com" ListName="FILTER_LIST"> <NameValPair ParamName="password" Value="40"></NameValPair> <NameValPair ParamName="Password" Value="40"></NameValPair> <NameValPair ParamName="passwd" Value="40"></NameValPair> <NameValPair ParamName="Passwd" Value="40"></NameValPair> <NameValPair ParamName="response" Value="40"></NameValPair> <NameValPair ParamName="Response" Value="40"></NameValPair> </SimpleList>
フィルタ・リストに別の属性を追加する場合は、表示名および属性名をディレクトリ・サーバーに含める必要があります。
アイデンティティ・サーバーまたはWebパスのログでユーザー・パスワードをフィルタ処理する場合は、WebGateが無効であることを確認する必要があります。WebGateを無効にすると、事前構成済ログイン・ページでフォーム認証が自動的に使用されます。この場合、別個のHTMLログイン・ページを作成したり、フォームベース認証を構成する必要はありません。詳細は、「機密属性のフィルタ処理」を参照してください。
XMLを使用する場合、要素自体が変更されず、最初に囲まれていたタグ内に含まれているかぎり、リスト内で並列の要素を任意の順序で指定できます。たとえば、例10-4と例10-5のリストは同等です。
例10-4 有効な名前/値リスト
<ValNameList xmlns="http://www.example.com" ListName="LogError2Sys"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_ERROR" /> <NameValPair ParamName="LOG_WRITER" Value="SysLogWriter" /> <NameValPair ParamName="LOG_STATUS" Value="On" /> </ValNameList>
例10-5 別の有効な名前/値リスト
<ValNameList xmlns="http://www.example.com" ListName="LogError2Sys"> <NameValPair ParamName="LOG_WRITER" Value="SysLogWriter" /> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_ERROR" /> <NameValPair ParamName="LOG_STATUS" Value="On" /> </ValNameList>
同様に、ある特定のタグ内の属性(常にタグの山カッコ内の最初の要素である必要があるタグ名を除く)は、変更されておらず、最初に囲まれていたタグ要素内にあるかぎり、並べ替えることができます。例10-6と例10-7の名前/値リストの開始タグは同等です。
様々な要因により、ロギングが特定のログ・ハンドラに対してアクティブかどうかが決まります。表10-5に、これらの要因をリストします。
表10-5 ロギングがアクティブかどうかを決定する要因
要因 | 重要性 | 説明 |
---|---|---|
プライマリ |
このパラメータは、ロギングのカットオフを設定します。しきい値よりも詳細なログ・レベルは抑制されます。有効なログ・レベルは、表10-1を参照してください。
アイデンティティ・サーバーの場合のみ、アイデンティティ・システム・コンソールでしきい値を構成できます。詳細は、「アイデンティティ・システム・コンソールでのログの構成」を参照してください。 |
|
|
プライマリ |
このパラメータは、グローバル・ロギングしきい値のモジュール固有のオーバーライドを設定します。 詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。 |
セカンダリ |
このパラメータは、ロギングしきい値またはモジュール固有のオーバーライドで上書きされないかぎり、ロギングのオンとオフを切り替えます。 |
|
セカンダリ |
このパラメータが
|
|
ログ・ハンドラの物理的な位置 |
セカンダリ |
「ログ・ハンドラの優先順位について」を参照してください。 |
ログ構成ファイルに単一のログ・レベルに対して最大3つのログ・ハンドラ定義を構成できます。特定のログ・レベルの出力を、表10-3で説明される3つの各ログ・ライターに送信する場合は、3つの異なるログ・ハンドラが必要です。
異なるLOG_STATUS
設定をこれらのログ・ハンドラに設定する場合、ログ構成ファイルの物理的な終わりに最も近いログ・ハンドラ定義の設定が、同一のログ・レベルの他のログ・ハンドラ定義のステータスを設定します。たとえば、「エラー」ログ・レベルの最初の2つのログ・ハンドラに対してLOG_STATUS
をOff
に設定できますが、構成ファイル内の3番目の最後のログ・ハンドラに対してLOG_STATUS
をOn
に設定すると、ロギングは3つのハンドラすべてに対して行われます。
LOG_STATUS
設定は、そのレベルが現在のLOG_THRESHOLD_LEVEL
よりもきめ細かい場合には、無意味になります。この場合、しきい値がモジュール固有のしきい値でオーバーライドされないかぎり、ロギングはこのレベルでアクティブ化されません。詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。
各ログ・ハンドラ定義には、最低でも、表10-6にリストする5つのパラメータが含まれます。
表10-6 必須のログ構成ファイル・パラメータ
パラメータ | コメント |
---|---|
このパラメータは 現在のリストの関連XMLネームスペースを指定し、ある特定のロギング構成ファイル内のすべてのログ・ハンドラ定義に対して同一です。次に例を示します。
|
|
このパラメータは 新規のログ・ハンドラ定義の作成の際、他のログ・ハンドラと間違えることのない憶えやすい名前を選択してください。次に例を示します。
|
|
これにより、ログ・レベルが指定されます。詳細は、表10-1を参照してください。 デフォルトのロギング構成ファイルは、「致命的」、「エラー」、「警告」の3つのレベルのロギングをアクティブにします。 |
|
このログ・ライターのログ出力の宛先を指定します。詳細は、表10-3を参照してください。 デフォルトのログ構成ファイルは、出力をシステム・ログとロギングを行っているコンポーネントのログ・データ・ファイルの両方に送信します。 |
|
このパラメータは、ログ・ハンドラを |
LOG_WRITER
パラメータの値としてFileLogWriter
またはMPFileLogWriter
を指定した場合は、表10-7の4つのパラメータが意味を持ちます。
表10-7 ログ・データ・ファイル構成パラメータ
パラメータ | 説明 | デフォルト |
---|---|---|
必須。FileLogWriterまたはMPFileLogWriterに対してのみ使用されます。ロギング情報が書き込まれるファイルの名前および場所です。 ファイル名に絶対パスを付加して、次のデフォルトの場所以外に格納できます。 component_install_dir\oblix\logs component_install_dirは、システム・イベントをロギングするコンポーネントのルート・インストール・ディレクトリです。 出力をFileLogWriterまたはMPFileLogWriterに送信する複数のログ・ハンドラ定義を作成した場合は、各ケースに一意のファイル名を指定して、複数のハンドラが同じファイルに書込みを試行しないようにします。この注意事項は、SysLogWriterにアクセスしているログ・ハンドラには適用されません。 |
oblog.log |
|
オプション。これは、ログ・ファイルに書き込まれるログ・データのバッファのサイズ(バイト単位)です。 バッファ値をゼロ(0)または負の数に設定した場合、デフォルト値が使用されます。バッファせずにログ・ファイルを即座に書き込む場合、5などの小さい値に設定します。システムに障害がある場合、小さいバッファ・サイズを設定することをお薦めします。 |
65535 (64KB) |
|
オプション。ログ・ファイルがこのサイズ(バイト単位)に達すると、タイムスタンプがファイル名に追加されます。たとえば、"oblog.log"は"oblog.log1081303126"になります。新しいデータが元の名前とともにファイルに書き込まれます。 |
52428800 (512KB) |
|
オプション。最大ローテーション・サイズに達したかどうかにかかわらず、ログ・ファイル名が変更される時間間隔(秒単位)。 ファイルをローテーションする時間をローテーション時間で決定する場合、作成されるログ・ファイルに追加される数字は、ローテーション間隔の秒数だけ異なります。たとえば、"oblog.log. 1081389526"および"oblog.log. 1081303126"は86,400だけ異なります。これは、24時間の秒数です。ロギング構成ファイルで設定されたローテーション間隔です。 |
86400 (1日の秒数) |
各コンポーネントとともにインストールされるログ構成ファイルは、ログに記録されるイベントの階層の上位3つのレベル(「致命的」、「エラー」および「警告」)のみアクティブにし、すべてのログ出力をシステム・ログに送信ます。
Windowsコンピュータでは、「マイ コンピュータ」、「管理」、「イベント ビューア」、「アプリケーション」にナビゲートすることで、ロギングしているコンポーネントをホストするコンピュータのシステム・ログを表示できます。ログに記録されるコンポーネントのシステム・イベント・エントリは、オペレーティング・システムおよびOracle Access Manager以外のアプリケーションに対してレポートされるシステム・イベントに散在します。
SolarisおよびLinux環境では、システム・ログの場所はシステム構成ファイルに記録されます。このシステム構成ファイルの項目はコンピュータごとに異なります。このシステム・ファイルまたはシステム・ログの名前と場所については、システム・ログの調査対象のコンポーネントをホストするコンピュータの所有者に確認してください。
例10-8に、デフォルトのログ構成ファイルを示します。ここでは、ファイル構造を明らかにするためにコメントを削除してあります。
例10-8 埋込みコメントなしのデフォルトのログ構成ファイル
<?xml version="1.0" encoding="utf-8"?> <CompoundList xmlns="http://www.oblix.com ListName="oblog_config.xml.staging"> <SimpleList> <NameValPair ParamName="LOG_THRESHOLD_LEVEL" Value="LOGLEVEL_WARNING"></NameValPair> </SimpleList> <SimpleList> <NameValPair ParamName="AUTOSYNC" Value="True"></NameValPair> </SimpleList> <SimpleList> <NameValPair ParamName="SECURE_LOGGING" Value="On"></NameValPair> </SimpleList> <SimpleList> <NameValPair ParamName="LOG_SECURITY_THRESHOLD_LEVEL" Value="LOGLEVEL_TRACE"></NameValPair> </SimpleList> <SimpleList> <NameValPair ParamName="LOG_SECURITY_ESCAPE_CHARS" Value="),]"></NameValPair> </SimpleList> <SimpleList> <NameValPair ParamName="LOG_SECURITY_MASK_LENGTH" Value="300"></NameValPair> </SimpleList> <CompoundList xmlns="http://www.oblix.com" ListName="LOG_CONFIG"> <ValNameList xmlns="http://www.oblix.com" ListName="LogFatal2Sys"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_FATAL"></NameValPair> <NameValPair ParamName="LOG_WRITER" Value="SysLogWriter"></NameValPair> <NameValPair ParamName="LOG_STATUS" Value="On"></NameValPair> </ValNameList> <ValNameList xmlns="http://www.oblix.com" ListName="LogAll2File"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_ALL"></NameValPair> <NameValPair ParamName="LOG_WRITER" Value="FileLogWriter"></NameValPair> <NameValPair ParamName="FILE_NAME" Value="oblog.log"></NameValPair> <NameValPair ParamName="BUFFER_SIZE" Value="65535"></NameValPair> <NameValPair ParamName="MAX_ROTATION_SIZE" Value="52428800"></NameValPair> <NameValPair ParamName="MAX_ROTATION_TIME" Value="86400"></NameValPair> <NameValPair ParamName="LOG_STATUS" Value="On"></NameValPair> </ValNameList> </CompoundList> <ValNameList xmlns="http://www.oblix.com" ListName="FILTER_LIST"> <NameValPair ParamName="password" Value="40"></NameValPair> <NameValPair ParamName="Password" Value="40"></NameValPair> <NameValPair ParamName="passwd" Value="40"></NameValPair> <NameValPair ParamName="Passwd" Value="40"></NameValPair> <NameValPair ParamName="response" Value="40"></NameValPair> <NameValPair ParamName="Response" Value="40"></NameValPair> </ValNameList> </CompoundList>
デフォルトの構成ファイルは致命的メッセージ、エラー・メッセージおよび警告メッセージをシステム・ログとoblog.logというログ・データ・ファイルの両方に送信します。
ファイルの上部近くにある単純なリストは、次のパラメータを設定します。
これはLOG_THRESHOLD_LEVEL
を警告
に設定します。
しきい値は警告よりもきめ細かいレベルのロギングを抑制します。このしきい値はオーバーライドできます。詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。
単純なリストでは、AUTOOSYNC
パラメータもTrue
に設定されます。
True
に設定された場合、この設定により、アイデンティティ・システム・コンソールで設定した構成値をこの構成ファイルに保存して、アイデンティティ・サーバーの再起動後も保持できます。このパラメータは、アイデンティティ・サーバーにのみ適用されます。
ネストした複合リストには、4つのログ・ハンドラ定義が含まれます。
LogFatal2Sys
という名前の最初のログ・ハンドラ定義は、ロギング・レベルを致命的
に設定し、LOG_STATUS
をOnに設定します。
しきい値レベルは警告で、致命的よりもきめ細かいため、この定義は有効になりません。LOG_WRITER
パラメータで指定されたように、ログ出力はシステム・ログに書き込まれます。
LogError2Sys
ログ・ハンドラ定義は、エラー・レベル・メッセージをシステム・ログに送信します。
エラーは現在のしきい値レベル(警告)より前にあるため、この定義が有効になります。
LogWarning2Sys
定義は、警告レベル出力をシステム・ログに送信します。
前の2つのログ・ハンドラ定義と同様に、この定義は現在のLOG_THRESHOLD_LEVEL
パラメータによってオーバーライドされません。
最後のログ・ハンドラ定義であるLogAll2File
は、すべてのログ・レベルの出力をoblog.logというディスク・ファイルに送信します。
LOG_THRESHOLD_LEVEL
パラメータを警告に設定すると、「致命的」、「エラー」および「警告」レベルの出力のみがこのログ・データ・ファイルに記録されます。LogAll2File
からの出力はFileLogWriter
に送信されるため、ファイル名、バッファ・サイズ、ローテーション・サイズおよびローテーション間隔を制御するパラメータはすべて有効になります。
アイデンティティ・サーバーの場合のみ、アイデンティティ・システム・コンソールで特定のログ設定を変更できます。または、ログ構成ファイルを手動で編集できます。
アイデンティティ・システム・コンソール内のロギング設定を変更する場合、関連付けられるコンポーネント・インスタンスのログ構成ファイルはコメントなしで保存されます。元のコメントを表示するには、元のロギング構成ファイルの次の読取り専用の複製を開きます。
IdentityServer_install_dir/oblix/config/oblog_config_original.xml
IdentityServer_install_dirは、アイデンティティ・サーバーのルート・インストール・フォルダです。
アイデンティティ・システムのランディング・ページで、「アイデンティティ・システム・コンソール」リンクをクリックします。
すでにログインしている場合は、「アイデンティティ・システム・コンソール」タブをクリックします。
アイデンティティ・システム・コンソールで、「システム構成」サブタブをクリックし、次に左側のナビゲーション・ペインの「アイデンティティ・サーバー」リンクをクリックします。
「すべてのアイデンティティ・サーバーをリスト」ページが表示されます。
アクティビティをログに記録するアイデンティティ・サーバーのリンクをクリックします。
「アイデンティティ・サーバーの詳細」ページが表示され、ページの下部にログ・ハンドラ定義のリストが表示されます。
「ログ・ハンドラ定義」表の上の「ログのしきい値」設定を調べます。これは現在のLOG_THRESHOLD_LEVEL
を表します。
この設定を変更する場合は、ページの下部にある「変更」をクリックし、「アイデンティティ・システム・コンソールからログしきい値を変更する手順」に進みます。それ以外の場合は、次の手順に進みます。
ログ・ハンドラ定義の表で、検証または変更するログ・ハンドラのリンクをクリックします。
「ログ・ハンドラ定義を変更します。」ページが表示されます。このページで、表10-6で説明した値を指定できます。「出力先」フィールドで「ファイル」を指定した場合は、表0-7で説明したフィールドに入力する必要があります。
表10-7にリストしたように、ログ・ファイル名、ログ・ファイルの最大サイズ、ログ・ファイル・ローテーション間隔およびログ・バッファの最大サイズのデフォルトを変更できます。
「保存」をクリックします。
アイデンティティ・システム・コンソールからログしきい値を変更する手順
アイデンティティ・システム・コンソールで、「システム構成」サブタブをクリックし、次に左側のナビゲーション・ペインの「アイデンティティ・サーバー」をクリックします。
設定を調べるアイデンティティ・サーバーの名前をクリックします。
アイデンティティ・サーバーの詳細ページの下部にある「変更」をクリックします。
リストを使用して、「ログのしきい値」を目的の値に設定します。
「保存」をクリックします。
変更が即時に有効になります。ログ構成ファイル内でAUTOSYNC
がTrueの場合は、変更がログ構成ファイルに書き込まれるため、サーバーの再起動後も変更が保持されます。
アイデンティティ・システム・コンソールでログ・ハンドラ定義を追加または削除する手順
アイデンティティ・システム・コンソールで、「システム構成」サブタブをクリックし、次に左側のナビゲーション・ペインの「アイデンティティ・サーバー」リンクをクリックします。
ログ・ハンドラ定義を追加するアイデンティティ・サーバーの名前をクリックします。
ページの下部にある「変更」をクリックします。
「アイデンティティ・サーバーの変更」ページが表示されます。
「ログ・ハンドラ定義」の下で、適切なアクションを実行します。
ログ出力構成を削除するには、適切なリンクの横のボックスをチェックし、「削除」をクリックします。
ログ・ライターを追加するには、「追加」をクリックします。
「追加」をクリックした場合は、「新規ログ・ハンドラ定義を追加します。」ページが表示されます。
新規ログ・ライターの名前とログ・レベルを指定します。
「ログ・ハンドラ定義を表示または変更する手順」で説明したように、ログ・レベルが現在のログしきい値レベル以上であることを確認します。
新規ログ・レベルが現在のしきい値レベルよりも低い場合は、「アイデンティティ・システム・コンソールからログしきい値を変更する手順」で詳細に説明したように、しきい値レベルを新しいログ・レベル以下に設定します。
システム・ログ以外のファイルへの出力を選択する場合は、表10-7の説明に従ってファイル名とパスを指定する必要があります。
「保存」をクリックします。
問題の診断では、コンポーネントが実行するすべての操作の詳細なログを必要としない場合があります。たとえば、アイデンティティ・サーバーがそのディレクトリに送信するリクエストの応答時間の遅れを診断する場合、LDAP操作の詳細ログを必要とし、それ以外タイプの操作は詳細でなくても構いません。
リリース10.1.4.2では、Oracle Access Managerで一部のコンポーネントの詳細なログを生成し、他のコンポーネントでは簡潔なログを生成するまたはログを生成しないように、モジュール固有または機能固有のしきい値レベルをログ構成ファイルで構成できます。
モジュール固有ロギングしきい値は、oblog_config.xmlファイルのMODULE_CONFIG
セクションで構成します。MODULE_CONFIG
セクションは、このファイルの単純なリストのセクション内のLOG_THRESHOLD_LEVEL
で指定するグローバルのデフォルトをオーバーライドします。
この項には、次の各項目が含まれます。
「ログ構成ファイルの構造およびパラメータ」で説明されているように、ログ構成ファイルでグローバル・ロギングしきい値を構成します。次に、グローバル設定LOG_THRESHOLD_LEVEL
の例を示します。
<SimpleList> <NameValPair ParamName="LOG_THRESHOLD_LEVEL" Value="LOGLEVEL_WARNING" /> . . . </SimpleList>
グローバルしきい値に加えて、構成ファイルには、機能固有またはモジュール固有のログしきい値を定義するValNameList
を含めることができます。常に、このリストの名前はMODULE_CONFIG
です。ログ構成ファイルで許可されるのはこのリストの1つのインスタンスのみで、リストの情報はファイル内に定義されるすべてのログに適用されます。リリース10.1.4.2では、デフォルトのログ構成ファイルにはMODULE_CONFIG
リストのコマンドのサンプルが含まれます。
MODULE_CONFIG
リストの各項目は、次の例に示すように、モジュールのロギング・レベルを設定します。
<ValNameList xmlns="http://www.oblix.com" ListName="MODULE_CONFIG"> <NameValPair ParamName="LDAP" Value="LOGLEVEL_TRACE"></NameValPair> <NameValPair ParamName="DB_RUNTIME" Value="LOGLEVEL_TRACE"></NameValPair> </ValNameList>
このセクションの要素を次に示します。
ValNameList
タグは、モジュール固有ロギングしきい値を区切ります。
1つのNameValPair
タグが、特定の各モジュール固有ロギングしきい値を区切ります。
ParamName
パラメータは、モジュールまたは機能の名前を設定します。
使用可能な値のリストは、表10-8を参照してください。
Value
パラメータは、ParanName
パラメータの値として指定したモジュールのロギングしきい値を設定します。
表10-1に、Value
パラメータで使用可能な値をリストします。これらの値に加えて、値を「オン」
に設定するとモジュールのロギングを有効にし、値を「オフ」
に設定すると特定のモジュールのロギングを無効にできます。
ログ構成ファイルの終了近く、ログ・ハンドラの複合リストの終了タグの後およびファイル内の最初の複合リストの終了タグの前に、モジュール固有しきい値セクションを追加します。
このセクションには、モジュール固有ロギング・セクションの例が含まれます。詳細は、「モジュール固有しきい値を構成する手順」を参照してください。
表10-8に、MODULE_CONFIG
リスト内でParamName
パラメータに指定できる値のリストの一部を示します。
表10-8 モジュール固有ロギングしきい値に構成できるParamNameの値
ParamName値 | このパラメータで設定するロギングしきい値 |
---|---|
|
アクセス・システムのポリシーの一部として構成された起動されるアクションのロギングしきい値を設定します。 <ValNameList xmlns="http://www.oblix.com" ListName="MODULE_CONFIG"> <NameValPair Paramname="AAA_ACTIONS" Value="OFF"> </NameValPair> 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
Access Managerエンジンで実行されたアクティビティのロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
リソース操作が保護されるかどうかの決定に関連するすべてのアクセス・システム・アクティビティのロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
アクセス・クライアントのアクセス・ゲートまたはWebGateで実行された操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
アクセス・ゲートで実行された操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
ポリシー・マネージャで実行された操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
Access Manager SDKインタフェースで実行された操作のロギングしきい値を設定します。 詳細は、『Oracle Access Manager開発者ガイド』を参照してください。 |
|
アクセス・サーバーで実行された操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
Access Manager SDKのロギングしきい値を設定します。 詳細は、『Oracle Access Manager開発者ガイド』を参照してください。 |
|
監査のロギングしきい値を設定します。 詳細は、「監査」を参照してください。 |
|
ユーザー認証操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
認証スキーム管理のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
認証プラグインで実行された操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
ユーザー認可操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
認可スキーム管理のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
認可プラグイン操作のロギングしきい値を設定します。 詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。 |
|
キャッシュ管理およびキャッシュ上の操作のロギングしきい値を設定します。 |
|
接続管理のロギングしきい値を設定します。 |
|
接続ランタイムのロギングしきい値を設定します。 |
|
クライアントとサーバー間の接続性およびメッセージのロギングしきい値を設定します。 |
|
データ・ストア・インタフェース・レイヤー構成のロギングしきい値を設定します。 |
|
データ・ストア・インタフェース・レイヤーのランタイムのロギングしきい値を設定します。 |
|
診断フレームワークのロギングしきい値を設定します。 |
|
ディレクトリ内のグループ・マネージャ・データのアクセスをロギングするしきい値を設定します。 |
|
グループ・マネージャ操作をロギングするしきい値を設定します。 |
|
HTTPリクエスト処理をロギングするしきい値を設定します。 |
|
IDXML操作をロギングするしきい値を設定します。 詳細は、『Oracle Access Manager開発者ガイド』を参照してください。 |
|
LDAP SDKのロギングしきい値を設定します。次に例を示します。 <ValNameList xmlns="http://www.oblix.com" ListName="MODULE_CONFIG"> <NameValPair Paramname="LDAP" Value="LOGLEVEL_TRACE"> </NameValPair> |
|
ロスト・パスワード管理をロギングするしきい値を設定します。 詳細は、「ロスト・パスワード管理」を参照してください。 |
|
ネットワークAPIのロギングしきい値を設定します。 |
|
ObMyGroups処理のロギングしきい値を設定します。これは、検索を開始した人物がメンバーであるグループの検索を表します。 |
|
Identityクライアントのロギングしきい値を設定します。 |
|
アイデンティティ・サーバー・エンジンのロギングしきい値を設定します。 |
|
アイデンティティ・システム管理のロギングしきい値を設定します。 |
|
アイデンティティ・サーバーで実行された操作のロギングしきい値を設定します。 |
|
組織マネージャで実行された操作のロギングしきい値を設定します。 |
|
ポリシーおよびポリシー・ドメイン管理のロギングしきい値を設定します。 |
|
アイデンティティ・イベントAPIプラグイン操作のロギングしきい値を設定します。 詳細は、『Oracle Access Manager開発者ガイド』を参照してください。 |
|
クエリー・ビルダー操作のロギングしきい値を設定します。 |
|
コールで消費される時間のロギングしきい値を設定します。 詳細は、「リクエストの処理に要する時間のロギング」を参照してください。 |
|
セキュリティおよび暗号化ライブラリのロギングしきい値を設定します。 |
|
セレクタ操作のロギングしきい値を設定します。 |
|
サーバー・インフラストラクチャのロギングしきい値を設定します。 |
|
SNMPアクティビティのロギングしきい値を設定します。 詳細は、「SNMPモニタリング」を参照してください。 |
|
シングル・サインオン・トークン管理。 |
|
ユーザー・マネージャ内の管理操作のロギングしきい値を設定します。 |
|
Uidinfoキャッシュのロギングしきい値を設定します。 |
|
ユーザー・マネージャで実行された操作のロギングしきい値を設定します。 |
|
ユーザー・サービス・センター(ユーザー・マネージャ)に対するIDXMLコールのロギングしきい値を設定します。 |
|
ディレクトリ内のユーザー情報を検索するロギングしきい値を設定します。 |
|
ユーティリティ・クラスのロギングしきい値を設定します。 |
|
Webサーバー・プラグイン・インタフェースのロギングしきい値を設定します。 |
|
ワークフロー実行のロギングしきい値を設定します。 詳細は、「アイデンティティ機能とワークフローの連携」を参照してください。 |
|
ワークフロー構成および管理のロギングしきい値を設定します。 詳細は、「アイデンティティ機能とワークフローの連携」を参照してください。 |
|
XMLインフラストラクチャのロギングしきい値を設定します。 |
次の手順では、機能固有またはモジュール固有のログ・レベルしきい値を構成する方法について説明します。
注意: 次の例は、モジュール固有ロギングしきい値に関する拡張コメントのあるログ構成ファイルを示しています。10.1.4.2パッチ・リリースがインストールされている場合、コメントはこのファイルには表示されません。 |
次の場所にあるログ構成ファイルを開きます。
component_install_dir\identity|access\oblix\config
component_install_dirはロギングを構成するコンポーネントがインストールされているディレクトリで、identity|accessはアイデンティティ・システムとアクセス・システムの指定をそれぞれ表します。
MODULE_CONFIG
にListName
が指定されたValNameList
セクションがこのファイル内に存在していない場合、次のようなセクションを作成します。
<ValNameList xmlns="http://www.oblix.com" ListName="MODULE_CONFIG"> </ValNameList>
ログ・ハンドラ定義を含むコンポーネント・リストの終了タグの後に、このリストを置きます。終了タグの直後にコメントがある場合、コメントの後にリストを置きます。
新しいValNameList
要素の開始タグと終了タグとの間に、1つ以上のNameValPair
要素を構成します。
この要素には、ParamName
パラメータおよびValue
パラメータが含まれます。ParamName
パラメータに指定できるモジュールの詳細は、表10-8を参照してください。値の詳細は表10-1を参照してください。または、On
かOff
の値を指定してください。次に、例を示します。
<NameValPair ParamName="LDAP" Value="LOGLEVEL_TRACE"></NameValPair>
ValNameList
内に複数のValNamePair
要素を指定できます。
完全なモジュール固有ロギングしきい値セクションは、次に示す例で太字で表示されています。
<!-- ============================================================ --> <!-- Configure the Log Level --> . . . <CompoundList xmlns="http://www.oblix.com" ListName="LOG_CONFIG"> <!-- Write all FATAL logs to the system logger. --> <ValNameList xmlns="http://www.oblix.com" ListName="LogFatal2Sys"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_FATAL"> </NameValPair> <NameValPair ParamName="LOG_WRITER" Value="SysLogWriter"> </NameValPair> <NameValPair ParamName="LOG_STATUS" Value="On"> </NameValPair> </ValNameList> . . . </CompoundList> <!-- List of values that can be specified in the module config --> <!-- --> <!-- On - Uses loglevel set in the loglevel threshold --> <!-- Off - No information is logged --> <!-- LOGLEVEL_FATAL - serious error, possibly a program halt. --> <!-- LOGLEVEL_ERROR - a transient or self-correcting problem. --> <!-- LOGLEVEL_WARNING - a problem that does not cause an error. --> <!-- LOGLEVEL_INFO - reports the current state of the component. --> <!-- LOGLEVEL_DEBUG1 - basic debugging information. --> <!-- LOGLEVEL_DEBUG2 - advanced debugging information. --> <!-- LOGLEVEL_DEBUG3 - logs performance-sensitive code. --> <!-- LOGLEVEL_TRACE - used when you need to trace the code path --> <!-- execution or capture metrics. Includes all previous levels. --> <!-- --> <!-- List of modules that can be specified in the module config --> <!-- --> <!-- ALL_MODULES - Applies to all log modules --> <!-- Specific module name - Applies to specific module --> <!-- --> <!-- --> <!-- <ValNameList --> <!-- xmlns="http://www.oblix.com" --> <!-- ListName="MODULE_CONFIG"> --> <!-- <NameValPair --> <!-- ParamName="CONNECTIVITY" --> <!-- Value="LOGLEVEL_TRACE"></NameValPair> --> <!-- </ValNameList> --><ValNameList
xmlns="http://www.oblix.com"
ListName="MODULE_CONFIG">
<NameValPair
ParamName="LDAP"
Value="LOGLEVEL_TRACE"></NameValPair>
<NameValPair
ParamName="DB_RUNTIME"
Value="LOGLEVEL_TRACE">
</NameValPair>
</ValNameList>
</CompoundList>
前述のように、セキュア・ロギングをアクティブ化してデフォルトのフィルタ・リストを拡張すると、ログ・ファイルの機密情報をマスキングできます。
フィルタ・リストに別の属性を追加する場合は、表示名および属性名をディレクトリ・サーバーに含める必要があります。次の手順では、このタスクの実行方法を説明します。この例では、ユーザーの自宅電話番号(表示名はHome Phone、属性名はhomePhone)をフィルタ処理します。実際には、任意の属性をフィルタ処理できます。
注意: FILTER_LISTに値を追加するごとに、セキュア・ロギングの使用にかかるランタイム・コストが増加します。 |
ランタイム・コストを抑えるために、FILTER_LISTの使用を最適化することをお薦めします。たとえば、ParamNameの2つのバリエーション(User PasswordとuserPassword)を追加するかわりに、1つのみを使用できます。ParamNameとしてPasswordを使用すると、User Password、userPassword、およびPasswordで終わるその他の単語がマスキングされます。また、FILTER_LISTにHome PhoneとhomePhoneの両方を含めるかわりに、Phoneのみを使用できます。
アイデンティティ・サーバーおよびWebパスのログでユーザー・パスワードをフィルタ処理する場合は、WebGateを無効にする必要があります(次の手順を参照してください)。ユーザー・パスワードをフィルタ処理しない場合は、関連する手順をスキップしてください。
フィルタ・リストに機密属性を追加する手順
アイデンティティ・システム・コンソールで、フィルタ処理する表示名および属性名を探します。これを行うには、「共通構成」→「オブジェクト・クラス」をクリックします。
次のように、属性および対応する表示名を変更します。
構成済Personオブジェクトをクリックします(例: genSiteOrgPerson)。
「属性の変更」ボタンをクリックします。
スクロールして、目的の属性および対応する表示名を探します。
「属性の変更」ページのリストで、手順6でフィルタ・リストに追加する属性名と表示名を探します。
属性: homePhone
表示名: Home Phone
テキスト・エディタで適切なログ構成ファイルを開きます。
component_install_dir\identity|access\oblix\config\oblog_config.xml
component_install_dirは、セキュア・ロギングを構成するコンポーネントがインストールされているディレクトリです。
oblog_config.xmlで次の手順を行います。
セキュア・ロギングがアクティブであることを確認します。次に例を示します。
<SimpleList> <NameValPair ParamName="SECURE_LOGGING" Value="On"></NameValPair> </SimpleList>
ファイルの最後にあるFILTER_LIST
を探します。次に例を示します。
<ValNameList xmlns="http://www.oblix.com" ListName="FILTER_LIST"> <NameValPair ParamName="password" Value="40" /> <NameValPair ParamName="Password" Value="40" /> <NameValPair ParamName="response" Value="40" /> <NameValPair ParamName="Response" Value="40" /> </ValNameList>
マスキングする表示名とマスキングの長さの値を追加し、属性とマスキングの長さの値を追加します。次に例を示します。
<NameValPair ParamName="Home Phone" Value="300" /> <NameValPair ParamName="homePhone" Value="300" />
注意: テスト用に、LOG_THRESHOLD_LEVEL およびLOG_SECURITY_THRESHOLD_LEVEL をTRACE に設定します。手順6aを参照してください。 |
LOG_THRESHOLD_LEVEL
とLOG_SECURITY_THRESHOLD_LEVEL
が同じレベルである、または互いに一貫性があることを確認します(表10-4を参照してください)。次に例を示します。
<SimpleList> <NameValPair ParamName="LOG_THRESHOLD_LEVEL" Value="LOGLEVEL_WARNING" /> </SimpleList> ... <SimpleList> <NameValPair ParamName="LOG_SECURITY_THRESHOLD_LEVEL" Value="LOGLEVEL_ WARNING" /> </SimpleList>
oblog_config.xmlファイルを保存します。
ユーザー・パスワードのフィルタ処理: 次の手順を実行し、「フィルタ・リスト」を参照します。
oblog_config.xmlのフィルタ・リストに表示名User Passwordおよび対応する属性を追加し、それぞれのマスキングの長さを設定します。次に例を示します。
<ValNameList xmlns="http://www.oblix.com" ListName="FILTER_LIST"> ... <NameValPair ParamName="User Password" Value="40" /> <NameValPair ParamName="userPassword" Value="40" /> </ValNameList>
WebGateの無効化: アクセス・システム・コンソールの「アクセス・システム構成」タブ→「アクセス・ゲート構成」をクリックして「WebGate」を探します。名前のリンクをクリックし、構成ページの「状態」で「無効」をクリックして変更を保存します。
ユーザー・パスワードのフィルタ処理の詳細は、「フィルタ・リスト」を参照してください。WebGateの構成の詳細は、『Oracle Access Managerアクセス管理ガイド』を参照してください。
アイデンティティ・システムにログインします。
次の手順で、セキュア・ロギングおよび機密情報のフィルタ処理をテストします。
oblog_config.xmlファイルで、LOG_THRESHOLD_LEVEL
およびLOG_SECURITY_THRESHOLD_LEVEL
をTRACE
に設定します。
<NameValPair ParamName="LOG_THRESHOLD_LEVEL" Value="LOGLEVEL_TRACE" /> ... <NameValPair ParamName="LOG_SECURITY_THRESHOLD_LEVEL" Value="LOGLEVEL_ TRACE" />
ユーザー・プロファイルで、フィルタ処理される属性に値が含まれることを確認します。たとえば、次の作業を実行します。
アイデンティティ・システム・コンソールで「ユーザー・マネージャ」をクリックします。
ユーザー・マネージャで「プロファイル」をクリックします。
プロファイルで属性を探し、エントリが存在することを確認します。
セキュア・ロギングを構成したコンポーネントに関係するタスクを実行します。たとえば、次の作業を実行します。
アクセス・サーバーのセキュア・ロギングを構成した場合は、リソースにアクセスします。
ユーザーのプロファイルで属性の値を表示または変更します。フィルタ処理する属性がhomePhoneの場合はHome Phoneです。
次のoblogをチェックし、フィルタ処理した属性値が***********のように文字列でマスキングされていることを確認します。
component_install_dir/identity|access\oblix/log/oblog.log
たとえば、アクセス・サーバーのセキュア・ロギングを実装した場合は、アクセス・サーバーのログ・ファイルでユーザー・パスワードの値がマスキングされます。ユーザーのプロファイルで属性の値(たとえばHome Phone)を表示または変更すると、アイデンティティ・サーバーのログ・ファイルではHome Phoneの値が***********のようにマスキングされます。
oblog_config.xmlファイルでLOG_THRESHOLD_LEVEL
およびLOG_SECURITY_THRESHOLD_LEVEL
を企業の目的に合ったレベルに再設定します。
必要に応じて、oblog_config.xmlファイルでフィルタ処理する属性のマスキングの長さを調整します。次に例を示します。
<NameValPair ParamName="Home Phone" Value="340" /> <NameValPair ParamName="homePhone" Value="340"/>
デプロイ内の、1つ以上のマスキング対象属性を含むコンポーネントごとに、手順1〜6を繰り返します。
キャパシティ・プランニングおよびパフォーマンス・チューニングのために、外部コンポーネントへのコールを処理する所要時間のログを作成できます。たとえば、キャパシティ・プランニングを実行する場合、最も時間を要するディレクトリ・サーバーへのコールを知ることができます。これらのコールの識別後、ディレクトリ管理者に適切な索引を設定するように求めてください。または、クライアントIPアドレスを分析して、コールを最も多く処理しているコンポーネントを判別してください。通信量の多い複数のWebパス・インスタンスからのコールをアイデンティティ・サーバーが受信している場合、ログに表示されます。内部ユーザーのIPアドレスからのコールが、外部ユーザーのIPアドレスからのコールよりもはるかに多い場合、内部ユーザーにアイデンティティ・サーバーを追加して増やすことができます。
リクエスト処理時間のログを受信すると、期待より時間を要したサーバーも判別できます。これらのログにより、リクエストするWebコンポーネントのIPアドレスを取得できます。また、様々なリクエスト・キューがログに表示されるため、パフォーマンスのボトルネックの場所を判別できます。
この項には、次の各項目が含まれます。
表10-9に、リクエスト時間ログで取得されるコールをリストします。
表10-9 ログに書き込まれる外部コンポーネントへのコールのリスト
コンポーネント | ログが記録されるコール |
---|---|
アイデンティティ・サーバーおよびアクセス・サーバー |
|
アイデンティティ・サーバー固有 |
|
アクセス・サーバー固有 |
|
表10-10に示すように、各リクエスト時間ログには出力が4行あります。次の項目が、この表で特に重要です。
3行目に、ほとんどの時間のリクエストが特定のWebパスまたはWebGateのリクエストであることが示されている場合、負荷を再分散する必要がある場所を確認できます。
4行目に、異なるタイプのコールに要した時間およびコールのタイプの頻度が示されます。
この行の情報は、最も長く時間を要するリクエストのタイプを表します。
表10-10に、LOGLEVEL_INFOログのREQUEST_TIMINGSエントリの例を示します。"OIS"は、アイデンティティ・サーバーで使用頻度が高いことを示す略語で、"PPP"はアイデンティティ・システム・プラグインで使用頻度が高いことを示す略語です。
表10-10 ログ出力のREQUEST_TIMINGSコールの例および説明
行 | 内容および説明 |
---|---|
1行目 |
1行目には、次の例に示すように、リクエストを開始したプログラムが表示されます。 2007/06/01@01:13:50.125000 5932 4892 REQUEST_TIMINGS INFO 0x0000093A obmessagechannel.cpp:410 "Request Received" _seqno^38 _opcode^12 _program^workflowSaveCreateProfile |
2行目 |
2行目には、リクエストが処理のためにリクエスト・キューから取得されたことが示されます。この行には、ログ・メッセージおよび待機時間が出力され、処理される前にリクエスト・キュー内でリクエストが要した時間が示されます。ログ出力の 2007/06/01@01:13:50.125000 5932 3980 REQUEST_TIMINGS INFO 0x0000093B servicethread.cpp:109 "Request started executing" Waiting time for the Request^0.000769 MessageThreadID^4892 _seqno^38 _opcode^12 |
3行目 |
3行目には、リクエストが処理中であることが表示され、リクエストを発行したWebパスまたはWebGateのIPアドレスを示されます。この行には、次の例に示すように、ログ・メッセージが出力され、リクエストしているクライアントのIPアドレスが表示されます。 2007/06/01@01:13:50.125000 5932 3980 REQUEST_TIMINGS INFO 0x0000093C data\module_main.cpp:614 "Request is being executed" _programName^workflowSaveCreateProfile _ClientIP^111.11.11.111 |
4行目 |
4行目には、次の例に示すように、LDAPコール、監査コール、プラグイン・コール、フラッシュ・コールおよびキュー・サイズが表示されます。 2007/06/01@01:13:52.812000 5932 3980 REQUEST_TIMINGS INFO 0x0000093D servicethread.cpp:143 "Processing time for this request" queue size^0 MessageThreadID^4892 _seqno^38 _opcode^12 Total_Dura^2.687061 LdapAllCalls_Freq^55 LdapAllCalls_Dura^0.014618 LdapAddCalls_Freq^9 LdapAddCalls_ Dura^0.001843 LdapDeleteCalls_Freq^0 LdapDeleteCalls_ Dura^0.000000 LdapSearchCalls_Freq^28 LdapSearchCalls_ Dura^0.010169 LdapModifyCalls_Freq^4 LdapModifyCalls_ Dura^0.001000 LdapBindCalls_Freq^1 LdapBindCalls_Dura^0.000155 LdapGetDNCalls_Freq^13 LdapGetDNCalls_Dura^0.001452 LdapOtherCalls_Freq^0 LdapOtherCalls_Dura^0.000000 AuditDBCall_Freq^0 AuditDBCall_Dura^0.000000 PPPPluginCall_ Freq^0 PPPPluginCall_Dura^0.000000 OIS2OISflush_Freq^0 OIS2OISflush_Dura^0.000000 OIS2AAACALL_Freq^0 OIS2AAACALL_ Dura^0.000000 |
モジュールごとに、リクエスト処理時間のログを取得できます。これをするには、ログ構成ファイルのMODULE_CONFIG
セクションにREQUEST_TIMINGS
パラメータを追加します。次の手順では、ログのリクエスト処理時間のみを取得する方法について説明します。
注意: 次の例は、モジュール固有ロギングしきい値に関する拡張コメントのあるログ構成ファイルを示しています。10.1.4.2パッチ・リリースがインストールされている場合、コメントはこのファイルには表示されません。 |
次のファイルを開きます。
component_install_dir\identity|access\oblix\config\oblog_config.xml
component_install_dirはコンポーネント(例: アイデンティティ・サーバー)がインストールされているディレクトリです。
MODULE_CONFIG
にListName
が指定されたValNameList
セクションがこのファイル内に存在していない場合、次のようなセクションを作成します。
<ValNameList xmlns="http://www.oblix.com" ListName="MODULE_CONFIG"> </ValNameList>
ログ・ハンドラ定義を含むコンポーネント・リストの終了タグの後に、このリストを置きます。終了タグの直後にコメントがある場合、コメントの後にリストを置きます。
ログに書き込まれる情報を、異なるタイプのコールにより消費された時間のみに制限する場合、MODULE_CONFIG
セクションに、REQUEST_TIMINGS
パラメータを含むリスト(次に示す例で太字で表示されています)を追加します。
MODULE_CONFIG
セクションの詳細は、「異なるデータのタイプへの異なるしきい値レベルの構成」を参照してください。
<!-- ============================================================ --> <!-- Configure the Log Level --> . . . <CompoundList xmlns="http://www.oblix.com" ListName="LOG_CONFIG"> <!-- Write all FATAL logs to the system logger. --> <ValNameList xmlns="http://www.oblix.com" ListName="LogFatal2Sys"> <NameValPair ParamName="LOG_LEVEL" Value="LOGLEVEL_FATAL"> </NameValPair> <NameValPair ParamName="LOG_WRITER" Value="SysLogWriter"> </NameValPair> <NameValPair ParamName="LOG_STATUS" Value="On"> </NameValPair> </ValNameList> . . . </CompoundList> <!-- List of values that can be specified in the module config --> <!-- --> <!-- On - Uses loglevel set in the loglevel threshold --> <!-- Off - No information is logged --> <!-- LOGLEVEL_FATAL - serious error, possibly a program halt. --> <!-- LOGLEVEL_ERROR - a transient or self-correcting problem. --> <!-- LOGLEVEL_WARNING - a problem that does not cause an error. --> <!-- LOGLEVEL_INFO - reports the current state of the component. --> <!-- LOGLEVEL_DEBUG1 - basic debugging information. --> <!-- LOGLEVEL_DEBUG2 - advanced debugging information. --> <!-- LOGLEVEL_DEBUG3 - logs performance-sensitive code. --> <!-- LOGLEVEL_TRACE - used when you need to trace the code path --> <!-- execution or capture metrics. Includes all previous levels. --> <!-- --> <!-- List of modules that can be specified in the module config --> <!-- --> <!-- ALL_MODULES - Applies to all log modules --> <!-- Specific module name - Applies to specific module --> <!-- --> <!-- --> <!-- <ValNameList --> <!-- xmlns="http://www.oblix.com" --> <!-- ListName="MODULE_CONFIG"> --> <!-- <NameValPair --> <!-- ParamName="CONNECTIVITY" --> <!-- Value="LOGLEVEL_TRACE"></NameValPair> --> <!-- </ValNameList> --> <!-- Write only REQUEST_TIMINGS logs when when using LOGLEVEL_INFO. --><ValNameList
xmlns="http://www.oblix.com"
ListName="MODULE_CONFIG">
<NameValPair
ParamName="REQUEST_TIMINGS"
Value="LOGLEVEL_INFO">
</ValNameList>
</CompoundList>