環境參數:
* 工作:設定 tinyproxy.log整合於syslog並自動壓縮 (logrotate)
* OS:FreeBSD i386 , 10.3-RELEASE-p11
* CPU:Intel(R) Core(TM)2 Duo CPU @ 3.00GHz
* RAM:4096 MB
整合於syslog與壓縮歸檔
常常在發生問題或需要資訊時,log檔就變的很重要;但是平時它卻是個佔用空間的元凶。如果你還沒遇上過動輒幾GB的寵然大檔,可能未曾心動,當然不會心痛。
因為一旦空間被吃掉,很多工作就停擺,雖然現在的儲存空間的成本大大降低,不過我們還是養成好習慣,把log整理,方便查詢追踪也不用擔心空間被佔用太多。
日後應該建置 Log Server 來統一存檔,但今天先把syslog與newsyslog ( Log Rotate )搞定!
tinyproxy
tinyproxy是套輕便的 Proxy 服務,簡單的安裝說明:
$ pkg install tinyproxy
設定檔存放在 /usr/local/etc/tinyproxy.conf
在設定檔中的Log設定,為了要整合在syslog中,也就是將log交給系統處理而不是tinyproxy自行寫入,設定如下:
User nobody
Group nobody
Port 8889
Listen 10.11.11.2
Bind 10.11.11.2
Timeout 600
DefaultErrorFile "/usr/local/share/tinyproxy/default.html"
StatFile "/usr/local/share/tinyproxy/stats.html"
# LogFile "/var/log/tinyproxy.log"
#
# Syslog: Tell tinyproxy to use syslog instead of a logfile. This
# option must not be enabled if the Logfile directive is being used.
# These two directives are mutually exclusive.
# 整合在syslog中,則下行是必要的。如果要單獨交給tinyproxy寫入,則取消這行,改由 LogFile 取代之。
Syslog On
LogLevel Info
# 這個PidFile很重要,在newsyslog.conf中會用到
PidFile "/var/run/tinyproxy.pid"
MaxClients 30
MinSpareServers 5
MaxSpareServers 30
StartServers 10
MaxRequestsPerChild 0
# 允許來源存取IP
Allow 192.168.1.0/24
ViaProxyName "tinyproxy"
ConnectPort 443
ConnectPort 563
ConnectPort 22000
設定 syslog.conf
$ vi /etc/syslogd.conf
# 加入這二行,代表將tinyproxy執行序相關資訊寫入 /var/log/tinyproxy.log
!tinyproxy
*.* /var/log/tinyproxy.log
如果還沒建立 /var/log/tinyproxy.log,可以用二種方式:
1. $ touch /var/log/tinyproxy.log
2. 在 newsyslog.conf中設定即可。
設定 newsyslog.conf
man newsyslog.conf 可知newsyslog的格式設定為:
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
$ vi /etc/newsyslog.conf
# 加入底下這行
/var/log/tinyproxy.log 644 10 100 * JC /var/run/tinyproxy.pid 1
參數說明:
- 644是檔案屬性。
- 10 則代表保留10份歸檔 (即/var/log/tinyproxy.log現行記錄外,再加上
/var/log/tinyproxy.log.0.bz2
~/var/log/tinyproxy.log.9.bz2
共有11個記錄檔) - 100則代表當檔案大小為100k時就進行歸檔壓縮。
- 100後面的*號代表不限時間,只要檔案超過100k就壓縮歸檔。
- C 代表 /var/log/tinyproxy 若不存在則自動建立此檔。
- J 代表 歸檔時以 bzip2格式壓縮,gzip則使用Z。
- /var/log/tinyproxy.pid是newsyslog在歸檔後會重啟這個PID。
- 最後一個1代表 /var/log/tinyproxy.pid只有1個執行緒;有時候像squid proxy會有多個,此時則需設定相同的數量。
重啟 syslog服務
$ service syslogd restart
或
$ killall -HUP syslogd
大工完成,看看log檔就可收到成效:
$ tail /var/log/tinyproxy.log
參考來源:
1.https://www.newsyslog.org/manual.html
EmoticonEmoticon