• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 多種分割WebServer日志的方法

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    為什么要分割日志 隨著網站的訪問越來越大,WebServer產生的日志文件也會越來越大,如果不對日志進行分割,那么只能一次將大的日志(如Apache的日志)整個刪除,這樣也丟失了很多對網站比較寶貴的信息,因為這些日志可以用來進行訪問分析、 網絡安全 監察、網
    為什么要分割日志
    隨著網站的訪問越來越大,WebServer產生的日志文件也會越來越大,如果不對日志進行分割,那么只能一次將大的日志(如Apache的日志)整個刪除,這樣也丟失了很多對網站比較寶貴的信息,因為這些日志可以用來進行訪問分析、網絡安全監察、網絡運行狀況監控等,因此管理好這些海量的日志對網站的意義是很大的。

    本文將總結一些實用的日志分割方法,希望能夠方便Linux/Unix管理員對日志文件進行有效的管理,如果文件過多過大,可以刪除一些歷史的文件。



    幾種日志分割方法
    2.1.1. 用第三方程序cronolog進行日志分割
    2.1.2. 用自寫的腳本進行日志分割
    2.1.3. 用第三方程序newsyslog進行日志分割

    2.1.1. 用第三方程序cronolog進行日志分割
    這種方法最便捷快速,缺點是只支持Apache。


    例 2.1. 用cronolog分割日志

    1. 下載cronolog 

    官方下載地址: http://cronolog.org/download/cronolog-1.6.2.tar.gz


    tar xzvf cronolog-1.6.2.tar.gz
    cd cronolog-1.6.2

    2. 編譯 

    ./configure
    
    make
    make install

    3. 修改Apache的配置文件httpd.conf,加入以下代碼 

    CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/www/aclearcase/" target="_blank" >ccess%Y%m%d.log" combined


     注意 
    如果Apache中有多個虛擬主機,最好每個虛擬主機中放置一個這樣的代碼,并將日志文件名改成不同的名字
     


     提示 
    /var/log/httpd/www/ 可以更改為任何日志輸出路徑 


    4. 保存配置后重新啟動Apache服務 

    /etc/rc.d/init.d/httpd stop
    
    /etc/rc.d/init.d/httpd start

    最后生成的文件名如以下格式: 

    /var/log/httpd/www/access20050918.log


    2.1.2. 用自寫的腳本進行日志分割
    如果因為條件不允許,不能使用cronolog分割,這里提供一種更加簡潔的方法,可適合以下系統 

    Linux 
    Unix
    *BSD

    例 2.2. 計劃任務的方式每天生成一個文件并壓縮存放

     注意 
    假設:/var/log/httpd/ 為日志存放的路徑,access_log 為以前的日志文件名 

    1. 創建新文件: /var/log/httpd/log-task.cron 

    文件內容如下


    #!/bin/bash
    

    YESTERDAY=`date -d yesterday +%Y%m%d`
    /usr/bin/gzip -c /var/log/httpd/access_log>/var/log/httpd/access${YESTERDAY}.log.gz
    >/var/log/httpd/access_log



    保存退出


    2. 修改文件的執行權限并測試腳本 

    chmod u+x /var/log/httpd/log-task.cron


    立即執行一次,測試腳本是否正常工作


     注意 
    測試之前建議先備份一下日志文件(/var/log/httpd/access_log) 


    測試:

    /var/log/httpd/log-task.cron
    檢查/var/log/httpd 目錄下是否已經生成了日期命名的文件。

    3. 將該腳本加入到自動運行任務中 

    crontab -e

    然后將以下的的代碼拷貝加入到cron的啟動腳本末尾:


    1      0      *       *       *       /var/log/httpd/log-task.cron


    保存退出。

     提示 
    (每天凌晨0點1分系統將自動進行日志回滾任務,最終會在/var/log/httpd目錄下每天生成一個壓縮的日志文件,文件名如 access20051216.log.gz) 
     

    2.1.3. 用第三方程序newsyslog進行日志分割
    這種方法適用于SQUID等無法使用cronolog的WebServer,缺點是安裝比較復雜。

    例 2.3. 用newsyslog分割日志

     注意 
    假設:/usr/local/squid/var/logs/ 為日志存放的路徑,access.log 為以前的日志文件名 

    1. 下載newsyslog 

    官方下載地址: http://archives.eyrie.org/software/system/newsyslog-1.8.tar.gz


    tar xzvf newsyslog-1.8.tar.gz
    cd newsyslog-1.8
    2. 編譯 

    ./configure
    
    make
    make install

    3. 創建一個新的文件 /usr/local/etc/newsyslog.conf 

    set squid_logpath = /usr/local/squid/var/logs
    
    set squid_log = /usr/local/squid/var/logs/access.log
    set date_squid_log = /usr/local/squid/var/logs/access%Y%M%D.log

    SQUID{
            restart: run /usr/local/squid/sbin/squid -k rotate
            log:  SQUID squid_log squid squid 644
            archive: SQUID date_squid_log 0

    }



    保存退出


     提示 
    /usr/local/squid/var/logs 可以更改為任何日志輸出路徑 


    4. 將該腳本加入到自動運行任務中 

    crontab -e

    然后將以下的的代碼拷貝加入到cron的啟動腳本末尾:


    58      23      *       *       *       /usr/local/sbin/newsyslog


    最后生成的文件名如以下格式: 

    /usr/local/squid/var/logs/access20050918.log

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>