日誌分割工具--cronolog

 

  日誌分割工具 ——cronolog
1. 前言
    本文將介紹一款日誌分割軟件cronolog。日誌對於每位從事IT技術領域工做的人員來講都是至關重要的,對於系統管理員來講,系統日誌、系統服務的日誌以及應用軟件的日誌是他們天天都須要關注的,從日誌中能夠發現系統存在的問題以及一些危險的徵兆等等;對於開發人員來講,應用軟件日誌、debug日誌對於瞭解系統當時的環境、重演或模擬故障以及分析軟件bug都是十分有用的。
    然而一些軟件自己的日誌維護功能卻很薄弱。其中最主要的表現就是將全部的信息都寫到了同一文件中,並且又沒有對其歸檔。這樣給查看和分析日誌文件帶來很大不便。還有一些軟件自己就沒有日誌功能,僅僅將信息輸出到標準輸出設備。爲了解決這些軟件先天上日誌功能的不足,咱們須要對日誌作進一步的處理,具體來講就是分割,將其按咱們須要的規格進行分割,以便往後的查看、分析、備份以及歸檔等。cronolog就是一款在這方面值得推崇的開源軟件,本文將介紹該軟件的安裝以及使用,並列舉幾個實例。
 
 2. cronolog的安裝
    cronolog軟件是一個開源軟件,可從其官方網站上得到源碼,編譯和安裝。地址爲[url]http://cronolog.org/[/url]。
   
 2.1. cronolog源碼得到、配置以及安裝
    首先從[url]http://cronolog.org/[/url]下載源碼,我所下載的是1.62.版,其地址是[url]http://cronolog.org/download/cronolog-1.6.2.tar.gz[/url]。
    下載後解壓,準備安裝目錄/usr/local/   

# mkdir -p /usr/local/

    configure配置,首先需進入cronolog解壓目錄。

# ./configure --prefix=/usr/local/

    make編譯。

# make

    make install安裝。

# make check
# make install

    進入/usr/local/cronolog,檢查是否正確安裝。

# cd /usr/local/sbin
# ./cronolog -V
cronolog version 1.6.2

   
 2.2. cronolog的使用方法
    能夠經過cronolog -h命令得到使用方法,但說明很簡短而且沒有例子。

# ./cronolog -h
usage: ./cronolog [OPTIONS] logfile-spec
 
   -H NAME,   --hardlink=NAME maintain a hard link from NAME to current log
   -S NAME,   --symlink=NAME maintain a symbolic link from NAME to current log
   -P NAME,   --prev-symlink=NAME maintain a symbolic link from NAME to previous log
   -l NAME,   --link=NAME     same as -S/--symlink
   -h,        --help          print this help, then exit
   -p PERIOD, --period=PERIOD set the rotation period explicitly
   -d DELAY, --delay=DELAY   set the rotation period delay
   -o,        --once-only     create single output log from template (not rotated)
   -x FILE,   --debug=FILE    write debug messages to FILE
                              ( or to standard error if FILE is "-")
   -a,        --american         American date formats
   -e,        --european         European date formats (default)
   -s,    --start-time=TIME   starting time
   -z TZ, --time-zone=TZ      use TZ for timezone
   -V,      --version         print version number, then exit

 
    固然也能夠經過man cronolog查看幫助手冊,說明很詳細,並且有舉例說明。不過須要將/usr/local/cronolog/man添加到MANPATH中。

# export MANPATH=$MANPATH:/usr/local/cronolog/man
# man cronolog
... ...

       
 3. cronolog使用實例
    下面咱們經過兩個實例來具體瞭解一下其使用方法。
 3.1. 配置apache的訪問日誌
    修改apache的httpd.conf文件。
  • 設置日誌格式定義
CustomLog "|/usr/local/sbin/cronolog /data/logs/apache.access.log.%Y%m%d" combined
        其中

/usr/local/sbin/cronolog 爲 cronolog安裝後的路徑。
/data/logs/ 爲日誌分割時候日誌保存位置。
access_log.%Y%m%d 爲日誌文件的名稱格式,天天一個文件。

 
 3.2. 將某一簡單應用軟件的輸出重定向爲特定日誌文件
    對於一個簡單的應用程序,一個shell腳本deploy.sh,該腳本需24小時不間斷的在後臺運行。具體執行命令以下,

# nohup ./deploy.sh >> ./log/deploy.log &

    將標準輸出重定向到文件./log/deploy.log中。
    日誌文件只有一個,隨着運行時間的推移,該文件會愈來愈大。
    現使用cronolog工具處理一下日誌,修改後的命令以下,    

# nohup ./deploy.sh | /usr/local/sbin/cronolog "./log/deploy.logdeploy_%Y%m%d.log" &

日誌文件將按天分割,天天產生一個新的日誌文件。
相關文章
相關標籤/搜索