ヘッダーをスキップ
Oracle® WebLogic Server SIP Container開発者ガイド
11g リリース1(11.1.1)
B61430-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

7 メッセージ・ロギングの有効化

この章では、開発システムでメッセージ ロギング機能を使用する方法について説明します。内容は次のとおりです。

7.1 概要

メッセージ・ロギングではOracle WebLogic Server SIP Containerが受信したSIPとDiameterメッセージ(リクエストとレスポンスの両方)が記録されます。これには、ロギング・レベルをINFOレベル以上に設定する必要があります。開発環境でメッセージ・ログを使用して、外部のSIPリクエストとSIPレスポンスがどのように受信されるかチェックできます。アプリケーション・ログからSIPダイアログの識別可能な情報(Call-IDなど)を出力し、メッセージ・ログから関連するSIPメッセージを抽出することにより、HTTPサーブレットなどからのSIP呼出しをチェックすることもできます。

メッセージ・ロギングを有効にすると、Oracle WebLogic Server SIP Containerによって、各エンジン層サーバー・インスタンスに関連付けられた管理対象サーバー・ログ・ファイルにメッセージ・ログ・レコードがデフォルトで記録されます。「ログ・ファイル・ローテーションの構成」に示しているように、必要に応じてメッセージを個別の専用のログ・ファイルに記録できます。

7.2 メッセージ・ロギングの有効化

メッセージ・ロギングの有効化と構成は、sipserver.xml構成ファイルにmessage-debug要素を追加することによって行います。Oracle WebLogic Server SIP Containerには、記録する情報を構成する方法が2通りあります。

次の項では、sipserver.xmlファイルで要素を使用して、各メソッドのメッセージ・ロギング機能の構成を説明します。SipServerコンソール拡張ノードの「構成」->「メッセージのデバッグ」タブで管理コンソールを使用してこれらの要素を設定できます。

7.2.1 あらかじめ定義されているロギング・レベルの指定

message-debug内のlevel要素(オプション)で、SIPの各リクエストとレスポンスについて記録する情報の定義済コレクションを指定します。次のレベルがサポートされています。

  • terse(簡潔) - domain設定、ロギング・サーブレット名、ロギングlevelおよびメッセージが受信メッセージかどうかのみを記録します。

  • basic - terseの項目に加えて、SIPメッセージのステータス、Reason-Phrase(説明句)、レスポンスまたはリクエストのタイプ、SIPメソッド、FromヘッダーおよびToヘッダーがログに記録されます。

  • full - basicの項目に加え、すべてのSIPメッセージ・ヘッダー、タイム・スタンプ、プロトコル、リクエストURI、リクエスト・タイプ、レスポンス・タイプ、コンテンツ・タイプおよびrawコンテンツがログに記録されます。

例7-1は、fullロギング・レベルを指定する構成エントリです。

例7-1 sipserver.xmlでのメッセージ・ロギング・レベルの構成の例

<message-debug>
   <level>full</level>
</message-debug>

7.2.2 ログ・レコードのカスタマイズ

Oracle WebLogic Server SIP Containerでは、各メッセージのログ・レコードの内容と順序をカスタマイズすることもできます。カスタム・ログ・レコードを構成するには、format要素を使って、ログ・レコードのpatternと各レコードに記録する1つまたは複数のtokenを定義する必要があります。


注意:

message-debug内にformat要素と<level>full</level>要素(または未定義のlevel要素)を一緒に指定すると、Oracle WebLogic Server SIP Containerはformatエントリを無視して「full」のメッセージ・デバッグを使用します。formatエントリは、message-debugの「terse」または「basic」レベルと組み合せて使用できます。

表7-1に、format要素内でネストして使用される要素を示します。

表7-1 ネストされるフォーマット要素

パラメータ名 パラメータ値の説明

pattern

メッセージ・ログ・エントリをフォーマットするため使用したパターンを指定します。このフォーマットは、1つまたは複数の整数を「{」と「}」で囲んで指定することにより定義されます。各整数は、format定義の中で後で指定されるtokenを表します。

token

ログ・レコードに含めるSIPメッセージの一部を識別する文字列トークン。表7-2では、利用可能な文字列トークンのリストを示します。必要に応じて複数のtoken要素を定義してログ・レコードをカスタマイズできます。


表7-2に、メッセージ・ログ・レコードに含める情報を指定するための文字列token値を示します。

表7-2 メッセージ・ログ・レコードに利用可能なトークン

トークン 説明 例またはタイプ

%call_id

Call-IDヘッダー。転送のときは空白。

43543543

%content

rawコンテンツ。

バイト配列

%content_length

コンテンツ長。

文字列値

%content_type

コンテンツ・タイプ。

文字列値

%cseq

CSeqヘッダー。転送のときは空白。

INVITE 1

%date

メッセージの受信日付。「yyyy/MM/dd」の形式。

2004/05/16

%from

Fromヘッダー(全部)。転送のときは空白。

sip:foo@oracle.com;tag=438943

%from_addr

Fromヘッダーのアドレス部分。

foo@oracle.com

%from_tag

Fromヘッダーのタグ・パラメータ。転送のときは空白。

12345

%from_uri

FromヘッダーのSIP URI部分。転送のときは空白。

sip:foo@oracle.com

%headers

2要素配列に格納されるメッセージ・ヘッダーのリスト。最初の要素はヘッダーの名前で、2番目の要素はヘッダーの全値のリストです。

ヘッダーのリスト

%io

メッセージが受信メッセージかどうか。

TRUE

%method

SIPメソッドの名前。転送時に呼び出すメソッド名を記録します。

INVITE

%msg

サマリーCall ID

文字列値

%mtype

受信のタイプ。

SIPREQ

%protocol

使用プロトコル。

UDP

%reason

レスポンス理由。

OK

%req_uri

リクエストURI。このトークンはSIPリクエストについてのみ有効です。

sip:foo@oracle.com

%status

レスポンス・ステータス。

200

%time

メッセージの受信時刻。「HH:mm:ss」の形式。

18:05:27

%timestampmillis

ミリ秒単位のタイム・スタンプ。

9295968296

%to

Toヘッダー(全部)。転送のときは空白。

sip:foo@oracle.com;tag=438943

%to_addr

Toヘッダーのアドレス部分。

foo@oracle.com

%to_tag

Toヘッダーのタグ・パラメータ。転送のときは空白。

12345

%to_uri

ToヘッダーのSIP URI部分。転送のときは空白。

sip:foo@oracle.com


2つのトークンを使ってカスタム・ログ・レコードを定義したサンプルのsipserver.xmlファイルについては、「メッセージ・ログ構成と出力の例」を参照してください。

7.3 暗号化されていないロギングのコンテンツ・タイプの指定

デフォルトでは、Oracle WebLogic Server SIP Containerは、テキストまたはapplication/sdpのContent-Type値を持つSIPメッセージのコンテンツをログするために、文字列フォーマット(UTF-8エンコーディング)を使用します。他のすべてのContent-Type値では、文字列セットが指定されている場合、Oracle WebLogic Server SIP Containerはメッセージのcharsetパラメータに指定した文字列セットを使用してメッセージのコンテンツをログします。charsetパラメータが指定されていない場合、またはcharset値が無効かサポートされていない場合、Oracle WebLogic Server SIP Containerは、メッセージをログする前にメッセージ・コンテンツを暗号化するためにBase-64エンコーディングを使用します。

こうした状況でメッセージのコンテンツの暗号化を回避するには、sipserver.xmlstring-rep要素を使用してString-representable Content-Type値のリストを指定します。string-rep要素は1つまたは複数の一致するcontent-type要素を持つことができます。ログされたメッセージが構成されたcontent-type要素のいずれかに一致する場合、Oracle WebLogic Server SIP Containerはcharsetパラメータが含まれているか否かにかかわらず、UTF-8エンコーディングを使用して文字列フォーマットにコンテンツをログします。


注意:

text/*またはapplication/sdpのコンテンツ・タイプはデフォルトとして文字列フォーマットにログされているため、指定する必要はありません。

例7-2に、text/*およびapplication/sdpコンテンツに加え、追加の3つのContent-Type値に対して文字列コンテンツをログするmessage-debug構成をサンプルとして示します。

例7-2 追加のコンテンツ・タイプのロギング文字列コンテンツ

   <message-debug>
     <level>full</level>
     <string-rep>
       <content-type>application/msml+xml</content-type>
       <content-type>application/media_control+xml</content-type>
       <content-type>application/media_control</content-type>
     </string-rep>
   </message-debug>

7.4 メッセージ・ログ構成と出力の例

例7-3には、sipserver.xmlでのメッセージ・ログ構成の例を示します。例7-4「メッセージ・ログ出力の例」には、管理対象サーバーのログ・ファイルからの出力の例を示します。

例7-3 sipserver.xmlでのメッセージ・ログ構成の例

<message-debug>
   <format>
      <pattern>{0} {1}</pattern>
      <token>%headers</token>
      <token>%content</token>
   </format>
</message-debug>

例7-4 メッセージ・ログ出力の例

####<Aug 10, 2005 7:12:08 PM PDT> <Info> <WLSS.Trace> <jiri.bea.com> <myserver> <ExecuteThread: '11' for queue: 'sip.transport.Default'> <<WLS Kernel>> <> <BEA- 331802> <SIP Tracer: logger Message: To: sut <sip:invite@10.32.5.230:5060> <mailto:sip:invite@10.32.5.230:5060> 
Content-Length: 136
Contact: user:user@10.32.5.230:5061
CSeq: 1 INVITE
Call-ID: 59.3170.10.32.5.230@user.call.id
From: user <sip:user@10.32.5.230:5061> <mailto:sip:user@10.32.5.230:5061> ;tag=59
Via: SIP/2.0/UDP 10.32.5.230:5061
Content-Type: application/sdp
Subject: Performance Test
Max-Forwards: 70
 v=0
o=user1 53655765 2353687637 IN IP4 127.0.0.1
s=-
c=IN IP4       127.0.0.1
t=0 0
m=audio 10000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
>
####<Aug 10, 2005 7:12:08 PM PDT> <Info> <WLSS.Trace> <jiri.bea.com> <myserver> <ExecuteThread: '11' for queue: 'sip.transport.Default'> <<WLS Kernel>> <> <BEA- 331802> <SIP Tracer: logger Message: To: sut <sip:invite@10.32.5.230:5060> <mailto:sip:invite@10.32.5.230:5060> 
Content-Length: 0
CSeq: 1 INVITE
Call-ID: 59.3170.10.32.5.230@user.call.id
Via: SIP/2.0/UDP 10.32.5.230:5061
From: user <sip:user@10.32.5.230:5061> <mailto:sip:user@10.32.5.230:5061> ;tag=59
Server: Oracle WebLogic Communications Server 10.3.1.0
 >

7.5 ログ・ファイル・ローテーションの構成

SIPとDiameterメッセージのメッセージ・ログ・エントリは、デフォルトではメインOracle WebLogic Server SIP Containerのログ・ファイルに格納されています。必要に応じて、専用のログ・ファイルにメッセージを格納できます。別々のファイルを使用すると、メッセージ・ログの場所を簡単に特定でき、しかも記録されたデータをより適切に管理できるよう、Oracle WebLogic Server SIP Containerのログ・ローテーション機能を使用できます。

ログ・ローテーションは、sipserver.xmlにあるメインのmessage-debug要素の中にネストされたいくつかの要素を使用して構成されます。この項で説明されている他のXML要素と同様に、SIP Server管理コンソール拡張の「構成」->「メッセージのデバッグ」タブを使用して値を構成できます。

表7-3では、各要素を説明しています。独立したロギングとログ・ローテーションを開始するためには、サーバーの再起動が必要です。

表7-3 ログ・ローテーション構成のXML要素

要素 説明

logging-enabled

メッセージ・デバッグのログ・メッセージの格納に個別のログ・ファイルを使用するかどうかを決定します。デフォルトでは、この要素はfalseに設定されており、メッセージは一般的なログ・ファイルに記録されます。

file-min-size

最小サイズ(KB)を構成し、その後サーバーがログ・メッセージを別のファイルに自動的にローテーションします。この値は、rotation-type要素がbySizeに設定されている時に使用します。

log-filename

メッセージを格納するためにログ・ファイル名を定義します。デフォルトでは、ログ・ファイルはdomain_home/servers/server_name/logsに格納されます。

rotation-type

古いログ・メッセージを別のファイルに移動するための基準を構成します。この要素には、以下のいずれかの値を取ります。

  • bySize - このデフォルト設定は、指定されたfile-min-sizeに基づき、ログ・メッセージをローテーションします。

  • byTime - この設定は、指定されたrotation-timeに基づき、ログ・メッセージをローテーションします。

  • none - ログのローテーションを無効にします。

number-of-files-limited

サーバーがログのローテーション後に格納されたログ・ファイルの総数を制限するかどうかを指定します。デフォルトでは、この要素はfalseに設定されています。

file-count

number-of-files-limitedがtrueに設定された場合は、維持するログ・ファイルの最大数を構成します。

rotate-log-on-startup

サーバーがサーバーの起動時にログ・ファイルをローテーションするかどうかを決定します。

log-file-rotation-dir

ローテーションされたログ・ファイルを格納するディレクトリを構成します。デフォルトでは、アクティブなログ・ファイルとして、同一ディレクトリ内でローテーションされたログ・ファイルを格納します。

rotation-time

byTimeをログ・ローテーションの基準に使用する場合、ログ・ローテーションの起動時刻を構成します。

file-time-span

間隔を時間単位で指定してからログ・ファイルをローテーションします。この値は、rotation-type要素がbyTimeに設定されている場合に使用します。

date-format-pattern

ログ・ファイル・エントリで日付の設定に使用するパターンを指定します。要素の値はjava.text.SimpleDateFormatクラスに準拠する必要があります。


例7-5に、ログ・ローテーションを使用するmessage-debug構成の例を示します。

例7-5 ログ・ローテーション構成の例

<?xml version='1.0' encoding='UTF-8'?>
<sip-server xmlns="http://www.bea.com/ns/wlcp/wlss/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls">
  <message-debug>
    <logging-enabled>true</logging-enabled>
    <file-min-size>500</file-min-size>
    <log-filename>sip-messages.log</log-filename>
    <rotation-type>byTime</rotation-type>
    <number-of-files-limited>true</number-of-files-limited>
    <file-count>5</file-count>
    <rotate-log-on-startup>false</rotate-log-on-startup>
    <log-file-rotation-dir>old_logs</log-file-rotation-dir>
    <rotation-time>00:00</rotation-time>
    <file-time-span>20</file-time-span>
    <date-format-pattern>MMM d, yyyy h:mm a z</date-format-pattern>
  </message-debug>
</sip-server>