1. 程式人生 > >AWStats 日誌分析系統(含源碼包)

AWStats 日誌分析系統(含源碼包)

acc rec this 工作量 mine adbd 產生 default for

前言

在上一篇文章中寫了關於httpd的一些簡介、配置。那麽我們應該知道,HTTP服務器的訪問量非常龐大,在它的訪問日誌文件access_log 中,記錄了很多很多客戶的訪問信息,維護的管理人員會通過分析這些信息,可以及時的了解Web的訪問情況,比如每天或特定時間段的訪問IP數量、點擊量大的頁面。那麽就是因為訪問量太多,信息量太大,所以導致管理員不方便與管理,分析。AWStats日誌分析系統就誕生,下面介紹一下AWStats分析系統


有興趣的朋友可以看看上一篇的httpd簡介與配置。


AWStats日誌分析系統簡介

AWStats分析系統是使用Perl語言開發的一款開源日誌分析系統,它不僅可用來分析Apache網站服務器的訪問日誌,也可以用來分析Samba、Vsftbd、IIS等服務器的日誌信息,再結合crond周期性計劃任務服務,可以對不斷增加內容的日誌定期分析。

AWStats軟件包可以再官網上下載,我在百度網盤上提供源碼包有需要的朋友可以進行免費下載。百度網盤源碼包:awstats-7.6.tar.gz密碼:6u19


AWStats它是以一種網頁界面的形式展現分析報告以下是展現報告的內容

  • ·訪問次數、獨特訪客人數,
  • ·訪問時間和上次訪問,
  • ·使用者認證、最近認證的訪問,
  • ·每周的高峰時間(頁數,點擊率,每小時和一周的千字節),
  • ·域名/國家的主機訪客(頁數,點擊率,字節,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.
  • ·負載平衡服務器比率集群報告

技術分享圖片


AWStats工作原理

  • > 首先Apache將產生的訪問日誌信息存放在access_log文件中,AWStats工具在每次執行更新的時候就會讀取、分析、統計這些日誌信息,將結果存儲到它自帶的數據庫中。最後AWStats提供一個Web界面來友好的顯示數據庫中統計的信息,有很多種分類,這樣便於管理員的分析、查看。
  • >它的工作模式分為
    • 1·分析日誌:運行AWStats工具時它會將日誌信息統計、分析的結果放到一個數據庫種;
    • 2·輸出日誌:這就是我們在web界面呈現出的統計效果(這裏只針對Linux),將數據庫種的數據輸出到web界面

部署AWStats分析系統

  • > 這裏以 百度網盤源碼包:awstats-7.6.tar.gz密碼:6u19 為例
  • > 這裏系統是Linux(RedHat6.5)
  • > IP:192.168.100.20
  • > 域名:www.baidu.com(此百度非彼百度)
  • > 再安裝軟件前做好www.baidu.com的域名解析
  • > 以分析httpd日誌為列

1·安裝軟件包:

tar -zxvf awstats-7.6.tar.gz -C /opt //解壓源碼包到/opt目錄下
> mv /opt/awstats-7.6 /usr/local/awstats
cd /usr/local/awstats/tools
上面的移動只是個人習慣
./awstats_configure.pl #執行此腳本
> 出現以下效果
> ----- AWStats awstats_configure 1.0 (build 20140126) (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:
ou 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):

>/etc/httpd/conf/httpd.conf #這裏需要輸入httpd的主配置文件

-----> Check and complete web server config file ‘/etc/httpd/conf/httpd.conf‘
Add ‘Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"‘
Add ‘Alias /awstatscss "/usr/local/awstats/wwwroot/css/"‘
Add ‘Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"‘
Add ‘ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"‘
Add ‘<Directory>‘ directive
AWStats directives added to Apache config file.

-----> 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.baidu.com
Space chars are not allowed.
Your web site, virtual server or profile name:

> > www.baidu.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):

> #awstats的主配置文件默認的位子是在/etc/awstats

-----> Create config file ‘/etc/awstats/awstats.www.baidu.com.conf‘
Config file /etc/awstats/awstats.www.baidu.com.conf created.

-----> Restart Web server with ‘/sbin/service httpd restart‘
httpd: apr_sockaddr_info_get() failed for HedHat
httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName
停止 httpd: [失敗]
正在啟動 httpd: [確定]

-----> 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.baidu.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... #回車即可

A SIMPLE config file has been created: /etc/awstats/awstats.www.baidu.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for ‘www.baidu.com‘ with command:
> perl awstats.pl -update -config=www.baidu.com
You can also read your statistics for ‘www.baidu.com‘ with URL:

> > http://localhost/awstats/awstats.pl?config=www.baidu.com #訪問該地址就可以看到Web界面

> Press ENTER to finish... #按回車結束


修改Awstats的主配置文件

vim /etc/awstats/awstats.www.baidu.com.conf
修改內容如下
LogFile="/var/log/httpd/access_log" #指定httpd的訪問日誌路徑
DirData="/var/lib/awstats" #指定Awstats的數據存放位子
到此配置完成
mkdir /var/lib/awstats #創建Awstats存放數據的目錄


修改Apache的主配置文件

vim /etc/httpd/conf/httpd.conf
修改內容如下:
Listen 192.168.100.20:80 #修改監聽地址
#Listen 80 #註釋IPv6端口
ServerName www.baidu.com:80 #修改主機名


重啟服務,訪問Web界面驗證Awstats系統是否部署成功

service httpd restart
http://www.baidu.com/awstats/awstats.pl?config=www.baidu.com


技術分享圖片



更新數據

這個Web界面必須在Awstats數據庫種手動更新,Web界面才會更新。
cd /usr/local/awstats/tools/
./awstats_updateall.pl now #手動執行數據更新


技術分享圖片

結合crontab做周期性計劃:

在實際工作環境中,我們也不可能每次分析數據時都去手動執行一次更新腳本,這樣也麻煩,所以我們可以設定周期計劃任務。
crontab -e
/5 * /usr/local/awstats/tools/awstats_updateall.pl now
每隔5分鐘更新一次數據,這樣就解決了需要手動更新的問題。


優化訪問AWStats的Web界面網站路徑

在訪問AWStats系統時,需要指定awstats目錄、腳本位置、統計目標等信息,這樣不便於記憶,也非常麻煩,還容易出錯。為了簡化操作,可以在Web跟目錄下建立一個自動跳轉的HTML網頁。比如說:用戶只要訪問http://www.baidu.com/awb.html 即可自動跳轉到www.baidu.com 站點的AWStats 的日誌分析頁面。
vim /var/www/httpd/awb.html
寫的內容如下:

<html>
<head>
<meta http-equiv=refresh content="0;
url=http://www.baidu.com/awstats/awstats.pl?config=www.baidu.com">
</head>
<body></body>
</html>


監控其他站點方法:

如果你還需要建立其他站點的監控,那麽我們可以再執行一次創建新的配置文件的腳本
./awstats_configure.pl
將新的監控點日誌文件名添加到awstats主配置文件/etc/awstats。相當於再執行一次以上操作


對AWStats工具Web進行訪問控制

我們可以對一些網段或者IP地址進行禁止訪問,這樣會增加安全性
vim /etc/httpd/conf/httpd.conf #修改內容在配置文件最後
修改內容如下:
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order deny,allow #這裏是拒絕在前,通過在後
deny from 192.168.100.0/24 #拒絕100網段訪問AWStats的Web界面
</Directory>


重啟服務驗證:

service httpd restart


技術分享圖片

AWStats部署結束,總結如下:

  • > 理解AWStats的工作原理
  • > 在部署過程中,註意配置文件的路徑
  • > 它可以監控很多服務的信息,這裏只是以httpd為列,當然它是httpd最為合適的監控軟件
  • > 利用crontab周期計劃任務,可以有效的實時監控
  • > AWStats簡化了管理員的工作量
  • > AWStats監控的面很 廣如:時間精確到日、月、分、時。如:訪問量,訪問次數,頁面瀏覽量,點擊數,數據流量等!

AWStats 日誌分析系統(含源碼包)