13 ログの管理
この章の構成は、次のとおりです。
Oracle Traffic Directorログについて
管理サーバーを含む各Oracle Traffic Directorインスタンスには、アクセス・ログとサーバー・ログの2つのログがあります。インスタンス内の各仮想サーバーのアクセス・ログおよびサーバー・ログを有効化できます。
Oracle Traffic Directorインスタンスのアクセス・ログおよびサーバー・ログのデフォルトの場所は、DOMAIN_HOME/servers/instance-name/logs
ディレクトリです。
アクセス・ログとサーバー・ログに加えて、インスタンス・ログがあり、これはデフォルトで有効化されており、最初にインスタンスが起動されるときに初期化されます。
この項では、アクセス・ログおよびサーバー・ログの概要を説明します。ログ・ファイルの名前や場所などのログ設定の変更の詳細は、「ログ・プリファレンスの構成」を参照してください。
アクセス・ログ
アクセス・ログには、サーバーへのリクエストおよびサーバーからのレスポンスについての情報が含まれます。アクセス・ログ・ファイルのデフォルト名は、 access.log
です。
次の例は、典型的なアクセス・ログの最初の3行を示しています。
format=%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] "%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %Req->vars.ecid% 10.177.243.207 - - [28/Aug/2011:23:28:30 -0700] "GET / HTTP/1.1" 200 4826 - 10.177.243.207 - - [28/Aug/2011:23:28:31 -0700] "GET / HTTP/1.1" 200 916 -
1行目は、アクセス・ログの形式を示しています。2行目および3行目は、実際のエントリです。
アクセス・ログの形式、ファイル名および場所を変更できます。アクセス・ログを無効化することもできます。「ログ・プリファレンスの構成」を参照してください。
サーバー・ログ
サーバー・ログには、ライフサイクル・イベント(サーバーの起動、シャット・ダウンおよび再起動)、構成の更新などに関するデータが含まれます。また、サーバーで発生したエラーおよび警告も含まれます。サーバー・ログ・ファイルのデフォルト名は、server.log
です。
次の行は、サーバー・ログ内のエントリの例です。
[2011-10-03T02:04:59.000-07:00] [net-soa] [NOTIFICATION] [OTD-10358] [] [pid: 11722] http-listener-1: http://example.com:1904 ready to accept requests
デフォルトのサーバー・ログ・レベルはNOTIFICATION:1
であり、主要なライフサイクル・イベント、警告およびエラーのみが記録されます。
ログ・レベル、ログ・ファイル名およびログ・ファイルの場所を変更できます。「ログ・プリファレンスの構成」を参照してください。
表13-1は、サーバー・ログに指定できるログ・レベルを示しています。
表13-1 サーバー・ログ・レベル
ログ・レベル | 説明 |
---|---|
|
原因不明の重大な問題です。Oracleサポートに連絡する必要があります。 |
|
迅速な対処が必要な深刻な問題です。 |
|
確認する必要がある潜在的な問題です。 |
|
サーバーの起動中または再起動中など主要なライフサイクル・イベントです。 |
|
ユーザーまたはOracleサポートが特定のサブシステムでの問題を診断するのに役立つトレースまたはデバッグ情報です。 |
各ログ・レベルの後の番号は、記録されたイベントの重大度を1-32の段階で示したものです。ERROR:1
メッセージは、ERROR:16
メッセージより重大度が高くなります。
TRACE:32
は、最も冗長度の高いログ・レベルで、INCIDENT_ERROR:1
は最も冗長度の低いログ・レベルです。TRACE
ログ・レベルを有効化すると、大量のメッセージが記録されるため、パフォーマンスに影響を及ぼす可能性があります。したがって、問題をデバッグするためにより詳細な情報が必要な場合を除き、本番システムで冗長なログ・レベルを有効化しないようにしてください。
ログの表示
仮想サーバーのログを作成した後、各仮想サーバーのログのリストを表示できます。ログのリストを表示するには、displayLogs
コマンドを実行します。
Fusion Middleware ControlまたはWLSTのいずれかを使用して、Oracle Traffic Directorインスタンスおよび仮想サーバーのアクセス・ログおよびサーバー・ログを表示できます。
ノート:
-
WLSTまたはFusion Middleware Controlを使用する以外にも、
ls
やmore
などの標準のオペレーティング・システム・コマンドを使用して、ログ・ファイルをリストしたり表示したりできます。 -
Fusion Middleware Controlのログ・ビューアおよびCWLSTの
displayLogs
コマンドでは、現在、ディスク上のアクセス・ログ・ファイル、TCPのアクセス・ログ、エラー・ログに存在するログ・エントリのみが表示されます。これらでは、アクセス・ログ・バッファにある項目は表示されません(「アクセス・ログ・バッファ設定の構成」を参照)。
Fusion Middleware Controlを使用したログの表示
Fusion Middleware Controlを使用してノード、インスタンス、インスタンス内の仮想サーバーのログ・データを表示します。
WLSTを使用したログの表示
インスタンスまたは仮想サーバーのアクセス・ログを表示するには、displayLogs
コマンドを実行します。
たとえば、次のコマンドでは、構成foo
のインスタンスのアクセス・ログ・レコードが表示されます。
displayLogs(target="sc:otd_foo_machine1")
ログ・プリファレンスの構成
構成を作成すると、サーバー・ログおよびアクセス・ログが、特定のデフォルト設定で有効化されます。サーバー・ログのレベル、ファイル名および場所を変更できます。アクセス・ログの形式、ファイル名および場所を変更できます。アクセス・ログを無効化することもできます。サーバー・ログの場所を変更する場合、インスタンスを再起動して変更を有効にする必要があります。
構成内に定義されたログ・プリファレンスは、構成内のすべての仮想サーバーに適用されます。仮想サーバー・レベルで、アクセス・ログの場所や形式、およびサーバー・ログの場所を定義できます。
次のトピックの説明に従い、Fusion Middleware ControlまたはWLSTのいずれかを使用して、Oracle Traffic Directorインスタンスのログ・プリファレンスを構成できます。
Fusion Middleware Controlを使用したログ・プリファレンスの構成
Fusion Middleware Controlを使用して構成または仮想サーバーのログ・プリファレンスを構成します
WLSTを使用したログ・プリファレンスの構成
-
構成または仮想サーバーの現在のアクセス・ログ・プリファレンスを表示するには、
getConfigurationAccessLogProperties
またはotd_getVirtualServerAccessLogProperties
コマンドを実行します。たとえば、次のコマンドでは、構成
foo
のアクセス・ログ・プリファレンスが表示されます。props = {} props['configuration'] = 'foo' otd_getConfigurationAccessLogProperties(props) log-file=$DOMAIN_HOME/servers/$INSTANCE_NAME/logs/access.log format=%Ses->client.ip% - %Req->vars.auth-user% %SYSDATE% "%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %Req->vars.ecid% %Req->vars.origin-server% default-access-log-format=%Ses->client.ip% - %Req->vars.auth-user% %SYSDATE% "%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %Req->vars.ecid% %Req->vars.origin-server%
-
構成または仮想サーバーの現在のアクセス・ログ・プリファレンスを設定または変更するには、
setConfigurationAccessLogProperties
またはotd_setVirtualServerAccessLogProperties
コマンドを実行します。たとえば、次のコマンドでは、構成
foo
のアクセス・ログの場所がlogs/access.log
に変更されます。props = {} props['configuration'] = 'foo' props['log-file'] = 'logs/access.log' otd_setConfigurationAccessLogProperties(props)
カスタムのアクセス・ログ形式指定の詳細は、Oracle Traffic Director構成ファイル・リファレンスのカスタムのアクセス・ログ形式の使用を参照してください。
-
仮想サーバーのアクセス・ログを無効にするには、次の例に示すように、
otd_disableVirtualServerAccessLog
コマンドを実行します。props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' otd_disableVirtualServerAccessLog(props)
-
構成の現在のサーバー・ログ・プリファレンスを表示するには、
otd_getLogProperties
コマンドを実行します。たとえば、次のコマンドでは、構成
soa
のサーバー・ログ・プリファレンスが表示されます。props = {} props['configuration'] = 'foo' otd_getLogProperties(props) log-stdout=true log-stderr=true log-virtual-server-name=false create-console=false log-to-console=true log-to-syslog=false log-level=NOTIFICATION:1 log-file=../logs/server.log
-
構成のサーバー・ログ・プリファレンスを設定または変更するには、
otd_setLogProperties
コマンドを実行します。サーバー・ログの場所を変更する場合、インスタンスを再起動して変更を有効にする必要があることに注意してください。たとえば、次のコマンドでは、構成
foo
のサーバー・ログ・レベルがTRACE:32
に変更されます。props = {} props['configuration'] = 'foo' props['log-level'] = 'TRACE:32' otd_setLogProperties(props)
-
構成または仮想サーバーの現在のアクセス・ログ・プリファレンスを表示するには、
getConfigurationAccessLogProperties
またはotd_getVirtualServerAccessLogProperties
コマンドを実行します。たとえば、次のコマンドでは、構成
foo
のアクセス・ログ・プリファレンスが表示されます。props = {} props['configuration'] = 'foo' otd_getConfigurationAccessLogProperties(props) log-file=$DOMAIN_HOME/servers/$INSTANCE_NAME/logs/access.log format=%Ses->client.ip% - %Req->vars.auth-user% %SYSDATE% "%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %Req->vars.ecid% %Req->vars.origin-server% default-access-log-format=%Ses->client.ip% - %Req->vars.auth-user% %SYSDATE% "%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %Req->vars.ecid% %Req->vars.origin-server%
-
構成または仮想サーバーの現在のアクセス・ログ・プリファレンスを設定または変更するには、
setConfigurationAccessLogProperties
またはotd_setVirtualServerAccessLogProperties
コマンドを実行します。たとえば、次のコマンドでは、構成
foo
のアクセス・ログの場所がlogs/access.log
に変更されます。props = {} props['configuration'] = 'foo' props['log-file'] = 'logs/access.log' otd_setConfigurationAccessLogProperties(props)
カスタムのアクセス・ログ形式指定の詳細は、Oracle Traffic Director構成ファイル・リファレンスのカスタムのアクセス・ログ形式の使用を参照してください。
-
仮想サーバーのアクセス・ログを無効にするには、次の例に示すように、
otd_disableVirtualServerAccessLog
コマンドを実行します。props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' otd_disableVirtualServerAccessLog(props)
-
構成の現在のサーバー・ログ・プリファレンスを表示するには、
otd_getLogProperties
コマンドを実行します。たとえば、次のコマンドでは、構成
soa
のサーバー・ログ・プリファレンスが表示されます。props = {} props['configuration'] = 'foo' otd_getLogProperties(props) log-stdout=true log-stderr=true log-virtual-server-name=false create-console=false log-to-console=true log-to-syslog=false log-level=NOTIFICATION:1 log-file=../logs/server.log
-
構成のサーバー・ログ・プリファレンスを設定または変更するには、
otd_setLogProperties
コマンドを実行します。サーバー・ログの場所を変更する場合、インスタンスを再起動して変更を有効にする必要があることに注意してください。たとえば、次のコマンドでは、構成
foo
のサーバー・ログ・レベルがTRACE:32
に変更されます。props = {} props['configuration'] = 'foo' props['log-level'] = 'TRACE:32' otd_setLogProperties(props)
ログ・ローテーションについて
指定した間隔でログを自動的にローテーション(アーカイブ)するようにOracle Traffic Directorを構成できます。また、必要な場合はいつでも、ログを手動でローテーションすることもできます。
ログをローテーションすると、古いログ・ファイルは、ローテーション日付(yyyymmdd
形式)および24時間(hhmm
)を示す接尾辞で名前が変更されます。たとえば、2017年8月25日午後11時にアーカイブされたサーバー・ログのファイル名は、server-201108252300.log
となります。
ログのローテーション後、サーバー・ログおよびアクセス・ログは再初期化されます。
ノート:
アクセス・ログのローテーション・イベントにより、TCPアクセス・ログもローテーションされます。
手動によるログ・ローテーション
また、必要な場合はいつでも、ログを手動でローテーションすることもできます。古いログ・ファイルはサーバーに保存され、保存済ファイルは保存時の日時を含む名前を使用してマークされます。
WLSTを使用したログの手動ローテーション
WLSTを使用してログを自動的にローテーションするには、次を行います。
インスタンスのログをローテーションするには、otd_rotateLog
コマンドを実行します。たとえば、次のコマンドでは、otd_foo_machine1
インスタンスのアクセスおよびサーバー・ログがローテーションされます。
props = {} props['instance'] = 'otd_foo_machine1' otd_rotateLog(props)
ノート:
Oracle Traffic Directorで、ローテーションされたログ・ファイルに対して特定のコマンドを実行するには、次の例に示すように、otd_setLogProperties
コマンドを実行して、必要なコマンドへの絶対パスを指定するarchive-command
プロパティを指定します。
props = {} props['configuration'] = 'foo' props['archive-command] = '/usr/bin/gzip' otd_setLogProperties(props)
この例では、ログのローテーション後、次のコマンドにより、ローテーションされたログ・ファイルがOracle Traffic Directorで圧縮されます。
$ /usr/bin/gzip access-yyyymmddhhmm.log $ /usr/bin/gzip server-yyyymmddhhmm.log
Oracle Traffic Directorにおけるログ・ローテーションの自動化の構成
ログ・ローテーション・イベントを作成し、指定した時間または間隔で、ログを自動的にローテーションするようにOracle Traffic Directorを構成できます。
次のトピックの説明に従い、Fusion Middleware ControlまたはWLSTのいずれかを使用して、ログ・ローテーション・イベントを作成できます。
Fusion Middleware Controlを使用したログ・ローテーション・イベントの作成
Fusion Middleware Controlを使用してログ・ローテーション・イベントを作成するには、次を実行します。
-
「グラフィカル・ユーザー・インタフェース - Fusion Middleware Control」の説明に従って、Fusion Middleware Controlにログインします。
-
ページの左上隅にある「WebLogicドメイン」ボタンをクリックします。
-
「管理」→「OTD構成」を選択します。
使用可能な構成のリストが表示されます。
-
ログをローテーションする構成を選択します。
-
「共通タスク」ペインの「Traffic Director構成」をクリックします。
-
「管理」→「ログ・ローテーション」を選択します。
-
Oracle Traffic Directorの「ログ・ローテーション」ウィンドウが表示されます。
-
Oracle Traffic Directorで、ローテーションされたログ・ファイルに対し特定のコマンドを実行するには、「アーカイブ・コマンド」フィールドで、必要なコマンドへの絶対パスを指定します。
たとえば、アーカイブ・コマンドとして
/usr/bin/gzip
を指定した場合、ログのローテーション後、Oracle Traffic Directorでは、次のコマンドを実行してローテーションされたログ・ファイルを圧縮します。$ /usr/bin/gzip access-yyyymmddhhmm.log $ /usr/bin/gzip server-yyyymmddhhmm.log
-
「作成」をクリックします。
「新規ログ・ローテーション・イベント」ダイアログ・ボックスが表示されます。
-
このイベントがサーバー・ログ用かまたはアクセス・ログ用かを指定します。
-
ログを更新する間隔または時刻を指定し、「OK」をクリックします。
-
イベントの作成を確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。
-
新規イベントが「ログ・ローテーション・イベント」リストに表示されます。
-
新しいイベントはデフォルトで有効になっています。ステータスを変更するには、「有効化/無効化」チェック・ボックスを選択します。
-
イベントを削除するには、「削除」ボタンをクリックします。
-
-
WLSTを使用したログ・ローテーション・イベントの作成
ログ・ローテーション・イベントを作成するには、otd_createEvent
コマンドを実行します。
たとえば、次のコマンドでは、構成foo
のすべてのインスタンスのアクセス・ログおよびサーバー・ログを午後12時にローテーションするようにOracle Traffic Directorが構成されます。
props = {} props['configuration'] = 'foo' props['event'] = 'event-1' props['command'] = 'rotate-log' props['time'] = '12:00' otd_createEvent(props) props = {} props['configuration'] = 'foo' props['event'] = 'event-1' props['command'] = 'rotate-access-log' props['time'] = '12:00' otd_createEvent(props)