ヘッダをスキップ
Oracle® WebLogic Communication Services 開発者ガイド
11g リリース 1 (11.1.1)
B55506-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

この章では、開発システムにおけるメッセージ ロギング機能の使用方法を説明します。以下の節で構成されています。

7.1 概要

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

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

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

メッセージ ロギングの有効化とコンフィグレーションは、sipserver.xml コンフィグレーション ファイルに message-debug 要素を追加することによって行います。OWLCS には、記録する情報をコンフィグレーションする方法が 2 通りあります。

以下の節では、sipserver.xml ファイルで要素を使用して、各メソッドのメッセージ ロギング機能のコンフィグレーションを説明します。SipServer コンソール拡張ノードの [コンフィグレーション|メッセージ デバッグ] タブで Administration Console を使用してこれらの要素を設定することができます。

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

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

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

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

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

例 7-1 は、full ロギング レベルを指定するコンフィグレーション エントリです。

例 7-1 sipserver.xml でのメッセージ ロギング レベルのコンフィグレーションの例

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

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

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


注意 :

message-debug 内に format 要素と <level>full</level> 要素 (または未定義の level 要素) を一緒に指定すると、OWLCS は 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 暗号化されていないロギングのコンテンツ タイプの指定

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

こうした状況でメッセージのコンテンツの暗号化を回避するには、sipserver.xmlstring-rep 要素を使用して String-representable Content-Type 値のリストを指定します。string-rep 要素は 1 つまたは複数の一致する content-type 要素を持つことができます。ログされたメッセージがコンフィグレーションされた content-type 要素のいずれかに一致する場合、OWLCS は 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 メッセージのメッセージ ログ エントリは、デフォルトではメイン OWLCS のログ ファイルに格納されています。必要に応じて、専用のログ ファイルにメッセージを格納することができます。別々のファイルを使用すると、メッセージ ログの場所を簡単に特定でき、しかも記録されたデータをより適切に管理できるよう、OWLCS のログ ローテーション機能が使用できます。

ログ ローテーションは、sipserver.xml にあるメインの message-debug 要素の中にネストされたいくつかの要素を使用してコンフィグレーションされます。この節で説明されている他の XML 要素と同様に、SIP Server Administration Console 拡張の [コンフィグレーション|メッセージ デバッグ] タブを使用して値をコンフィグレーションすることができます。

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

表 7-3 ログ ローテーション コンフィグレーションの XML 要素

要素 説明

logging-enabled

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

file-min-size

最低減のサイズをコンフィグレーションし、その後サーバがログ メッセージを別のファイルに自動的にローテーションします。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>