awstats+nginx配置笔记

2013.11.04/2014.12.03发布于笔记暂无评论/目录

awstats可以分析服务器日志,并提供图形化的分析结果,demo可参考本博客的awstats页面。以下是一篇简单的awstats教程,记录我在ubuntu系统上安装和配置awstats7.2 + nginx的过程。

awstats7.2下载和配置

下载awstats

cd /tmp
wget http://prdownloads.sourceforge.net/awstats/awstats-7.2.zip
cd /usr/local
sudo unzip /tmp/awstats-7.2.zip
sudo mv awstats-7.2 awstats

www.mawenbao.com为例,创建新的配置文件/etc/awstats/awstats.www.mawenbao.com.conf

cd /usr/local/awstats
perl tools/awstats_configure.pl
# 根据提示依次输入
# web server config file path: none
# build a new AWStats config/profile: y
# awstats config file name: www.mawenbao.com(改成自己的网站名即可)
# awstats config file path: (不填,使用默认值/etc/awstats)

# 编辑配置文件
sudo vi /etc/awstats/awstats.www.mawenbao.com.conf
# 将LogFile改为nginx的access日志的位置
# LogFile="/var/log/nginx/access.log"

sudo chown -R www-data:www-data /usr/local/awstats/wwwroot

# 修改awstats的输出目录为/usr/local/awstats/wwwroot/output
# DirData="/usr/local/awstats/wwwroot/output"
sudo -u www-data mkdir /usr/local/awstats/wwwroot/output

# 测试新生成的配置文件是否有效
sudo ./wwwroot/cgi-bin/awstats.pl -config=www.mawenbao.com

以上的过程如果顺利完成,则表示awstats已配置成功。

nginx配置

准备工作

# 安装spawn-fcgi
sudo apt-get install spawn-fcgi libfcgi0ldbl fcgiwrap

配置nginx,添加一个新的子域awstats.mawenbao.com,先在dns服务商那里添加相应的A记录。

cd /etc/nginx/sites-available
sudo vi awstats.conf

写入如下内容

server {
    listen 80;
    root /usr/local/awstats/wwwroot;
    server_name awstats.mawenbao.com;

    location ~ \.pl$ {
        gzip off;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_index index.pl;
    }
}

然后

cd ../sites-enabled
sudo ln -s ../sites-available/awstats.conf .

最后,重新载入nginx配置文件

sudo service nginx reload

载入配置无误,则可以通过如下网址访问awstats的分析结果

http://awstats.mawenbao.com/cgi-bin/awstats.pl?config=www.mawenbao.com

其他功能

使用GeoIP插件分析访问者IP所在国家

详情可参考AWStats 国家地区扩展 GeoIP 安装配置

# 下载IP数据
cd /usr/local/awstats/wwwroot
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
sudo gzip -d GeoIP.dat.gz

# 安装GeoIP C API
sudo apt-get install zlib1g-dev
cd /tmp
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz
tar -zxf GeoIP-1.4.8.tar.gz
cd GeoIP-1.4.8/
./configure
make && make install

# 安装GeoIP插件
cd /tmp
wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.39.tar.gz
tar -zxf Geo-IP-1.39.tar.gz
cd Geo-IP-1.39
perl Makefile.PL LIBS='-L/usr/local/lib'
make && make install

最后,修改awstats的配置文件,将如下一行取消注释并修改为

LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/wwwroot/GeoIP.dat"

通过网页界面更新awstats

确保www-data用户对awstats的输出目录拥有写权限,然后在awstats的配置文件里做如下修改

AllowToUpdateStatsFromBrowser=1

读取多个日志文件

按照官方的建议,可以使用awstats自带的一个脚本logresolvemerge.pl来解析多个日志文件。

logresolvemerge.pl脚本还支持直接读取gz和bz2等压缩文件,默认位于awstats安装目录的tools文件夹里。

sudo cp /usr/local/awstats/tools/logresolvemerge.pl /usr/local/awstats/wwwroot/output
sudo chown www-data:www-data /usr/local/awstats/wwwroot/output/logresolvemerge.pl
sudo chmod 500 /usr/local/awstats/wwwroot/output/logresolvemerge.pl

使用该脚本的话需要将配置文件里的LogFile改为类似下面的样子(注意修改logresolvemerge.pl的位置):

LogFile="/usr/local/awstats/wwwroot/output/logresolvemerge.pl /var/log/nginx/access.log* |"

需要注意的是,为使logresolvemerge.pl脚本能访问相应的日志文件,需要为分配合理的权限。

chmod +x logresolvemerge.pl

问题

关键词乱码

修改配置文件,取消LoadPlugin="decodeutfkeys"一行的注释即可,然后重新生成报告。

如果出现Cannot locate URI/Escape.pm这样的错误,则运行如下命令安装URI::Escape模块

cpan -i URI::Escape

阅读资料

#awstats#nginx#note#perl#ubuntu#教程

评论