Sun Java System Directory Server Enterprise Edition 6.3 管理指南

Procedure跟踪从目录服务器经由目录代理服务器到客户端应用程序的操作

无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。

  1. 找到您要在目录服务器访问日志中跟踪的操作的连接号。

    例如,访问日志中的以下行显示连接号为 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. 获取该连接的目录代理服务器连接信息。

    要获取此信息,请搜索目录服务器访问日志,以找到具有相应连接号的所有操作。例如,在 UNIX 系统上运行以下 grep 命令,可找到目录服务器访问日志中与连接 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 到目录服务器的 LDAP 连接。端口号 (57153) 是将连接链接回目录代理服务器访问日志所需的信息。通过端口号可以查找目录代理服务器日志中相应的连接,并从此连接找到客户端信息。

    如果日志文件自首次建立连接后已进行了轮转,则需要搜索已归档的日志文件和当前的访问日志文件。

  3. 找到目录代理服务器访问日志中相应的连接。

    要获取此信息,请搜索目录代理服务器访问日志,以找到具有相应端口号的所有操作。

    您可能会在日志文件中找到具有相同端口号的多个条目。要确保找到正确的条目,请在搜索中包含目录服务器日志条目的时间戳。

    例如,在 UNIX 系统上运行以下 grep 命令,以查找与在目录服务器日志中找到的时间戳和端口号相对应的连接条目:


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

    请注意,考虑到服务器时间会存在一些细微差别,因此从时间戳中排除了值。

    目录代理服务器日志中的相应行应类似于以下内容:


    [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

    此行表明目录代理服务器创建了到 s_conn=sunds-d1m1-9389:34BIND 连接。目录代理服务器将其自身标识为 TCP 端口 57153 上的客户端 client=0.0.0.0

    可从此日志行中提取的重要信息为服务器 ID 和端口号 (s_conn=sunds-d1m1-9389:34 )。

  4. 找到与上一步中标识的服务器 ID 和端口号相对应的所有操作。

    要获取此信息,请搜索目录代理服务器访问日志,以找到与服务器 ID 和端口号相对应的所有操作。

    例如,在 UNIX 系统上运行以下 grep 命令,可找到与上一步中找到的服务器 ID 相对应的操作。


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

    在这种情况下,搜索时间戳将不起作用,因为这些操作可能会跨越数天。但是,您必须确定搜索返回的操作是否正确。如果存在多个 Create 连接语句,请确保找到与原始搜索语句相对应的语句。要执行此操作,请将此时间戳与步骤 1 中找到的时间戳进行比较。

    从目录代理服务器访问日志中提取的以下内容显示了为 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

    通过以上信息,您可以看到目录代理服务器上的此搜索操作的连接 ID 为 31 (conn=31)。

  5. 找到与上一步中找到的连接 ID 相对应的客户端连接 IP 地址。

    要获取此信息,请搜索目录代理服务器访问日志,以找到具有正确连接 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 地址的所有者。

    通过此信息,可以准确地确定在目录服务器上负责执行该操作的用户。