原文:http://www.itnpc.com/news/web/146518034376587.html
大家都知道apache服務器,默認日誌文件是不分割的,一個整文件既不易於管理,也不易於分析統計。本文主要講解Web服務器日誌切割工具cronolog,下面我們就來詳細的講解一下。
1.上傳及安裝日誌輪詢工具cronolog
1.1解壓日誌輪詢工具cronolog
[root@localhost tools]# tar -zxvf cronolog-1.6.2.tar.gz #解壓cronolog安裝包
[root@localhost tools]# cd cronolog-1.6.2
1.2安裝日誌輪詢工具cronolog
[root@localhost cronolog-1.6.2]# ./configure #配置
[root@localhost cronolog-1.6.2]# make #編譯安裝
[root@localhost cronolog-1.6.2]# make install
2.cronolog日誌輪詢配置說明。
編輯apache配置文件
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf
利用vim命令定位CustomLog 如下圖所示
錯誤寫法:
CustomLog“|/usr/local/sbin/cronolog logs/access_www_%w.log”combined
提示:cronolog輪詢日誌的正確寫法,被輪詢的日誌路徑要寫全路徑。
正確寫法:
新建日誌保存路徑:
[root@localhost ~]# mkdir -p /website/logs #日誌的存儲路徑
[root@localhost ~]# tree /website #檢查新建日誌文件結果
/website
`-- logs
按天輪詢(生產環境常見用法,推薦使用):
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%Y%m%d.log”combined
提示:這是大多數網站的常規配置方法(按天記錄日誌,日誌不會自動覆蓋)
按小時輪詢(生產環境較常見用法)
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%Y%m%d%H.log”combined
提示:如果需要及時詳細分析apache日誌,此配置可能比較適用。結尾_%Y%m%d%H爲日期的格式寫法。
按周輪詢(生產環境常見用法)
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%w.log”combined
下面我們以按天輪詢進行示例:
編輯配置文件/usr/local/apache/conf/httpd.conf
註釋如下內容:
CustomLog "logs/access_log" common
增加如下內容:
CustomLog“|/usr/local/sbin/cronolog /website/logs/access_www_%Y%m%d.log”combined
具體如下圖所示:
保存修改;
3.檢查日誌生成情況
1)打開瀏覽器:輸入http://x.x.x.x (x.x.x.x爲apache服務器IP地址);
2)[root@localhost ~]# cd /website/logs/ #進入日誌保存文件夾
[root@localhost logs]# ll #檢查訪問日誌生成情況
total 8
-rw-r--r--. 1 root root 405 Jun 5 01:35 access_www_20160605.log
-rw-r--r--. 1 root root 186 Jun 6 16:43 access_www_20160606.log
經過測試檢驗,日誌已按天輪詢;
4.指定計劃任務:每天打包前一天的日誌,每天刪除半月前的打包日誌(利用crontab定時任務,具體操作如下)
[root@localhost ~]# crontab -e
0 1 * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1 #每天一點鐘同步時間
30 1 * * * /bin/tar -zcf /website/logs/access_www_`date -d yesterday +%Y%m%d` .tar.gz /website/logs/access_www_`date -d yesterday +%Y%m%d`.log#每天1點30分打包前一天的日誌文件
0 2 * * * /usr/bin/find /website/logs -name access_www_*.tar.gz -mtime +15 -exec rm -rf {} \; #每天2點刪除15天前的打包日誌文件
5.cronolog 總結
好了,到這裏我們的cronolog工具就講解完成了。有博友會問爲什麼不用apache自帶的日誌分割工具?apache自帶的日誌分割工具rotatelogs,據說在進行日誌切割時容易丟日誌,所以這裏我們就用cronolog來做日誌切割。最後,希望大家有所收穫^_^……