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

第 27 章 目錄代理伺服器記錄

目錄代理伺服器在存取記錄與錯誤記錄中記錄資訊。與目錄伺服器不同,目錄代理伺服器不具有稽核記錄。如需目錄代理伺服器中記錄的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的第 19 章「Directory Proxy Server Logging」

本章包含下列主題:

檢視目錄代理伺服器記錄

您可以直接透過記錄檔或使用目錄服務控制中心 (DSCC) 檢視目錄代理伺服器記錄。

依預設,記錄儲存在此目錄中:


instance-path/logs

下圖顯示 DSCC 上目錄代理伺服器錯誤記錄的螢幕擷取。

圖 27–1 目錄代理伺服器的錯誤記錄視窗

螢幕擷取顯示目錄代理伺服器的錯誤記錄。在表中列出錯誤記錄項目。

配置目錄代理伺服器記錄

透過使用 dpconf 指令或 DSCC,可以配置目錄代理伺服器錯誤記錄與存取記錄。如需有關如何使用 DSCC 配置記錄的資訊,請參閱目錄代理伺服器線上說明。本節說明如何透過使用 dpconf 指令配置目錄代理伺服器記錄。

您可以透過執行下列指令,擷取完整的配置選項清單以及允許的值和預設值:

$ dpconf help-properties error-log
$ dpconf help-properties access-log

Procedure配置目錄代理伺服器存取與錯誤記錄

本程序配置目錄代理伺服器存取記錄。若要配置目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視存取記錄的特性。


    $ dpconf get-access-log-prop -h host -p port
    

    存取記錄的預設特性如下:


    default-log-level                :  info
    enable-log-rotation				  :  true
    log-buffer-size                  :  9.8k
    log-file-name                    :  logs/access
    log-file-perm                    :  600
    log-level-client-connections     :  -
    log-level-client-disconnections  :  -
    log-level-client-operations      :  -
    log-level-connection-handlers    :  -
    log-level-data-sources           :  -
    log-level-data-sources-detailed  :  -
    log-min-size						  :  100M
    log-rotation-frequency           :  1h
    log-rotation-policy              :  size
    log-rotation-size                :  100M
    log-rotation-start-day           :  1
    log-rotation-start-time          :  0000
    log-search-filters               :  false
    max-age                          :  unlimited
    max-log-files                    :  10
    max-size                         :  unlimited
    min-free-disk-space-size         :  1M
  2. 變更步驟 1 中所列的一或多個特性。


    $ dpconf set-access-log-prop -h host -p port property:value \
     [property:value ...]

    例如,若要將所有訊息種類的預設記錄層級設為警告,請將 default-log-level 特性的值設為 warning


    $ dpconf set-access-log-prop -h host1 -p 1389 default-log-level:warning

    若要停用所有記錄,不論各訊息種類的記錄層級為何,都將 default-log-level 特性的值設為 none


    $ dpconf set-access-log-prop -h host1 -p 1389 default-log-level:none

    若要將特定記錄層級重設為預設記錄層級,請將該記錄層級的特性設為 inherited。例如,若要重設用戶端連線的記錄層級,請執行下列指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 log-level-client-connections:inherited

    如需有關可由 set-access-log-prop 子指令設定之特性的資訊,請鍵入:


    $ dpconf help-properties access-log

配置目錄代理伺服器記錄自動重建

依預設,當記錄檔大小到達 100 MB 時自動重建記錄檔。依預設保留十個記錄檔,超過十個之後,自動重建程序會從最舊的記錄檔開始覆寫。本節說明如何配置目錄代理伺服器記錄以排程自動重建、如何手動自動重建記錄,以及如何停用記錄自動重建。如需配置範例,請參閱記錄自動重建的配置範例

Procedure配置定期自動重建存取與錯誤記錄

本程序配置目錄代理伺服器存取記錄。若要配置目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. (可選擇) 檢視存取記錄的特性。


    $ dpconf get-access-log-prop -h host -p port
    
  2. (可選擇) 檢視存取記錄特性的有效值。

    $ dpconf help-properties access-log
  3. 若要在記錄到達特定大小時自動重建記錄,請設定下列特性:


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-policy:size log-rotation-size:maximum file size
    

    如果未指定最大檔案大小的單位,則使用位元組做為預設單位。當記錄檔到達定義的大小時,即自動重建記錄。檔案大小必須最小為 1 MB,最大不超過 2 GB。

    如需有關如何依大小自動重建記錄的範例,請參閱基於記錄大小自動重建記錄

  4. 若要定期自動重建記錄,不論記錄大小為何,都設定下列特性:


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-frequency:interval in months, weeks, hours, or minutes \
     log-rotation-policy:periodic \
     log-rotation-start-day:day in week (1-7) or day in the month (1-31) \
     log-rotation-start-time:time of day (hhmm)
    

    如果將記錄配置為在某月 31 日自動重建,但該月份少於 31 天,則在次月的第一天自動重建記錄。

    如需有關如何定期自動重建記錄的範例,請參閱基於時間自動重建記錄

  5. 若要在記錄檔足夠大時定期自動重建記錄,請設定 log-rotation-frequencylog-min-size 特性。


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-frequency:interval in months, weeks, hours, or minutes \
     log-rotation-policy:periodic log-min-size:minimum file size
     log-rotation-start-day:day in week (1-7) or day in the month (1-31) \
     log-rotation-start-time:time of day (hhmm)
    

    log-min-size 特性表示記錄的最小大小。自動重建作業僅在記錄檔大於指定大小時於排程時間執行。

    如果將記錄配置為在某月 31 日自動重建,但該月份少於 31 天,則在次月的第一天自動重建記錄。

    如需有關如何在檔案大小足夠大時定期自動重建記錄的範例,請參閱基於時間和記錄大小自動重建記錄

Procedure手動自動重建存取與錯誤記錄檔

本程序自動重建目錄代理伺服器存取記錄。若要自動重建目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    自動重建存取記錄。


    $ dpconf rotate-log-now -h host -p port access

Procedure停用存取與錯誤記錄自動重建

本程序停用目錄代理伺服器存取記錄的自動重建。若要停用目錄代理伺服器錯誤記錄的自動重建,請執行相同的程序,但以 error 取代 access

    停用記錄檔自動重建。


    $ dpconf set-access-log-prop -h host -p port enable-log-rotation:false

記錄自動重建的配置範例

如何依記錄大小和/或時間配置記錄自動重建的範例。

基於記錄大小自動重建記錄

本節中的範例顯示如何僅基於記錄大小配置記錄自動重建。此配置在記錄到達 10 MB 時自動重建記錄,而不論上次自動重建記錄的時間為何。


$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-policy:size \
  log-rotation-size:10M

基於時間自動重建記錄

本節中的範例顯示如何基於上次自動重建的時間配置記錄自動重建,而不論記錄大小為何。

如果 log-rotation-start-day 設為 31 而該月僅有 30 天,則在次月的第一天自動重建記錄。如果 log-rotation-start-day 設為 31 而該月僅有 28 天 (二月),則在次月第 3 天自動重建記錄。

基於時間和記錄大小自動重建記錄

本範例顯示如何配置在檔案大小足夠大時,依指定間隔自動重建記錄。

此配置在每天 3:00、11:00 與 19:00 當記錄檔大小超過 1 MB 時,自動重建記錄。如果記錄檔大小未超過 1 MB,則不自動重建記錄檔。


$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:8h \
 log-rotation-policy:periodic log-min-size:1M log-rotation-start-time:0300

刪除目錄代理伺服器記錄

目錄代理伺服器可讓您基於時間、大小或可用磁碟空間 (預設值) 配置記錄刪除。如需有關這些刪除策略的詳細資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Log File Deletion」

下列程序配置存取記錄的記錄刪除。若要配置錯誤記錄的記錄刪除,請使用相同指令,但以 error 取代 access

Procedure配置基於時間的存取與錯誤記錄刪除

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    指定記錄檔的最長期限。


    $ dpconf set-access-log-prop -h host -p port max-age:duration
    

    其中 duration 包含天 (d)、週 (w) 或月 (M) 等單位。例如,若要刪除五天前的備份記錄檔,請使用此指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 max-age:5d

Procedure配置基於檔案大小的存取與錯誤記錄刪除

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    指定記錄檔的大小上限。


    $ dpconf set-access-log-prop -h host -p port max-size:memory-size
    

    例如,若要刪除大於 1 MB 的備份記錄檔,請使用此指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 max-size:1M

Procedure配置基於可用磁碟空間的存取與錯誤記錄刪除

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    指定最小的可用磁碟空間。


    $ dpconf set-access-log-prop -h host -p port min-free-disk-space-size:memory-size
    

    例如,若要在可用磁碟空間少於 2 MB 時刪除備份記錄檔,請使用此指令:


    $ dpconf set-access-log-prop -h host1 -p 1389 min-free-disk-space-size:2M

將警示記錄至 syslogd 常駐程式

本節說明如何配置將警示訊息記錄至 syslogd 常駐程式,以及如何配置作業系統接受 syslog 警示。

Procedure配置目錄代理伺服器將警示記錄至 syslogd 常駐程式

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. (可選擇) 檢視系統記錄警示特性的目前值。


    $ dpconf get-server-prop -h host -p port syslog-alerts-enabled \
     syslog-alerts-facility syslog-alerts-host

    系統記錄警示的預設特性如下:


    syslog-alerts-enabled   :  false
    syslog-alerts-facility  :  USER
    syslog-alerts-host      :  localhost

    syslog-alerts-host 特性將 syslogd 常駐程式主機名稱定義為向其傳送訊息之主機的名稱。syslog-alerts-facility 特性為唯讀,且可能導致將訊息傳送至系統記錄的 user 類別中。

  2. 啟用將警示訊息記錄至 syslogd 常駐程式。


    $ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true
  3. (可選擇) 傳送警示訊息至不同主機上的 syslogd 常駐程式。


    $ dpconf set-server-prop -h host -p port syslog-alerts-host:hostname
    

配置作業系統接受 syslog 警示

本節提供有關配置 SolarisTM、Linux 與 HP-UX 作業系統接受 syslog 警示的指示。

Procedure配置 Solaris 作業系統接受 syslog 警示

  1. 將適當的功能增加至 syslog 配置檔。

    例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf

    user.info       /var/adm/info

    其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info

  2. 重新啟動 syslogd 常駐程式。

    1. 在 Solaris 8 與 9 上,鍵入以下內容重新啟動 syslogd

      $ /etc/init.d/syslog stop | start
    2. 在 Solaris 10 上,鍵入以下內容重新啟動 syslogd

      $ svcadm restart system/system-log
  3. 驗證是否將訊息記錄在 syslog 中。

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

Procedure配置 Linux 接受 syslog 警示

  1. 將適當的功能增加至 syslog 配置檔。

    例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf

    user.info       /var/adm/info

    其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info

  2. syslogd 常駐程式配置為使用 -r 選項執行。

    此選項允許 syslogd 接受來自網路的連線。依預設,未設定 -r 選項。

    若要設定 -r 選項,請將以下行增加至 /etc/sysconfig/syslog

    SYSLOGD_OPTIONS="-m 0 -r"

    如果 /etc/sysconfig/syslog 不存在,請將相同行增加至 /etc/init.d/syslog

  3. 重新啟動 syslogd 常駐程式。

    $ /etc/init.d/syslog stop | start
  4. 驗證是否將訊息記錄在 syslog 中。

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

Procedure配置 HP-UX 接受 syslog 警示

  1. 將適當的功能增加至 syslog 配置檔。

    例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf

    user.info       /var/adm/info

    其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info

  2. 重新啟動 syslogd 常駐程式。

    $ /sbin/init.d/syslogd stop | start
  3. 驗證是否將訊息記錄在 syslog 中。

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

經由目錄代理伺服器與目錄伺服器存取記錄追蹤用戶端請求

若要追蹤用戶端請求的路徑,您必須瞭解請求如何記錄在目錄代理伺服器存取記錄與目錄伺服器存取記錄中。若要瞭解本節,請先閱讀「Sun Java System Directory Server Enterprise Edition 6.0 Reference」中的「Tracking Client Requests Through Directory Proxy Server and Directory Server Access Logs」

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

    此行顯示目錄代理伺服器已建立 BIND 連線至 s_conn=sunds-d1m1-9389:34。目錄代理伺服器將其本身識別為 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 位址的擁有者。

    利用此資訊,您可以精確建立目錄伺服器上所執行作業的負責人。