看板 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"
如果希望指定語系,可以找到 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
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 累積人氣: 2020
※ 文章分類: Apache 網頁伺服器設定 Ubuntu 安裝與設定
( ̄︶ ̄)b chusiang 說讚!
回列表(←)
分享