目錄代理伺服器會在存取記錄和錯誤記錄中記錄資訊。與目錄伺服器不同,目錄代理伺服器不具有稽核記錄。如需目錄代理伺服器中記錄的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.1 Reference」中的第 23 章「Directory Proxy Server Logging」。
本章包含下列主題:
您可以直接透過記錄檔或使用目錄服務控制中心 (DSCC) 檢視目錄代理伺服器記錄。
依預設,記錄儲存在此目錄中:
instance-path/logs |
下圖顯示 DSCC 上目錄代理伺服器錯誤記錄的螢幕擷取。
透過使用 dpconf 指令或 DSCC,可以配置目錄代理伺服器錯誤記錄與存取記錄。如需有關如何使用 DSCC 配置記錄的資訊,請參閱目錄代理伺服器線上說明。本節說明如何透過使用 dpconf 指令配置目錄代理伺服器記錄。
您可以透過執行下列指令,擷取完整的配置選項清單以及允許的值和預設值:
$ dpconf help-properties error-log
$ dpconf help-properties access-log
本程序配置目錄代理伺服器存取記錄。若要配置目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
檢視存取記錄的特性。
$ 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 |
變更步驟 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 時自動重建記錄檔。依預設保留十個記錄檔,超過十個之後,自動重建程序會從最舊的記錄檔開始覆寫。本節說明如何配置目錄代理伺服器記錄以排程自動重建、如何手動自動重建記錄,以及如何停用記錄自動重建。如需配置範例,請參閱記錄自動重建的配置範例。
本程序配置目錄代理伺服器存取記錄。若要配置目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
(可選擇) 檢視存取記錄的特性。
$ dpconf get-access-log-prop -h host -p port |
(可選擇) 檢視存取記錄特性的有效值。
$ dpconf help-properties access-log
若要在記錄到達特定大小時自動重建記錄,請設定下列特性:
$ dpconf set-access-log-prop -h host -p port \ log-rotation-policy:size log-rotation-size:maximum file size |
如果未指定最大檔案大小的單位,則使用位元組做為預設單位。當記錄檔到達定義的大小時,即自動重建記錄。檔案大小必須最小為 1 MB,最大不超過 2 GB。
如需有關如何依大小自動重建記錄的範例,請參閱基於記錄大小自動重建記錄。
若要定期自動重建記錄,不論記錄大小為何,都設定下列特性:
$ 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 天,則在次月的第一天自動重建記錄。
如需有關如何定期自動重建記錄的範例,請參閱基於時間自動重建記錄。
若要在記錄檔足夠大時定期自動重建記錄,請設定 log-rotation-frequency 與 log-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 天,則在次月的第一天自動重建記錄。
如需有關如何在檔案大小足夠大時定期自動重建記錄的範例,請參閱基於時間和記錄大小自動重建記錄。
本程序自動重建目錄代理伺服器存取記錄。若要自動重建目錄代理伺服器錯誤記錄,請執行相同的程序,但以 error 取代 access。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
本程序停用目錄代理伺服器存取記錄的自動重建。若要停用目錄代理伺服器錯誤記錄的自動重建,請執行相同的程序,但以 error 取代 access。
如何依記錄大小和/或時間配置記錄自動重建的範例。
本節中的範例顯示如何僅基於記錄大小配置記錄自動重建。此配置在記錄到達 10 MB 時自動重建記錄,而不論上次自動重建記錄的時間為何。
$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-policy:size \ log-rotation-size:10M |
本節中的範例顯示如何基於上次自動重建的時間配置記錄自動重建,而不論記錄大小為何。
此配置在當天 3:00 自動重建記錄,接著每 8 小時自動重建一次,而不論記錄檔的大小為何。
$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:8h \ log-rotation-policy:periodic log-rotation-start-time:0300 |
此配置在每天 3:00、13:00 與 23:00 自動重建記錄,而不論記錄檔的大小為何。由於 log-rotation-start-time 參數優先於 log-rotation-frequency 參數,因此記錄在 23:00 自動重建後,會於 4 小時後再自動重建一次。而不會在 23:00 自動重建,並於 10 小時後再自動重建一次。
$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:10h \ log-rotation-policy:periodic log-rotation-start-time:0300 |
此配置在星期一中午自動重建記錄,接著於每週同一時間自動重建,而不論記錄檔大小為何。
$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:1w \ log-rotation-policy:periodic log-rotation-start-day:2 log-rotation-start-time:1200 |
此配置在星期一中午自動重建記錄,接著每三天自動重建一次,而不論記錄檔大小為何。
$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:3d \ log-rotation-policy:periodic log-rotation-start-day:2 log-rotation-start-time:1200 |
在下列幾天自動重建記錄:星期一、星期四、星期日、星期三等。請注意,log-rotation-start-day 參數僅套用至第一週。第二週的星期一不會自動重建記錄。
此配置在某月 22 日中午自動重建記錄,接著於每月同一時間自動重建,而不論記錄大小為何。
$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:1m \ log-rotation-policy:periodic log-rotation-start-day:22 \ log-rotation-start-time:1200 |
如果 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.1 Reference」中的「Log File Deletion」。
下列程序配置存取記錄的記錄刪除。若要配置錯誤記錄的記錄刪除,請使用相同指令,但以 error 取代 access。
您可以使用 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 |
您可以使用 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 |
您可以使用 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 常駐程式,以及如何配置作業系統接受 syslog 警示。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
(可選擇) 檢視系統記錄警示特性的目前值。
$ 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 類別中。
啟用將警示訊息記錄至 syslogd 常駐程式。
$ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true |
(可選擇) 傳送警示訊息至不同主機上的 syslogd 常駐程式。
$ dpconf set-server-prop -h host -p port syslog-alerts-host:hostname |
本節提供有關配置 SolarisTM、Linux 與 HP-UX 作業系統接受 syslog 警示的指示。
將適當的功能增加至 syslog 配置檔。
例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf:
user.info /var/adm/info
其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info。
重新啟動 syslogd 常駐程式。
驗證是否將訊息記錄在 syslog 中。
$ logger -p user.info "Test message" $ cat /var/adm/info Jun 19 17:18:38 host user: [ID 12345 user.info] Test message
將適當的功能增加至 syslog 配置檔。
例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf:
user.info /var/adm/info
其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info。
將 syslogd 常駐程式配置為使用 -r 選項執行。
此選項允許 syslogd 接受來自網路的連線。依預設,未設定 -r 選項。
若要設定 -r 選項,請將以下行增加至 /etc/sysconfig/syslog:
SYSLOGD_OPTIONS="-m 0 -r"
如果 /etc/sysconfig/syslog 不存在,請將相同行增加至 /etc/init.d/syslog。
重新啟動 syslogd 常駐程式。
$ /etc/init.d/syslog stop | start
驗證是否將訊息記錄在 syslog 中。
$ logger -p user.info "Test message" $ cat /var/adm/info Jun 19 17:18:38 host user: [ID 12345 user.info] Test message
將適當的功能增加至 syslog 配置檔。
例如,若要儲存所有使用 USER 功能的警示,請將以下行增加至 /etc/syslog.conf:
user.info /var/adm/info
其中 /var/adm/info 是在其中儲存訊息的本機目錄範例。繼續之前,請確保存在 /var/adm/info。
重新啟動 syslogd 常駐程式。
$ /sbin/init.d/syslogd stop | start
驗證是否將訊息記錄在 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.1 Reference」中的「Tracking Client Requests Through Directory Proxy Server and Directory Server Access Logs」。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
在目錄伺服器存取記錄中找到要追蹤之作業的連線編號。
例如,存取記錄中的以下行顯示連線編號為 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 |
取得該連線的目錄代理伺服器連線資訊。
若要取得此資訊,請搜尋目錄伺服器存取記錄,找出具有對應連線編號的所有作業。例如,在 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) 是將連線連結回目錄代理伺服器存取記錄必要的資訊。連接埠號可讓您尋找目錄代理伺服器記錄中對應的連線,並從該連線找出用戶端資訊。
如果在初次建立連線之後已自動重建記錄檔,您必須同時搜尋歸檔的記錄檔與目前的存取記錄檔。
找出目錄代理伺服器存取記錄中對應的連線。
若要取得此資訊,請搜尋目錄代理伺服器存取記錄,找出具有對應連結埠號的所有作業。
您可能會在記錄檔中找到許多項目皆具有相同的連接埠號。若要確保找到正確的項目,請將目錄伺服器記錄項目的時間戳記納入搜尋中。
例如,在 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 )。
找出所有對應到上一步驟中識別的伺服器 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)。
找出上一步驟中找到的連線 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 |
確定上一步驟中找到的 IP 位址的擁有者。
利用此資訊,您可以精確建立目錄伺服器上所執行作業的負責人。