1. 程式人生 > >Nginx中AWStats日誌分離的詳細部署

Nginx中AWStats日誌分離的詳細部署

.html creat local hang 新的 tin 運行 scl strong

AWStats介紹
AWStats是使用Perl語言開發的一款開源日誌分析系統,它不僅可用來分析Apache網站服務器的訪問日誌,也可以用來分析Samba、Vsftpd、IIS等服務的日誌信息。結合crond等計劃任務服務,可以對不斷增長的日誌內容定期進行分析。
AWStats的運行是需要PERL環境的支持,從AWStats的文檔來看,它對於Apache HTTP Server的支持是非常完美的,而當我們使用Nginx服務器後,要運行AWStats就變得很麻煩了。首先Nginx本身對於Perl的支持是比較弱的,甚至官方也不建議使用,另外在日誌格式上有需要修改後才能順利運行。
這裏介紹通過讓AWStats對nginx服務器日誌統計的結果生成靜態頁面,然後通過Nginx站點訪問統計的日誌效果。

環境:
?CentOS 7操作系統
?服務器IP地址:192.168.40.15
?AWStats-7.6.tar.gz 百度網盤 密碼:auwy
?已經部署好Nginx服務器(日誌目錄為:/user/local/nginx/logs/access.log)
?已經做好DNS正向解析,通過www.test.com可以正常訪問到該服務器(請參考:DNS域名解析服務(正向解析、反向解析、主從服務器)第一部分 正向解析部分)

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

部署服務:
安裝AWStates之前先確認服務器上Perl的環境已經安裝好
perl -version

技術分享圖片

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. 修改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
或如下圖:

技術分享圖片

啟動crond服務
systemctl start crond.service

7.在nginx中的HTML裏建立awstats虛擬目錄
在/usr/local/nginx/html裏建一個awstats的目錄
並且將/usr/local/awstats/wwwroot/裏的awstats.www.test.com.html復制到/usr/local/nginx/html/awstatsl裏

技術分享圖片

技術分享圖片

8. 在nginx中建立awstats虛擬目錄的配置文件,不影響正常ip的訪問
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80 ;
server_name localhost; 註:這裏的localhost可以修改為本機ip
location /awstats {
root html;
index index.html awstats.www.test.com.html;
}
}
如圖所示哦

技術分享圖片

9. 重啟nginx
Nginx -t
Systemctl restart nginx

10. 測試
訪問AWStats日誌分析系統網址:192.168.40.15/awstats

技術分享圖片

正常ip地址訪問

技術分享圖片

用域名www.test.com來訪問
技術分享圖片

以上是實驗的全部過程哦

Nginx中AWStats日誌分離的詳細部署