OpenLDAP 預設會透過 rsyslog 的 local4 記錄所有的訊息(log),若是沒有特別的設定的話,這些記錄通常會跟系統的一些雜七雜八的訊息一起記錄到 /var/log/rsyslog 中,這樣的話要查閱記錄檔時就很辛苦了。
這裡介紹如何將所有記錄至 local4 的訊息另外指定儲存的檔案,並設定 logrotate 定期壓縮過時的記錄檔,這個設定方式也可以用於其他的 facility 設定,logrotate 提供 8 個 facility 給一般性的自定用途,從 local0 到 local7,設定的方式都是一樣的。
# LDAP logs local4.* -/var/log/ldap/ldap.log # Uncomment the following to stop logging anything that matches the last rule. # Doing this will stop logging kernel generated UFW log messages to the file # normally containing kern.* messages (eg, /var/log/kern.log) & ~
這樣就可以了,接著再設定 logrotate,讓系統定期整理記錄檔,將舊的檔案自動壓縮,更舊的就自動刪除,做法也很簡單,在 /etc/logrotate.d/ 中加入一個檔案 ldap,檔案內容如下:
var/log/ldap/ldap.log { rotate 24 monthly missingok notifempty compress delaycompress sharedscripts postrotate reload rsyslog >/dev/null 2>&1 || true endscript }
這個設定是讓系統每個月定期整理記錄檔(monthly),保留 24 個月的記錄(rotate 24),將舊的記錄檔自動壓縮(compress),保留上個月的記錄檔不壓縮(delaycompress),也就是從上上個月的記錄檔開始壓縮,這樣可以方便查閱。
這樣就可以了,最後記得重新啟動 rsyslog 讓新的設定檔生效,若是 ubuntu 的話就執行:
service rsyslog restart reload rsyslog