Nginx中AWStats日誌分析系統部署

AWStats介紹

AWStats是使用Perl語言開發的一款開源日誌分析系統,它不只可用來分析Apache網站服務器的訪問日誌,也能夠用來分析Samba、Vsftpd、IIS等服務的日誌信息。結合crond等計劃任務服務,能夠對不斷增加的日誌內容按期進行分析。css

AWStats的運行是須要PERL環境的支持,從AWStats的文檔來看,它對於Apache HTTP Server的支持是很是完美的,而當咱們使用Nginx服務器後,要運行AWStats就變得很麻煩了。首先Nginx自己對於Perl的支持是比較弱的,甚至官方也不建議使用,另外在日誌格式上有須要修改後才能順利運行。html

這裏介紹經過讓AWStats對nginx服務器日誌統計的結果生成靜態頁面,而後經過Nginx站點訪問統計的日誌效果。nginx

環境:

目標:

爲Nginx站點www.test.com添加AWStates日誌分析系統web

部署服務:

安裝AWStates以前先確認服務器上Perl的環境已經安裝好

perl -version

Nginx中AWStats日誌分析系統部署

1. 解壓並安裝AWStates軟件包(能夠至個人百度雲盤下載)

#解壓awstats軟件包至/usr/local/
tar zxvf awstats-7.6.tar.gz -C /usr/local/

#重命名awstats
mv /usr/local/awstats-7.6 /usr/local/awstats

#修改awstats屬主屬組
chown root.root -R /usr/local/awstats

#進入tools目錄
cd /usr/local/awstats/tools/

2. 爲www.test.com站點新建站點統計配置文件,藉助AWStates系統提供的awstats_configure.pl腳本進行建立,過程以下:

./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:apache

  • 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 Unixvim

-----> 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 #nginx服務器,輸入'none'跳過ide

-----> 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.test.com #輸入統計的域名:www.test.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):
#直接 「回車鍵」

-----> Create config file '/etc/awstats/awstats.www.test.com.conf'
Config file /etc/awstats/awstats.www.test.com.conf created.

-----> Restart Web server with '/sbin/service httpd restart'
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

-----> 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.test.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.test.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.test.com' with command:
perl awstats.pl -update -config=www.test.com
You can also read your statistics for 'www.test.com' with URL:
http://localhost/awstats/awstats.pl?config=www.test.com

Press ENTER to finish... #直接「回車鍵」退出

3. 修改www.test.com統計配置文件

vim /etc/awstats/awstats.www.test.com.conf

......
LogFile="/usr/local/nginx/logs/access.log" #50行,修改nginx日誌文件位置
DirData="/var/lib/awstats" #220行,數據目錄,awstats目錄默認不存在(須要建立)
......

建立/var/lib/awstats目錄

mkdir -p /var/lib/awstats

4. 更新分析日誌文件

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.test.com

5. 生成靜態分析日誌網頁數據

/usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=www.test.com -lang=cn -dir=/usr/local/awstats/wwwroot -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

上述命令解釋以下:

  • /usr/local/awstats/tools/awstats_buildstaticpages.pl :awstats靜態頁面生成工具
  • -update -config=www.test.com :更新配置域名
  • -lang=cn :語言爲中文
  • dir=/usr/local/awstats/wwwroot :統計結果輸出的目錄
  • awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl :日誌更新程序的路徑

6. 創建定時任務讓Awstats自動更新數據(天天23:59更新)

vim /etc/crontab

59 23 * root /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=www.test.com -lang=cn -dir=/usr/local/awstats/wwwroot -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

或以下圖:
Nginx中AWStats日誌分析系統部署

啓動crond服務

systemctl start crond.service

7. 在nginx中創建awstats虛擬目錄

vim /usr/local/nginx/conf/nginx.conf

#http{}標籤內增添一個server{}
server {
listen 80;
server_name 192.168.100.7;
location / {
root /usr/local/awstats/wwwroot;
index index.html awstats.www.test.com.html;
}
}

8. 重啓nginx

service nginx restart

9. 測試

訪問AWStats日誌分析系統網址:http://192.168.100.7/

Nginx中AWStats日誌分析系統部署

訪問Nginx的test站點網址:http://www.test.com/

Nginx中AWStats日誌分析系統部署

相關文章
相關標籤/搜索