歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux下使用cronolog切割服務器日志文件的方法

Linux下使用cronolog切割服務器日志文件的方法

日期:2017/3/1 17:35:45   编辑:Linux技術

Linux下運行的Web服務器Apache,默認日志文件是不分割的,一個整文件既不易於管理,也不易於分析統計。安裝cronolog後,可以將日志文件按時間分割,易於管理和分析。

cronolog安裝配置非常簡單,下載後只需要輸入幾個命令即可完成。

1、下載(最新版本)

復制代碼代碼如下:
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

2、解壓縮

復制代碼代碼如下:
# tar zxvf cronolog-1.6.2.tar.gz

3、進入cronolog安裝文件所在目錄

復制代碼代碼如下:
# cd cronolog-1.6.2

4、運行安裝

復制代碼代碼如下:
# ./configure
# make
# make install

5、查看cronolog安裝後所在目錄(驗證安裝是否成功)

復制代碼代碼如下:
# which cronolog

一般情況下顯示為:/usr/local/sbin/cronolog

整個安裝過程結束,下面需要把日志的格式配置一下:

1、虛擬主機配置文件 httpd-vhosts.conf

將Web日志設置 CustomLog 修改為以下格式

復制代碼代碼如下:
CustomLog "|/usr/local/sbin/cronolog /www/logs/example_%Y%m%d.log" combined

當然,錯誤日志設置 ErrorLog 也可以利用 cronolog 分割,設置為

復制代碼代碼如下:
ErrorLog "|/usr/local/sbin/cronolog /www/logs/error_%Y%m%d.log"

2、如果服務器上只有一個站點(當然這種情況比較少),直接按上面所說格式修改 httpd.conf 文件日志設置部分。

說明:

綠色部分 為 cronolog 安裝後所在位置,系統版本不同可能位置不完全一樣,以 which 命令查看到的位置為准;
藍色部分 為設置的日志文件所在位置,根據需要修改;
紅色部分 為設置的日志文件標識性字符,根據需要修改;
%Y%m%d 為日志文件分割方式,例子中為“年月日”,也可以修改成自己需要的。


修改httpd.conf文件:
這個文件在我的電腦上是在 /etc/httpd/conf/httpd.conf 不同的服務器 應該是不一樣的

在最後加上

復制代碼代碼如下:
<VirtualHost *:80>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
ErrorLog /data/logs/apache/webapps.wps.cn-error_log
CustomLog "|/usr/local/sbin/cronolog /data/logs/apache/%Y%m%d/access_log.%H" combined
#這個保證了每天一個文件夾 文件夾下 每個小時產生一個log
#CustomLog "|/usr/local/sbin/cronolog /data/logs/apache/%Y%m%%Hdaccess_log" combined
</VirtualHost>
進入到 /etc/init.d/httpd configtest 這樣驗證你的配置文件是否正確
進入到 /etc/init.d/httpd restart 重啟apache 服務器(不同的系統應該是不一樣 要自己找到)

用於Tomcat
第一步


復制代碼代碼如下:
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

修改為

復制代碼代碼如下:
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
fi

第二步


復制代碼代碼如下:
touch "$CATALINA_OUT"

改為

復制代碼代碼如下:
#touch "$CATALINA_OUT"

第三步


復制代碼代碼如下:
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &

修改為

復制代碼代碼如下:
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

重新啟動 Tomcat

復制代碼代碼如下:
service tomcat restart

可以在 Tomcat 的 logs 目錄底下找到以系統日期為結尾的 catalina.out.yyyy-mm-dd 的檔案,這樣子就成功了。
後續就是持續觀察看看是不是每天都有產生一個新的 catalina.out.yyyy-mm-dd 檔案。然後再安排定期刪除這些較舊的 log 檔即可。

Copyright © Linux教程網 All Rights Reserved