1. 程式人生 > >Nginx中AWStats日誌分析系統部署

Nginx中AWStats日誌分析系統部署

sha apach wro localhost require ade ping better httpd

AWStats介紹

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

環境:

  • CentOS 7操作系統
  • 服務器IP地址:192.168.100.7
  • 已經部署好Nginx服務器(日誌目錄為:/user/local/nginx/logs/access.log)
  • 已經做好DNS正向解析,通過www.test.com可以正常訪問到該服務器(請參考:DNS域名解析服務(正向解析、反向解析、主從服務器)第一部分 正向解析部分)

目標:

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

部署服務:

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:

  • 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 //nginx服務器使用none

-----> 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. 修改站點統計配置文件

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

6. 建立定時任務(每5分鐘更新一次數據)

vim /etc/crontab

/5 * 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

或如下圖:
技術分享圖片

啟動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的test站點網址:http://www.test.com/

技術分享圖片

Nginx中AWStats日誌分析系統部署