顯示廣告
隱藏 ✕
看板 Knuckles
作者 Knuckles(阿德)
標題 [Ubuntu] Apache的log檔設定及使用AWStats分析
時間 2009年01月28日 Wed. PM 04:42:37


自從把這個站加上水球功能後,log檔開始變得異常龐大
所以就開始研究log的設定了...
也發現有 AWStats 這個有趣的東西
可以產生網站記錄檔的分析網頁

可以看到什麼時候有多少人連進來、從哪裡連過來、連到什麼網頁之類的統記圖表

下面是設定時做的一些筆記...

◎ 使用cronolog固定時間產生一個log檔

參考: http://blog.miniasp.com/post/2008/06/Apache-log-rotate-Alternative-cronolog.aspx

安裝 cronolog
$ sudo apt-get install cronolog

安裝好之後修改 Apache 的設定檔,將原本的 log 設定,如:
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined
改成
    ErrorLog "|/usr/bin/cronolog /var/log/apache2/%Y%m%d.error.log"
    CustomLog "|/usr/bin/cronolog /var/log/apache2/%Y%m%d.access.log" combined

前面的 “|” 那是 pipeline 給 cronolog 作處理的意思
%Y%m%d就是今天的日期顯示成像 20091222 這樣

◎ 不要記錄 internal dummy connection

參考: http://www.ihao.org/ss/html/76/t-3276.html

在 Apache 的 access.log 裡出現大量的 internal dummy connection
127.0.0.1 - - [27/Jan/2009:23:55:25 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.4 with Suhosin-Patch (internal dummy connection)"

這個問題不會影響apache的運作,如果覺得礙眼可以在 /etc/apache2/sites-available/default 中,將
    CustomLog /var/log/apache2/access.log combined
改為:
    SetEnvIf Remote_Addr "127.0.0.1" dontlog
    CustomLog /var/log/apache2/access.log combined env=!dontlog

就不會再有127.0.0.1的記錄了

◎ 使用 AWStats 分析log記錄檔

參考: http://twntwn.info/blog/ajer001/archives/2665

安裝 AWStats 及解決 UTF-8 關鍵字、UTF-8 中文顯示問題

安裝 AWStats
$ sudo apt-get install awstats

AWStats的原始設定檔在 /etc/awstats/awstats.conf
我們要為每個虛擬伺服器新增一個設定檔
例如 disp_bbs 代表使用 disp_bbs 的虛擬伺服器
其記錄檔為 /var/log/apache2/%Y%m%d.disp_bbs.access.log

新增一個disp_bbs的AWStats設定檔
$ cd /etc/awstats
$ sudo cp awstats.conf awstats.disp_bbs.conf

==== 編輯 awstats.disp_bbs.conf 檔 ====

找到 LogFile,設為Apache記錄檔的位置:
    LogFile="/var/log/apache2/%YYYY-0%MM-0%DD-0.disp_bbs.access.log"

找到 LogFormat,設為1代表log檔的格式為Apache的combined
    LogFormat=1

找到 SiteDomain,改為網域位址:
    SiteDomain="disp.twbbs.org"

找到 DirCgi,原本是 cgi-bin,改成 awstats 比較好記
這名字是要用來放在www目錄下,連到/usr/lib/cgi-bin的連結
    DirCgi="/awstats"

要讓產生的網頁上有「立即更新」的按鈕,將下面這個值設為1
AllowToUpdateStatsFromBrowser=1 (改為使用工作排程每日自動更新)

如果希望指定語系,可以找到 892 行左右的 Lang,指定為我們後面要修改的中文 UTF-8:
    Lang="tw-utf8"

為了讓關鍵字正常顯示,找到 1261 行左右的 #LoadPlugin="decodeutfkeys",把註解拿掉:
    LoadPlugin="decodeutfkeys"

==== 完成設定檔的設定 ====

在 disp.twbbs.org 的Apache虛擬伺服器設定檔加上相關設定
(設定檔預設是 /etc/apache2/sites-available/default  
 我自己有另外設一個 /etc/apache2/sites-available/disp_bbs)
加上:

    Alias  /awstatsclasses/  "/usr/share/awstats/lib/"
    Alias  /awstats-icon/  "/usr/share/awstats/icon/"
    Alias  /awstatscss  "/usr/share/doc/awstats/examples/css"
    ScriptAlias  /awstats/  /usr/lib/cgi-bin/

    <Directory /usr/lib/cgi-bin/>
      Options  ExecCGI  -MultiViews  +SymLinksIfOwnerMatch
      Options  None
      AllowOverride  None
      Order  allow,deny
      Allow  from  All
    </Directory>

重開 Apache:
$ sudo /etc/init.d/apache2  restart


將網頁的語言改為 UTF-8
編輯 /usr/lib/cgi-bin/awstats.pl
找到 252 行左右,將 'zh-tw'=>'tw' 修改成:
    'zh-tw'=>'tw-utf8'

修改相關的語系檔:
$ cd /usr/share/awstats/lang
$ sudo cat awstats-tw.txt | sed -e 's/big5/utf-8/' | iconv -f big5 -t utf8 > awstats-tw-utf8.txt
上面這行是批次將 awstats-tw.txt 這個檔案中的 big5 通通改成 utf-8
然後將編碼由 big5 轉換為 utf8,最後存成 awstats-tw-utf8.txt 的意思
可能會出現權限不足的問題,可先用 $ sudo su 變成 root 再執行這行
 

接著就可以試著 Update 看看:
$ sudo /usr/lib/cgi-bin/awstats.pl -config=disp_lab -update

最後就可以連到網頁去看看了:
    http://disp.twbbs.org/awstats/awstats.pl?config=disp_bbs

要在網頁中點update按鈕來更新,要讓Apache的使用者帳號www-data有
    1. 讀寫DirData(預設是/var/lib/awstats)及裡面檔案的權限
    2. 讀取log資料夾(在/var/log/apache2)及裡面檔案的權限
將這兩個資料夾的使用者及群組都改成 www-data 即可


因為用了cronolog使每日的log檔都會換檔名,Update就只會更新今天的log檔
所以改為使用 crontab 每日換log檔前自動更新

$sudo vim /etc/crontab
加上這行:

55 23   * * *   root    /usr/lib/cgi-bin/awstats.pl -config=disp_bbs -update

就是每天晚上11:55時更新一下的意思


之後設定其他虛擬伺服器 XXX 時,只要複製 awstats.disp_bbs.conf
將檔名及內容中的 disp_bbs 改成 XXX
然後連至網址「http://disp.twbbs.org/awstats/awstats.pl?config=XXX」即可


--
※ 來源: DISP BBS (http://disp.twbbs.org)
※ 作者: Knuckles  來自: 140.112.175.130  時間: 2009-01-28 16:42:37
※ 編輯: Knuckles  來自: 114.43.116.76  時間: 2009-11-17 12:51:30
※ 編輯: Knuckles  來自: 114.43.119.236  時間: 2009-12-22 01:14:36
※ 編輯: Knuckles  來自: 114.43.117.233  時間: 2009-12-22 15:37:51
※ 看板: KnucklesNote 文章推薦值: 1 目前人氣: 0 累積人氣: 2016 
分享網址: 複製 已複製
( ̄︶ ̄)b chusiang 說讚!
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇