日誌分析工具Awstats的分析結果靜態化

來源:互聯網
上載者:User

前言:

Awstats 是在 SourceForge 上發展很快的一個基於 Perl 的 WEB 日誌分析工具,一個充分的日誌分析讓 Awstats 顯示您下列資料:

訪問次數、獨特訪客人數,
訪問時間和上次訪問,
使用者認證、最近認證的訪問,
每周的高峰時間(頁數,點擊率,每小時和一周的KB),
網域名稱/國家的主機訪客(頁數,點擊率,位元組,269網域名稱/國家檢測, geoip 檢測),
主機名稱單,最近訪問和未解析的 IP 位址名單
大多數看過的進出頁面,
檔案類型,
網站壓縮統計表(mod_gzip 或者 mod_deflate),
使用的作業系統 (每個作業系統的頁數,點擊率 ,位元組, 35 OS detected),
使用的瀏覽器,
機器人訪問(檢測 319 個機器人),
蠕蟲攻擊 (5 個蠕蟲家族),
搜尋引擎,利用關鍵詞檢索找到你的地址,
HTTP 協議錯誤(最近查閱沒有找到的頁面),
其他基於 URL 的個性報導,連結參數, 涉及綜合行銷領域目的.
貴網站被加入"最喜愛的書籤".次數.
螢幕大小(需要在索引頁補充一些 HTML 標籤).
瀏覽器的支援比例: Java, Flash, RealG2 reader, Quicktime reader, WMA reader, PDF reader.
Server Load Balancer伺服器比率叢集報告.

Awstats 的運行是需要 PERL 環境的支援,從 awstats 的文檔來看,它對 Apache HTTP Server 的支援是非常完美的,而當我們把 Web 服務器換成 Nginx 後,要運行 awstats 變得很麻煩。首先 Nginx 本身對 Perl 的支援是比較弱的,甚至官方也不建議使用;另外在日誌格式上有需要修改後才能運行。
使用awstats可以分析apache日誌,同樣也可以分析nginx日誌。本文將詳細介紹自動定時切割nginx的訪問日誌,並使用awstats來定時分析nginx日誌及實現統計結果可供安全便捷的查閱。

環境:

CentOS 6.4 x86_64
ip:192.168.1.113
網域名稱:www.sunsky.com(server和client都通過hosts檔案解析)
nginx-1.2.9 編譯安裝,路徑/usr/local/nginx,服務開啟狀態
日誌記錄格式為nginx預設的,切勿更改,否則會造成awstats無法分析日誌。
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent" "$http_x_forwarded_for"';
awstats-7.2.tar.gz

一、日誌自動切割

對於nginx的日誌切割,由於沒有像apache一樣去用cronolog工具,這裡我們就寫一個指令碼,讓它可以在每天00:01自動執行,切割昨天的日誌(交由awstats分析),壓縮前天的日誌(壓縮日誌可減小儲存空間,為防止awstats沒有分析完就被壓縮,所以只壓縮前天的日誌)。

vim /server/scripts/cut_nginx_log.sh

輸入以下內容:

#!/bin/sh
yesterday=`date -d "yesterday" +"%Y%m%d"`
before_yesterday=`date -d "-2 day" +"%Y%m%d"`
Nginx_Dir="/usr/local/nginx"
Nginx_logs="/app/logs"
Log_Name="www_access"
cd /tmp
[ -d $Nginx_Logs ] && cd $Nginx_logs || exit 1
[ -f $Log_Name.log ] && /bin/mv $Log_Name.log ${Log_Name}_${yesterday}.log || exit 1
if [ $? -eq 0 -a -f $Nginx_Dir/logs/nginx.pid ]
   then
      kill -USR1 `cat $Nginx_Dir/logs/nginx.pid`
fi
[ -f  ${Log_Name}_${before_yesterday}.log ] && /usr/bin/gzip ${Log_Name}_${before_yesterday}.log|| exit 1

執行crontab -e將該指令碼加入定時任務中

1 0 * * * /bin/sh /server/scripts/cut_nginx_log.sh >/dev/null 2>&1

這樣每天淩晨00:01就能自動實現日誌的切割,壓縮等功能了

因為本次實驗下的nginx此時已經有日誌了,另外為了後文awstats能對切割過的日誌進行分析,所以這裡我們要運行一下此指令碼,來將現有日誌進行切割產生昨天的日誌方便後文操作。

/bin/sh /server/scripts/cut_nginx_log.sh >/dev/null 2>&1

二、Awstats的安裝與配置

1.部署awstats
首先我們要下載awstats軟體包,並將其放在常規目錄(/usr/local)下

wget http://awstats.sourceforge.net/files/awstats-7.2.tar.gz
tar zxf awstats-7.2.tar.gz
mv awstats-7.2 /usr/local/awstats

由於wget下載下來的包中許可權是非root的,所以這裡要修改許可權,否則稍後*.pl將無法運行

chown -R root.root /usr/local/awstats
chmod +x /usr/local/awstats/tools/*.pl
chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl

接下來我們要執行awstats/tools下的awstats_configure.pl設定精靈,用來產生awstats的設定檔,awstats設定檔的命名規則是awstats.website.conf。

cd /usr/local/awstats/tools/
./awstats_configure.pl

此時會出現如下提示

----- AWStats awstats_configure 1.0 (build 1.9) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).
-----> Running OS detected: Linux, BSD or Unix
-----> Check for web server install
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> none      #這裡讓填寫網頁伺服器的設定檔路徑,因為我們用的不是apache,所以這裡要填none
Your web server config file(s) could not be found.
You will need to setup your web server manually to declare AWStats
script as a CGI, if you want to build reports dynamically.
See AWStats setup documentation (file docs/index.html)
-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
 File awstats.model.conf updated.
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y         #詢問是否建立一個新的設定檔,這裡填y
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.sunsky.com      #這裡讓填寫你的網站網域名稱,虛擬機器主機名或者隨便一個配置名
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>              #這裡要填寫你設定檔存放路徑,我們使用它預設的路徑/etc/awstats,所以直接斷行符號即可
-----> Create config file '/etc/awstats/awstats.www.sunsky.com.conf'
Config file /etc/awstats/awstats.www.sunsky.com.conf created.
-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.sunsky.com
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...   #提示不能自動加入crontab定時任務,需要稍後自己添加,我們按斷行符號繼續即可
A SIMPLE config file has been created: /etc/awstats/awstats.www.sunsky.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.sunsky.com' with command:
> perl awstats.pl -update -config=www.sunsky.com
You can also build static report pages for 'www.sunsky.com' with command:
> perl awstats.pl -output=pagetype -config=www.sunsky.com
Press ENTER to finish... #提示設定檔建立完成和如何更新配置及建立靜態報告頁,這裡我們斷行符號即可結束這個設定精靈

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。