プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle HTTP Serverの管理
12c (12.2.1.1)
E77379-02
目次へ移動
目次

前
次

8 Oracle HTTP Serverログの管理

この章では、Oracle HTTP Serverログの管理方法について説明します。ここでは、サーバー・ログの管理方法、エラーの原因とその修正処置に関する情報を調べる方法、システム・アクティビティのモニタリングに役立つログ・ファイルを表示して管理する方法、および問題を診断する方法について説明します。

Oracle HTTP Serverでは、すべてのタイプのイベントを記録したメッセージが含まれるログ・ファイルが生成されます。これには、起動と停止の情報、エラー、警告メッセージ、HTTPリクエストに関するアクセス情報、および追加情報が含まれます。

この章の内容は、次のとおりです。

サーバー・ログの概要

Oracle Fusion Middlewareのログ・ファイルは、Fusion Middleware Controlまたはテキスト・エディタのいずれかを使用して表示できます。Oracle HTTP Serverのログ・ファイルは、次のディレクトリに存在します。

ORACLE_HOME/user_projects/domains/<base_domain>/servers/componentName/logs

Oracle HTTP Serverには、次の2つのタイプのログがあります。

  • エラー・ログ: サーバーの問題が記録されます。

  • アクセス・ログ: どのコンポーネントとアプリケーションに誰がアクセスしたかが記録されます。

この項の内容は次のとおりです。

エラー・ログについて

Oracle HTTP Serverでは、ログ・メッセージを生成する形式を選択できます。レガシーのApache HTTP Serverメッセージ形式でログ・メッセージを生成するか、エラー・ログ・メッセージ生成用のOracle標準に準拠するOracle Diagnostic Logging (ODL)を使用してテキストまたはXML形式のログにログ・メッセージを生成するかを選択できます。

デフォルトでは、Oracle HTTP Serverエラー・ログでは診断メッセージの生成用にODLが使用されます。これにより、すべての診断メッセージおよびログ・ファイルのための共通書式と、Oracle Fusion Middleware全体の様々なコンポーネントからの診断メッセージを相互に関係付ける仕組みが提供されます。

エラー・ログ・ファイルのデフォルト名は、instance_name.logです。

注意:

ODLエラー・ロギングでは各仮想ホスト用に別個のログ・ファイルを持たせることはできません。グローバルにすべての仮想ホスト用に構成できるのみです。

アクセス・ログについて

アクセス・ログには、サーバーによって処理されたすべてのリクエストが記録されます。このログには、サーバーで処理されたすべてのHTTPトランザクションに関する基本情報が含まれます。アクセス・ログに含まれる情報は、次のとおりです。

  • ホスト名

  • リモート・ログ名

  • リモート・ユーザーおよび時間

  • リクエスト

  • レスポンス・コード

  • 転送バイト数

アクセス・ログ・ファイルのデフォルト名は、access_logです。

アクセス・ログの形式

管理者は、アクセス・ログに含める情報とその書込み方法を指定できます。デフォルトの形式は共通ログ形式(CLF)です。

LogFormat "%h %l %u %t %E \"%r\" %>s %b" common

CLF形式には、次のフィールドが含まれます。

host ident remote_logname remote_usre date  ECID request authuser status bytes
  • host: クライアントのドメイン名またはIPアドレスログにホスト・フィールドを指定するには、%hを使用します。

  • ident: IdentityCheckが有効で、クライアント・システムによりidentdが実行されている場合のクライアントのアイデンティティ情報。ログにクライアント・アイデンティティ・フィールドを指定するには、%iを使用します。

  • remote_logname: リモート・ログ名(提供された場合、identdから)。ログにリモート・ログ名を指定するには、%lを使用します。

  • remote_user: リクエストが認証された場合のリモート・ユーザー。ログにリモート・ユーザーを指定するには、%uを使用します。

  • date: day/month/year:hour:minute:second書式のリクエスト日時。ログに日時を指定するには、%tを使用します。

  • ECID: ECID情報を取得します。ログのECIDを取得するには、%Eを使用します。ECID情報用アクセス・ログの構成も参照してください。

  • request: 二重引用符で囲まれたクライアントからのリクエスト行ログにリクエストを指定するには、%rを使用します。

  • authuser: 認可ユーザーのユーザーID。ログに認可ユーザー・フィールドを指定するには、%aを使用します。

  • status: クライアントに戻される3桁のステータス・コードログにステータスを指定するには、%sを使用します。リクエストが別のサーバーから転送される場合、ログに最後のサーバーを指定するには、%>sを使用します。

  • bytes: ヘッダーを除き、クライアントに返されるバイト数ログにバイト数を指定するには、%bを使用します。ログにヘッダーを含めるには、%iを使用します。

関連項目:

Apache HTTP Serverドキュメントの「Access Log」

ログ・ローテーションの構成

Oracle HTTP Serverでは、サイズベースと時間ベースの2種類のログ・ローテーション・ポリシーをサポートしています。ORACLE_HOME/ohs/binにあるodl_rotatelogsを使用することで、2つのローテーション・ポリシーのいずれかを使用するようにOracle HTTP Serverログを構成することができます。デフォルトでは、Oracle HTTP Serverではエラー・ログとアクセス・ログの両方に対してodl_rotatelogsを使用します。

odl_rotatelogsは、Apache HTTP Serverのrotatelogsのすべての機能と、ログ保存の追加機能をサポートします。

rotatelogsによって提供される機能とオプションに関する情報は、次のURLで参照できます。

http://httpd.apache.org/docs/2.4/programs/rotatelogs.html

odl_rotatelogsの一般構文は次のとおりです。

odl_rotatelogs [-u:offset] logfile {size-|time-based-rotation-options}

odl_rotatelogsは、パイプ化されたログファイル機能で使用されます。この機能により、エラーおよびアクセス・ログ・ファイルが、ファイルに直接ではなく、別のプロセスへのパイプを通じて書き込むことができます。これによりロギングの柔軟性が高まるため、メイン・サーバーにコードを追加する必要はありません。ログをパイプに書き込むには、ファイル名を縦線「|」で置き換え、続けて標準入力でログ入力を受け入れる実行可能ファイルの名前を指定します。パイプ化されたログファイル機能の詳細は、次のURLを参照してください。

http://httpd.apache.org/docs/2.4/logs.html#piped

パイプ化されたログファイル機能とともに使用される、odl_rotatelogsの構文は次のようになります。

CustomLog " |${PRODUCT_HOME}/bin/odl_rotatelogs [-u:offset] logfile {size-|time-based-rotation-options}" log_format

odl_rotatelogsへの入力があるたびに、指定したローテーションの条件に合っているかがチェックされます。合っていれば、ファイルをローテーションします。合っていなければ、単にコンテンツに書き込みます。何も入力されていない場合は、何も起こりません。

表8-1にサイズベースおよび時間ベースのローテーションのオプションを示します。


表8-1 odl_rotatelogsのオプション

オプション 説明

-u

UTCからオフセットする時間(秒)。

logfile

ログ・ファイルのパスと名前、その後にハイフン(-)そしてタイムスタンプ・フォーマットが続きます。

次に一般的なタイムスタンプ・フォーマット文字列を示します。

  • %m: 2桁の数値で表される月(01-12)

  • %d: 2桁の数値で表される日(01-31)

  • %Y: 4桁の数値で表される年

  • %H: 2桁の数値で表される時刻(00-23)

  • %M: 2桁の数値で表される分(00-59)

  • %S: 2桁の数値で表される秒(00-59)

スラッシュを含むまで拡張されるフォーマットを含むことはできません。

frequency

ログ・ファイルのローテーションの間の時間(秒)。

retentionTime

ローテーションされたログ・ファイルが保存される最大時間。

startTime

時間ベースのローテーションが開始する時間。

maxFileSize

ログ・ファイルの最大サイズ(MB)。

allFileSize

保存されたファイルの合計サイズ(MB)。


時間ベースのローテーションの場合、odl_rotatelogsを使用したOracle HTTP Serverのログ・ローテーションは、デフォルトではUTC時間に従って計算されます。たとえば、ログ・ローテーションを86400 (24時間)に設定すると、UTCで真夜中の12:00になるたびにログがローテーションされます。Oracle HTTP Serverがインド標準時(IST)で実行されている場合、ISTはUTC+05:30であるので、ログは午前05:30にローテーションされます。

UTCオフセットに対して-uオプションを使用するかわりに、Apacheによって提供される-lオプションを使用することもできます。このオプションの場合、Oracle HTTP Serverでは間隔の基準としてローカル時間が使用されます。UTCオフセットを変更した環境(英国標準時(BST)またはサマータイム(DST)など)で-lオプションを使用すると、予測できない結果につながる可能性があります。

時間ベースとサイズベースのローテーションの構文と例

次の例で、時間ベースとサイズベースのログのローテーションを設定するodl_rotatelogsの構文を示します。

  • 時間ベースのローテーション

    構文:

    odl_rotatelogs u:offset logfile frequency retentionTime startTime
    

    例:

    CustomLog "| odl_rotatelogs u:-18000 /varlog/error.log-%Y-%m-%d 21600 172800 2014-03-10T08:30:00" common
    

    これは、UTC-05:00 (18000 秒、ニューヨークなど)の場所に対して実行されるログ・ローテーションを構成します。このローテーションは、2014年3月10日の午前8時30分から21600秒(6時間)ごとに実行され、ローテーションされたログ・ファイルを172800秒(2日)間保存するように指定します。ログの形式はcommonです。

    構文:

    odl_rotatelogs logfile frequency retentionTime startTime
    

    :

    CustomLog "| odl_rotatelogs /varlog/error.log-%Y-%m-%d 21600 172800 2014-03-10T08:30:00" common
    

    これは、2014年3月10日の午前8時30分から21600秒(6時間)ごとにログ・ローテーションを実行するように構成し、ローテーションされたログ・ファイルを172800秒(2日)間保存するように指定します。ログの形式はcommonです。

  • サイズベースのローテーション

    構文:

    odl_rotatelogs logfile maxFileSize allFileSize
    

    :

    これは、ログ・ファイルのサイズが10 MBに達するとログ・ローテーションを実行するように構成し、ローテーションされたすべてのログ・ファイルの最大サイズを70 MBと指定します(最大7個のログ・ファイル(=70/10)が保存されます)。ログの形式はcommonです。

    CustomLog "| odl_rotatelogs /var/log/error.log-%Y-%m-%d 10M 70M" common

Oracle HTTP Serverログの構成

Fusion Middleware Controlを使用してエラー・ログとアクセス・ログを構成できます。次の各項では、「ログ構成」ページから設定できるログ・タスクについて説明します。

Fusion Middleware Controlを使用したエラー・ログの構成

Fusion Middleware Controlの「ログ構成」ページでエラー・ログを構成します。Fusion Middleware Controlを使用してOracle HTTP Serverのエラー・ログを構成するには、次の手順を実行します。

  1. Oracle HTTP Serverのホームページに移動します。
  2. 「管理」メニューから「ログ構成」を選択します。

    「ログ構成」ページが表示されます(次の図を参照)。

  3. このページからは、次のエラー・ログ構成タスクを設定できます。

エラー・ログの形式および場所の構成

Fusion Middleware Controlの「ログ構成」ページでエラー・ログの形式および場所を変更できます。デフォルトで、Oracle HTTP Serverはエラー・ログ形式としてODL-Textを使用し、DOMAIN_HOME/servers/component_name/logsディレクトリ内にcomponent_name.logという名前のログ・ファイルを作成します。別の形式またはログ場所を使用するには、次の手順を実行します。

  1. 「ログ構成」ページから、「エラー・ログ」セクションの下の「一般」セクションに移動します。
  2. 目的のファイル形式を選択します。
    • ODL-Text: この形式の診断メッセージはOracle標準に準拠しており、テキスト形式で書き込まれます。

    • Apache: この形式の診断メッセージはレガシーのApache HTTP Serverメッセージ形式に準拠しています。

  3. 「ログ・ファイル/ディレクトリ」フィールドにエラー・ログのパスを入力します。このディレクトリは、ここに入力する前に存在している必要があります。
  4. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
  5. Oracle HTTP Serverを再起動します。Oracle HTTP Serverインスタンスの再起動を参照してください。

エラー・ログ・レベルの構成

ログ・ファイルに書き込まれる情報の量とタイプは、メッセージのタイプおよびレベルを指定することによって構成できます。Oracle HTTP Serverのエラー・ログ・レベルは、デフォルトで「WARNING:32」に構成されています。別のエラー・ログ・レベルを使用するには、次の手順を実行します。

  1. 「ログ構成」ページから、「エラー・ログ」セクションの下の「一般」セクションに移動します。
  2. 「レベル」メニューからロギングのレベルを選択します。ロギング・レベルが高くなると、ログに含まれる情報も増加します。
  3. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
  4. Oracle HTTP Serverを再起動します。Oracle HTTP Serverインスタンスの再起動を参照してください。

注意:

Apache HTTP Serverログ形式用とODL-Text形式用のログ・レベルは異なります。

  • ODLログ・レベルの詳細は、『Oracle Fusion Middlewareの管理』のログ・ファイルに書き込まれる情報レベルの設定に関する項を参照してください

  • Apache HTTP Serverのログ・レベルの詳細は、Apache HTTP ServerドキュメントのLogLevelディレクティブに関する項を参照してください。

エラー・ログのローテーション・ポリシーの構成

エラー・ログのログ・ローテーション・ポリシーは、1週間に1回などの時間ベース、または120MBなどのサイズベースで設定します。デフォルトでは、エラー・ログ・ファイルは10MBに達するとローテーションされます。また、最大で7個のエラー・ログ・ファイルが保持されます。別のローテーション・ポリシーを使用するには、次の手順を実行します。

  1. 「ログ構成」ページから、「エラー・ログ」セクションの下の「一般」セクションに移動します。
  2. ローテーション・ポリシーを選択します。
    • ローテーションなし: ログ・ファイルをローテーションしない場合は、このポリシーを選択します。

    • サイズ・ベース: ログ・ファイルは、構成されたサイズに達するたびにローテーションされます。「最大ログ・ファイル・サイズ」フィールドでログ・ファイルの最大サイズを設定し、「最大保持ファイル数」フィールドでエラー・ログ・ファイルの最大保持数を設定します。

    • 時間ベース: 構成された時刻になるたびにログ・ファイルがローテーションされます。開始時間、ローテーション頻度および保存期間を設定します。

  3. 設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
  4. Oracle HTTP Serverを再起動します。Oracle HTTP Serverインスタンスの再起動を参照してください。

Fusion Middleware Controlを使用したアクセス・ログの構成

Fusion Middleware Controlの「ログ構成」ページから、Oracle HTTP Server用のアクセス・ログの形式および場所を構成できます。

このページからは、次のアクセス・ログ構成タスクを設定できます。

アクセス・ログ形式の構成

ログ形式は、アクセス・ログに含める情報とその書込み方法を指定するものです。新規のアクセス・ログ形式を追加したり、既存の形式を編集または削除するには、次の手順を実行します。

  1. Oracle HTTP Serverのホームページに移動します。
  2. 「管理」メニューから「ログ構成」を選択します。
  3. 「ログ構成」ページから「アクセス・ログ」セクションに移動します。
  4. 「ログ形式の管理」をクリックします。

    「カスタム・アクセス・ログ形式の管理」ページが表示されます(次の図を参照)。

  5. 既存の形式を選択して変更または削除するか、「行の追加」をクリックして新規形式を作成します。
  6. 新しいフォーマットを作成する場合には、「ログ形式名」フィールドに新しいログ・フォーマットを入力し、「ログ形式パターン」フィールドにログ・フォーマットを入力します。

    関連項目:

    ログ形式のディレクティブの詳細は、Apache HTTP Serverドキュメントを参照してください。

  7. 「OK」をクリックして新規形式を保存します。

アクセス・ログ・ファイルの構成

Fusion Middleware Controlの「アクセス・ログの作成」または「アクセス・ログの編集」ページでアクセス・ログのローテーション・ポリシーを構成できます。Oracle HTTP Serverのアクセス・ログ・ファイルを構成するには、次の手順を実行します。

  1. Oracle HTTP Serverのホームページに移動します。
  2. 「管理」メニューから「ログ構成」を選択します。
  3. 「ログ構成」ページから「アクセス・ログ」セクションに移動します。
  4. 新規のアクセス・ログを作成する場合は、「作成」をクリックします。既存のアクセス・ログ・ファイルを編集する場合は、表から行を選択して「編集」ボタンをクリックします。

    「アクセス・ログの作成」ページまたは「アクセス・ログの編集」ページが表示されます。

  5. 「ログ・ファイル・パス」フィールドにアクセス・ログのパスを入力します。このディレクトリは、ここに入力する前に存在している必要があります。
  6. 「ログ形式」メニューから既存のアクセス・ログ形式を選択します。
  7. ローテーション・ポリシーを選択します。
    • ローテーションなし: ログ・ファイルをローテーションしない場合は、このポリシーを選択します。

    • サイズ・ベース: ログ・ファイルは、構成されたサイズに達するたびにローテーションされます。「最大ログ・ファイル・サイズ」フィールドでログ・ファイルの最大サイズを設定し、「最大保持ファイル数」フィールドでエラー・ログ・ファイルの最大保持数を設定します。

    • 時間ベース: 構成された時刻になるたびにログ・ファイルがローテーションされます。開始時間、ローテーション頻度および保存期間を設定します。

  8. 「OK」をクリックして継続します。

    複数のアクセス・ログ・ファイルを作成できます。

ログ・ファイルの作成モードの構成(umask) (UNIX/Linuxのみ)

Oracle HTTP Serverインスタンスを起動する前に、デフォルトのファイル・モード作成マスク(umask)の値を設定します。umaskに設定する値により、エラー・ログ、アクセス・ログなどの、Oracle HTTP Serverインスタンスにより作成されるファイルのアクセス権が決まります。umaskが明示的に設定されていない場合、デフォルトで0027の値が使用されます。

この項の内容は次のとおりです。

スタンドアロン・ドメインでのOracle HTTP Serverインスタンス用のumaskの構成

スタンドアロン・ドメインでデフォルトのファイル・モード作成マスクを構成するには、ステージング場所のohs.plugins.nodemanager.propertiesファイルのumaskプロパティを設定します。

DOMAIN_HOME/config/fmwconfig/components/OHS/instanceName/ohs.plugins.nodemanager.properties

WebLogic Server管理対象ドメインでのOracle HTTP Serverインスタンス用のumaskの構成

WebLogic Server(Full-JRFまたはRestricted-JRFのいずれか)ドメインでデフォルトのファイル・モード作成マスクを構成するには、次の手順に従います。

  1. ドメインのAdminServerおよびNodeManagerを起動します。次に例を示します。
    <Domain_HOME>/bin/startWebLogic.sh &
    <DOMAIN_HOME>/bin/startNodeManager.sh &
      
  2. WLSTを起動してAdminServerに接続します。
    <ORACLE_HOME>/oracle_common/bin/wlst.sh
    connect('<userName', <'password'>, <'adminServerURL'>
      
  3. 次のMBeanに移動します。このMBeanのObjectNameはOracle HTTP Serverインスタンスの名前に依存することに注意してください。この例では、Oracle HTTP Serverインスタンスの名前はohs1です
    editCustom()
    cd('oracle.ohs')
    cd('oracle.ohs:OHSInstance=ohs1,component=OHS,type=OHSInstance.NMProp')
    
  4. umaskの値を必要な値に設定します。
    startEdit()
    set('Umask','0022')
    
  5. 変更を保存してアクティブ化します。
    save()
    activate() 

WLSTを使用したログ・レベルの構成

WLSTコマンドを使用して、エラー・ログの冗長度を制御する、LogLevelディレクティブを設定できます。

注意:

LogLevelディレクティブの詳細は、Apacheのドキュメント(http://httpd.apache.org/docs/current/mod/core.html#loglevel)を参照してください

次の手順に従い、WLSTコマンドを使用してLogLevelディレクティブを設定します。

  1. WLSTを起動します。
    $ORACLE_HOME/oracle_common/common/bin/wlst.sh
    
  2. 管理サーバーに接続します。
    connect('<user-name>', '<password>','<host>:<port>')
    
  3. editCustom()コマンドを使用して、oracle.ohs MBeanのルートに移動します。editCustom()コマンドは、WLSTが管理サーバーに接続されている場合にのみ入力できます。cdを使用して管理オブジェクトの階層をナビゲートします。この場合、oracle.ohsの下のohs1です。startEdit()コマンドを使用して編集セッションを開始します。
    editCustom()
    cd('oracle.ohs')
    cd('oracle.ohs:type=OHSInstance,name=ohs1')
    startEdit()
    
  4. setコマンドを使用してログ・レベル属性の値を設定します。次の例では、グローバル・ログ・レベルをtrace7に、モジュールのステータス・ログ・レベルをerrorに、モジュールのenvログ・レベルをwarn (警告)に設定します。
    set('LogLevel','trace7 status:error env:warn') 
    
  5. 変更を保存してアクティブ化します。この編集セッションと関連付られた編集ロックは、アクティブ化が完了すると解放されます。
    save()
    activate() 

Oracle HTTP Serverのログ・ディレクティブ

次の項では、httpd.confファイル内のOracle HTTP Serverのエラー・ログおよびアクセス・ログに関連するディレクティブについて説明します。

Oracle Diagnostic Loggingディレクティブ

Oracle HTTP Serverはデフォルトで、診断メッセージの生成にOracle Diagnostic Logging (ODL)を使用します。ODLを使用したロギングを設定する場合、次のディレクティブを使用します。

OraLogMode

これにより、ログ・メッセージを生成する形式を選択できます。レガシーのApache HTTP Server形式またはODLテキスト形式でログ・メッセージを生成するように選択できます。

OraLogMode Apache | ODL-Text

デフォルト値: ODL-Text

例: OraLogMode ODL-Text

注意:

Apache HTTP Serverログ・ディレクティブのErrorLogおよびLogLevelは、OraLogModeApacheに設定されている場合のみ有効です。OraLogModeODL-Textに設定されている場合、ErrorLogおよびLogLevelディレクティブは無視されます。

OraLogDir

すべてのログ・ファイルが含まれるディレクトリへのパスを指定します。このディレクトリは存在している必要があります。

このディレクティブは、OraLogModeがODL-Textに設定されている場合にのみ使用されます。OraLogModeApacheに設定されている場合、OraLogDirは無視され、かわりにErrorLogが使用されます。

OraLogDir <path>

デフォルト値: ORACLE_INSTANCE/servers/componentName/logs

例: OraLogDir /tmp/logs

OraLogSeverity

メッセージ重大度を設定できます。このディレクティブを使用して指定したメッセージ重大度は、必要な最低レベルのメッセージ重大度として解釈され、その重大度以上のメッセージはすべてログに記録されます。

このディレクティブは、OraLogModeODL-Textに設定されている場合にのみ使用されます。OraLogModeApacheに設定されている場合、OraLogSeverityは無視され、かわりにLogLevelが使用されます。次の構文で、short_module_identifierNameは末尾の_moduleが省略されたモジュール名です。

OraLogSeverity [short_module_identifierName] <msg_type>[:msg_level]

デフォルト値: WARNING:32

例: OraLogSeverity mime NOTIFICATION:32

msg_type

メッセージ・タイプは大文字でも小文字でも指定できますが、メッセージ出力は大文字で表示されます。このパラメータは、次のいずれかの値にする必要があります。

  • INCIDENT_ERROR

  • ERROR

  • WARNING

  • NOTIFICATION

  • TRACE

msg_level

このパラメータは1から32の整数にする必要があります。重大度が最も高いのが1で、最も低いのが32です。レベル1を使用した方が、レベル32を使用した場合よりもメッセージが少なくなります。

OraLogRotationParams

エラー・ログ・ファイルのローテーション・ポリシーを選択できます。このディレクティブは、OraLogModeがODL-Textに設定されている場合にのみ使用されます。OraLogModeApacheに設定されている場合、OraLogRotationParamsは無視されます。

OraLogRotationParams <rotation_type> <rotation_policy>

デフォルト値: S 10:70

例: OraLogRotationParams T 43200:604800 2009-05-08T10:53:29

rotation_type

このパラメータはS(サイズベースのローテーション)またはT(タイムベースのローテーション)のいずれかです。

rotation_policy

rotation_typeS(サイズベース)に設定されている場合は、rotation_policyパラメータを次のように設定します。

maxFileSize:allFilesSize (MB)

たとえば、10:70として構成した場合、エラー・ログ・ファイルが10MBに達するたびにローテーションが行われます。また、すべてのエラー・ログ・ファイルの合計として70MBが許可されます(最大で70/10=7個のエラー・ログ・ファイルが保存されます)。

rotation_typeがT(タイムベース)に設定されている場合は、rotation_policyパラメータを次のように設定します。

frequency(in sec) retentionTime(in sec) startTime(in YYYY-MM-DDThh:mm:ss)

たとえば、43200:604800 2009-05-08T10:53:29として構成した場合、エラー・ログは43200秒(12時間)ごとにローテーションが行われます。ローテーションされたログ・ファイルは、2009年5月5日の10時53分29秒から最大で604800秒(7日)間保存されます。

Apache HTTP Serverログ・ディレクティブ

Oracle HTTP Serverではデフォルトでエラー・ログにODLが使用されますが、エラー・ログ・メッセージがレガシーのApache HTTP Serverメッセージ形式で生成されるようにOraLogModeディレクティブをApacheに構成することもできます。この項では、次のディレクティブについて説明します。

ErrorLog

ErrorLogディレクティブは、サーバーにより検出されたエラーが書き込まれるファイル名を設定します。ファイルパスが絶対パスでない場合は、ServerRootからの相対パスであると想定されます。

このディレクティブは、OraLogModeApacheに設定されている場合にのみ使用されます。OraLogModeODL-Textに設定されている場合、ErrorLogは無視され、かわりにOraLogDirが使用されます。

関連項目:

Apache ErrorLogディレクティブの詳細は、次を参照してください。

http://httpd.apache.org/docs/current/mod/core.html#errorlog

LogLevel

LogLevelディレクティブは、エラー・ログに記録されるメッセージの冗長性を調整します。

このディレクティブは、OraLogModeApacheに設定されている場合にのみ使用されます。OraLogModeODL-Textに設定されている場合、LogLevelは無視され、かわりにOraLogSeverityが使用されます。

関連項目:

Apache HTTP Server LogLevelディレクティブの詳細は、次を参照してください。

http://httpd.apache.org/docs/current/mod/core.html#loglevel

LogFormat

LogFormatディレクティブは、アクセス・ログ・ファイルの形式を指定します。デフォルトでは、Oracle HTTP Serverには次の4つのアクセス・ログ形式が定義されています。

LogFormat "%h %l %u %t %E \"%r\" %>s %b" commonLogFormat "%h %l %u %t %E \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t %E \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

関連項目:

Apache HTTP Server LogFormatディレクティブの詳細は、次を参照してください。

http://httpd.apache.org/docs/current/mod/mod_log_config.html#logformat

CustomLog

CustomLogディレクティブは、サーバーへのリクエストをログに記録する場合に使用します。ログ形式を指定し、オプションで環境変数を使用して、リクエストの特性に基づいてロギングを条件付きで実行することもできます。デフォルトでは、アクセス・ログ・ファイルは共通ログ形式を使用するように構成されています。

関連項目:

Apache CustomLogディレクティブの詳細は、次を参照してください。

http://httpd.apache.org/docs/current/mod/mod_log_config.html#customlog

Oracle HTTP Serverログの表示

Oracle HTTP Serverにはエラー・ログとアクセス・ログの主に2種類のログ・ファイルがあります。エラー・ログ・ファイルは、サーバーのパフォーマンスを良好に保つための重要な情報源です。エラー・ログには、システム管理者が問題を簡単に診断して修正できるように、問題の状況に関するすべての情報が記録されます。アクセス・ログ・ファイルには、サーバーが処理するあらゆるHTTPトランザクションの基本情報が含まれます。この情報を使用して、サーバーの使用状況パターンに関する統計レポートを生成できます。

エラー・ログおよびアクセス・ログの詳細は、サーバー・ログの概要を参照してください。

Oracle HTTP Serverのログを表示する方法を次に示します。

Fusion Middleware Controlを使用したログの表示

Oracle HTTP Serverインスタンスのログ・メッセージにアクセスするには、次の手順を実行します。

  1. Oracle HTTP Serverのホームページに移動します。
  2. ログ・メッセージを表示するサーバー・インスタンスを選択します。
  3. 「Oracle HTTP Server」ドロップダウン・リストから、「ログ」「ログ・メッセージの表示」の順に選択します。

    「ログ・メッセージ」ページが開きます。

ログ・ファイルの検索および表示の詳細は、『Oracle Fusion Middlewareの管理』のFusion Middleware Controlを使用したログ・ファイルとそのメッセージの表示に関する項を参照してください。

WLSTを使用したログの表示

コマンド行からサーバーのログの取得と表示を行うには、ノード・マネージャに接続して、適切なWebLogic Scripting Tool (WLST)コマンドを発行する必要があります。これらのコマンドを使用して、次のような機能のいずれかを実行できます。

  • サーバー・ログのリスト表示。

  • 特定のログの内容を表示。

注意:

WLSTの使用方法の詳細は、『WebLogic Scripting Toolの理解』を参照してください。

この手順を実行してみる前に、次の内容を実行します。

コマンド行からサーバー・メトリックにアクセスを試みる前に、次の内容を確認してください。

  • ドメインが存在すること。

  • 使用するインスタンスが存在すること。

  • インスタンスのマシン上でノード・マネージャが実行中であること。

この手順を使用するには、インスタンスと管理サーバーが動作中でも構いませんが、その必要はありません。

WLSTを使用してメトリックを表示するには、次の手順を実行します。

注意:

管理対象のドメインでは、この手順は、インスタンスが動作状態であるか停止状態であるかによって、管理マシンあるいはリモート・マシンで動作している管理サーバー上で動作します。スタンドアロン・ドメインでは、手順はローカル・マシン上でしか動作しませんが、インスタンスは動作中と停止中のいずれであっても構いません。

  1. WLSTを起動します。

    LinuxまたはUNIXの場合:

    $ORACLE_HOME/oracle_common/common/bin/wlst.sh
    

    Windowsの場合

    C:\ORACLE_HOME\oracle_common\common\bin\wlst.cmd
    
  2. 選択したドメイン・ディレクトリ(ORACLE_HOME/user_projects/domains/domainNameなど)からノード・マネージャに接続します。
    nmConnect('username', 'pwd', localhost, 5556, domainName)
    
  3. 実行するタスクに応じて、次のWLSTコマンドの1つを入力します。
    • listLogs(nmConnected=1, ...)

    • displayLogs(nmConnected=1, ...)

    例:

    listLogs(nmConnected=1, target='ohs1')
    displayLogs(nmConnected=1, target='ohs1', tail=5)

テキスト・エディタでのログの表示

また、テキスト・エディタを使用して、DOMAIN_HOMEディレクトリから直接Oracle HTTP Serverログ・ファイルを表示することもできます。デフォルトでは、Oracle HTTP Serverログ・ファイルは、DOMAIN_HOME/servers/component_name/logsディレクトリにあります。ログ・ファイルをご使用のローカル・クライアントにダウンロードして、別のツールを使用してログ・ファイルを表示します。

ECID情報の記録

次の項では、エラー・ログおよびアクセス・ログにExecution Context ID (ECID)情報を記録するようにOracle HTTP Serverを構成する方法について説明します。

ECID情報について

ECIDとは、Oracleコンポーネント間のリクエストにアタッチ可能なグローバルに一意のIDです。ECIDを使用すると、複数のリクエストが並行して処理される場合に同じリクエストに関する複数のログ・メッセージを追跡できます。

Oracle HTTP Serverモジュールmod_contextは、URIまたはCookieの中のECID-ContextキーあるいはECID-Contextヘッダーに対する受信リクエストをそれぞれスキャンします。見つかった場合には、有効であれば値を実行コンテキストとして使用します。見つからなかった場合には、mod_contextはリクエストに対して新たな実行コンテキストを生成し、ECID-Contextヘッダーの値として加算します。

ECID情報用エラー・ログの構成

ECID情報は、Oracle Diagnostic Logging (ODL)の一部として記録されます。ODLは、診断メッセージおよびログ・ファイルのための共通書式を示す診断メッセージを生成する方法と、様々なコンポーネントからのすべての診断メッセージを相互に関係付ける方法です。

ECIDが記録されるようにOracle HTTP Serverのエラー・ログを構成するには、httpd.conf内のOraLogModeディレクティブを、デフォルト値であるodlに必ず設定してください。odl値は標準のApacheログ書式で、特に1つのリクエストに関連付けられたログ記録用のECID情報です。

OraLogModeおよびこのディレクティブに対する他に取りうる値の詳細は、OraLogModeを参照してください。

注意:

モジュール固有のロギング重大度を有効にして初めてモジュールがロギングを実行できるように、これらのディレクティブは、httpd.confファイルでモジュールがロードされる前に(LoadModuleディレクティブの前に)指定することをお薦めします。

ECID情報用アクセス・ログの構成

デフォルトで、httpd.confファイルのLogFormatディレクティブは、ECID情報を取得するように構成されています。

LogFormat "%h %l %u %t %E \"%r\" %>s %b" common

マイクロ秒単位で測定するレスポンス時間を追加する場合、次のように%Dを追加します。

LogFormat "%h %l %u %t %E %D \"%r\" %>s %b" common

ECID情報の取得を抑制するには、LogFormatディレクティブから%Eを削除します。

LogFormat "%h %l %u %t \"%r\" %>s %b" common

SSLリクエストの終了

この項では、mod_wl_ohsモジュールがWebLogic Serverにリクエストを転送する、Oracle HTTP Serverの前あるいはその中で、SSLを使用してリクエストを停止する方法を説明します。リクエストがOracle HTTP Serverに届く前にSSLを停止するか、リクエストがサーバーの中にある時に停止するかは、トポロジによります。SSLを停止する一般的な理由は、第三者によって通信中のデータが傍受されるリスクを伴うことなく、別の方法によって内部ネットワークが保護されている場合の、パフォーマンス上の考慮によるものです。もうひとつの理由としては、WebLogic ServerがHTTPSリクエストを受け付けるように構成されていない場合があります。

ロード・バランサでのSSLの停止について

SSLを使用しているリクエストをOracle HTTP Serverへの到達前に終了させるロード・バランサやリバース・プロキシなどの装置を使用している場合には、サーバーは、あたかもHTTPSを介して受信したようにリクエストを扱う構成とする必要があります。さらに、サーバーは、クライアントにHTTPS応答を返すように構成される必要があります。

表8-1に、ブラウザからHTTPSを介してWebLogic Serverにリクエストが送信される場合の例を示します。ロード・バランサは、SSLを停止し、リクエストをHTTPとして送信します。Oracle HTTP Serverは、あたかもHTTPSを介して受信したようにリクエストを処理する構成とする必要があります。

図8.1 Oracle HTTP Serverの前にSSLを停止

図8-1の説明が続きます
「図8-1 Oracle HTTP Serverの前にSSLを停止」の説明

ロード・バランサでのSSLの停止

Oracle HTTP Serverに命令を与えてHTTPSを介して受信されたかのようにリクエストを扱うには、mod_certheadersモジュールのSimulateHttpsディレクティブでhttpd.confファイルを構成します。

mod_certheadersモジュールでの詳細は、mod_certheadersモジュール—リバース・プロキシの有効化を参照してください。

注意:

SSLがOracle HTTP Serverで構成されている場合(すなわち、HTTPSを使用して直接Oracle HTTP Serverにアクセスしている場合)には、この手順は不要です。

  1. サーバーの外部名とポート番号を使用して、たとえばhttpd.conf構成ファイルを次のように構成します。
    ServerName <www.company.com:port>
    
  2. mod_certheadersモジュールをロードするように、httpd.conf構成ファイルをたとえば次のように構成します。
    • UNIXの場合:

      LoadModule certheaders_module libexec/mod_certheaders.so
      
    • Windowsの場合:

      LoadModule certheaders_module modules/ApacheModuleCertHeaders.dll
      AddModule mod_certheaders.c

      注意:

      他のAddModuleディレクティブにAddModule行を含めることを推奨します。

  3. HTTPS応答をクライアントに返すように、httpd.confファイルの最後にあるSimulateHttpsディレクティブをたとえば次のように構成します。
    # For use with other load balancers and front-end devices:
    SimulateHttps On
    
  4. Oracle HTTP Serverを再起動してサーバーへのアクセスをテストします。特に、https://host:port/index.htmlのような静的ページにアクセス可能であるかテストします。

    基本設定として構成をテストします。問題が生じた場合には、仮想ホストなどの潜在的な問題とのオーバーラップを避けるため、ここでトラブルシューティングを行ってください。

  5. 理想的には、すべてのHTTPSリクエストを処理するようにhttpd.confファイルのVirtualHostを構成するとよいでしょう。こうすると、HTTPSリクエストがHTTPリクエストからよりスケーラブルに分離されます。多目的サイトの場合や、ロード・バランサなどの装置がHTTPリクエストとHTTPSリクエストの両方を処理するOracle HTTP Serveの前にある場合には、こうした構成がさらに望まれます。

    次の命令例では、mod_certheadersモジュールをロードし、HTTPSリクエストだけを処理するように仮想ホストを生成します。

    # Load correct module here or where other LoadModule lines exist:
    LoadModule certheaders_module libexec/mod_certheaders.so
    # This only handles https requests:
       <VirtualHost <name>:<port>
           # Use name and port used in url:
           ServerName <www.company.com:port>
           SimulateHttps On
           # The rest of your desired configuration for this VirtualHost goes here
       </VirtualHost>
    
  6. Oracle HTTP Serverを再起動し、サーバーへのアクセスをテストします。最初にhttps://host:port/index.htmlのような静的ページをテストし、次にご使用のアプリケーションをテストします。

Oracle HTTP ServerでのSSLの停止について

SSLがOracle HTTP Serverで構成されていてOracle WebLogic Serverでは構成されていない場合には、Oracle HTTP Serverから送信されるリクエストに対するSSLを停止できます。

次の図はリクエスト・フローをまとめたもので、HTTPSがどこで停止するかを示しています。図8-2では、ブラウザからHTTPSリクエストが送信されます。ロード・バランサは、HTTPSリクエストをOracle HTTP Serverに送信します。SSLはOracle HTTP Serverで停止し、HTTPリクエストがWebLogic Serverに送られます。

図8-2 Oracle HTTP ServerでSSLを停止(ロード・バランサあり)

図8-2の説明が続きます
「図8-2 Oracle HTTP ServerでSSLを停止(ロード・バランサあり)」の説明

図8-3では、ロード・バランサは存在せず、HTTPSリクエストは直接Oracle HTTP Serverに送信されます。この場合にも、SSLはOracle HTTP Serverで停止し、HTTPリクエストがWebLogic Serverに送られます。

図8-3 Oracle HTTP ServerでSSLを停止(ロード・バランサなし)

図8-3の説明が続きます
「図8-3 Oracle HTTP ServerでSSLを停止(ロード・バランサなし)」の説明

Oracle HTTP ServerでSSLを停止

Oracle HTTP Serverに命令を与えてHTTPSを介して受信されたかのようにリクエストを扱うには、mod_wl_ohs.confファイルのWLSProxySSLディレクティブを構成し、SecureProxyディレクティブが構成されていないことを確認します。

  1. mod_wl_ohs.confファイルを構成して、ご使用の非SSL構成の管理対象サーバーの場所に対するWLSProxySSLディレクティブを次のように追加します。
    WLProxySSL ON
    
  2. ロード・バランサなどの装置をOracle HTTP Server (同じくSSLを使用)の前で使用している場合には、WL-Proxy-SSLをすでに設定済であるかどうかによって、次の例のように、かわりにWLProxySSLPassThroughディレクティブを構成することが必要な場合があります。
    WLProxySSLPassThrough ON
    

    詳細は、ご使用のロード・バランサのドキュメントを参照してください。WLProxySSLPassThroughの詳細は、『Oracle WebLogic Serverプロキシ・プラグイン12.2.1の使用』のOracle WebLogic Serverプロキシ・プラグインのパラメータに関する項を参照してください。

  3. コンポーネント間の所定の通信に障害を与えますので、SecureProxyディレクティブが構成されていないことを確認してください。SSLが全体的に使用されている場合にかぎり、このディレクティブを使用します。次の例では、SecureProxyディレクティブはコメントアウトされています。
    # To configure SSL throughout (all the way to WLS):
    # SecureProxy ON
    # WLSSLWallet  "<Path to Wallet>" 
    
  4. Oracle HTTP Serverを再起動し、https://host:port/path/application_nameなどのJavaアプリケーションへのアクセスをテストします。