Sun Java System Directory Server Enterprise Edition 6.1 管理ガイド

Directory Proxy Server および Directory Server のアクセスログによるクライアント要求の追跡

クライアント要求のパスを追跡するには、要求が Directory Proxy Server のアクセスログと Directory Server のアクセスログに記録される方法を理解する必要があります。この節の内容を理解するには、最初に『Sun Java System Directory Server Enterprise Edition 6.1 Reference』「Tracking Client Requests Through Directory Proxy Server and Directory Server Access Logs」をお読みください。

ProcedureDirectory Proxy Server から Directory Server を経由したクライアントアプリケーションへの操作を追跡する

DSCC を使用してこの作業を実行することはできません。この手順で説明しているように、コマンド行を使用してください。

  1. Directory Server のアクセスログ内で追跡する操作の接続番号を見つけます。

    たとえば、アクセスログ内の次の行は、接続番号が conn=12839 である op=2 という操作を示します。


    [20/Jul/2006:18:01:49 -0500] conn=12839 op=2 msgId=4 - SRCH base="dc=example,dc=com" 
     scope=2 filter="(objectClass=organizationalunit)" attrs=ALL
  2. その接続についての Directory Proxy Server の接続情報を入手します。

    この情報を入手するには、Directory Server のアクセスログを検索して、対応する接続番号を持つすべての操作を見つけます。たとえば、UNIX システムの場合、次のような grep コマンドを実行して、Directory Server のアクセスログ内の接続 conn=12839 に対応するすべての行を見つけます。


    $ grep conn=12839 access

    最初の LDAP 接続を示す行が探している行であり、次のようになります。


    [19/Jul/2006:16:32:51 -0500] conn=12839 op=-1 msgId=-1 - fd=27 slot=27 
     LDAP connection from 129.153.160.175:57153 to 129.153.160.175

    前述の行は、129.153.160.175:57153 から Directory Server への LDAP 接続があることを示しています。ポート番号 (57153) は、Directory Proxy Server のアクセスログで接続情報を調べる際に必要となります。このポート番号を使って、Directory Proxy Server のログ内で対応する接続を見つけることができ、この接続からクライアント情報を見つけることができます。

    接続が最初に確立されてからログファイルのローテーションが行われている場合は、アーカイブされたログファイルと現在のアクセスログファイルを検索する必要があります。

  3. Directory Proxy Server のアクセスログ内で対応する接続を見つけます。

    この情報を入手するには、Directory Proxy Server のアクセスログを検索して、対応するポート番号を持つすべての操作を見つけます。

    ログファイル内で、同じポート番号を持つ複数のエントリが見つかることがあります。正しいエントリを確実に見つけるには、Directory Server のログを検索したときに見つかったエントリに記載されていたタイムスタンプも条件に含めて検索します。

    たとえば、UNIX システムでは、次のように grep コマンドを実行して、Directory Server のログで見つけたエントリのタイムスタンプおよびポート番号に対応する接続エントリを見つけます。


    $ grep 19/Jul/2006:16:32 access | grep 57153

    サーバー間でのわずかな時間のずれを考慮に入れて、検索条件にタイムスタンプを含めるときには、秒の値は除きます。

    Directory Proxy Server のログ内の対応する行は、次のようになります。


    [19/Jul/2006:16:32:51 -0500] - SERVER_OP  - INFO  - Created BIND  LDAP connection 
     s_conn=sunds-d1m1-9389:34 client=0.0.0.0:57153 
     server=idm160.central.sun.com:9389 main

    この行は、Directory Proxy Server で s_conn=sunds-d1m1-9389:34 への BIND 接続が作成されたことを示します。Directory Proxy Server は、自分自身を TCP ポート 57153 上のクライアント client=0.0.0.0 として識別します。

    ログのこの行から得られる重要な情報は、サーバー ID とポート番号 (s_conn=sunds-d1m1-9389:34 ) です。

  4. 前述の手順で識別されたサーバー ID とポート番号に対応するすべての操作を見つけます。

    この情報を入手するには、Directory Proxy Server のアクセスログで、対応するサーバー ID とポート番号を持つすべての操作をを検索します。

    たとえば、UNIX システムでは、次のような grep コマンドを実行して、前述の手順で見つけたサーバー ID に対応する操作を見つけます。


    $ grep s_conn=sunds-d1m1-9389:34 access

    この例では、関連する操作が数日にまたがっている可能性があるため、タイムスタンプを用いた検索は有効ではないかもしれません。ただし、検索によって返される操作が正しいものであることを確認する必要があります。複数の Create 接続ステートメントがある場合は、必ず、Directory Server のログで見つけた Create 接続ステートメントと合致するものを見つけてください。そのためには、手順 1 で見つかったエントリのタイムスタンプと同じタイムスタンプのエントリを見つけます。

    Directory Proxy Server のアクセスログの次の抜粋は、s_conn=sunds-d1m1-9389:34 に対して返されたすべての操作を示します。


    [19/Jul/2006:16:32:51 -0500] - SERVER_OP  - INFO - Created BIND LDAP connection
     s_conn=sunds-d1m1-9389:34 client=0.0.0.0:57153 server=idm160.central.sun.com:9389 main
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=0 BIND dn="cn=directory manager"
     method="SIMPLE" s_msgid=3 s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=0 BIND RESPONSE err=0 msg=""
     s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=1 SEARCH base="dc=example,dc=com"
     scope=2 s_msgid=4 s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=1 SEARCH RESPONSE err=0 msg=""
     nentries=1 s_conn=sunds-d1m1-9389:34

    この情報により、Directory Proxy Server のこの検索操作に対する接続 ID が 31 (conn=31) であることがわかります。

  5. 前述の手順で見つかった接続 ID に対応する、クライアント接続 IP アドレスを見つけます。

    この情報を入手するには、Directory Proxy Server のアクセスログで、正しい接続 ID とタイムスタンプを持つすべての操作を検索します。検索時には、手順 1 で検索したステートメントのタイムスタンプを使用します。

    たとえば、UNIX システムでは、次のような grep コマンドを実行して、クライアント接続 IP アドレスを見つけます。


    $ grep "20/Jul/2006:18:01" access | grep conn=31

    目的の行は次のようになります。


    [20/Jul/2006:18:01:49 -0500] - CONNECT - INFO  - conn=31 client=129.150.64.156:2031
    server=0.0.0.0:11389 protocol=LDAP
  6. 前述の手順で見つかった IP アドレスの所有者を確認します。

    この情報により、Directory Server 上で行われた操作をだれが担当したかを、正確に証明できます。