• 烂泥:利用awstats分析nginx日志


    本文由ilanniweb提供友情赞助,首发于烂泥行天下

    想要获得更多的文章,可以关注我的微信ilanniweb

    昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看《烂泥:切割nginx日志》这篇文章。

    今天打算分析下nginx日志,要分析nginx日志,我们可以通过shell脚本和第三方软件awstats进行分析,在此我们选择的是通过第三方软件awstats进行分析。

    要使用awstats分析nginx日志,我们要安装awstats,而在安装awstats之前,我们需要先来介绍下awstats是什么?

    一、awstats是什么

    awstats是一个免费非常简洁而且强大有个性的基于Perl语言的WEB日志分析工具。

    它可以统计网站的如下信息:

    1):访问量、访问次数、页面浏览量、点击数、数据流量等。

    2):精确到每月、每日、每小时的数据。

    3):访问者国家以及IP。

    4):Robots/Spiders的统计。

    5):访客持续时间。

    6):对不同files type的统计信息。

    7):Pages-URL的统计。

    8):访客操作系统浏览器等信息。

    9):其它信息(搜索关键字等等)

    二、准备工作

    在介绍完awstats是什么之后,我们再来介绍下安装awstats之前的准备工作。

    2.1 安装GeoIP

    GeoIP主要用于定位访问者所属的国家以及城市的数据库,可以使用如下命令进行安装:

    yum -y install GeoIP GeoIP-devel perl-Geo-IP

    clip_image001[1]

    查看GeoIP安装的相关组件,如下:

    rpm -ql GeoIP-GeoLite-data

    rpm -ql GeoIP-GeoLite-data-extra

    clip_image002[1]

    如果是ubuntu系统,我们可以使用如下命令进行安装:

    sudo apt-get -y install geoip-bin geoip-database-contrib php5-geoip python-geoip python-geoip-dbg libgeoip1 libgeoip-dev

    在上述截图的安装的文件中,我们只需要关注GeoIP.dat和GeoLiteCity.dat这两个文件即可,其中GeoIP.dat用于定位访问者所属的国家,而GeoLiteCity.dat用于定位访问者所属的城市。

    2.2 安装httpd-tools

    一般站长都不愿随便让其他人知道自己网站的真实流量,所以要把awstats统计结果页面进行密码保护。

    因为nginx使用的是跟apache一样的密码加密格式,所以这里需要用到apache自带的工具htpasswd,而htpasswd包含在httpd-tools组件中的,所以我们要安装httpd-tools。

    安装httpd-tools,使用如下命令:

    yum -y install httpd-tools

    clip_image003[1]

    安装httpd-tools时,会自动安装httpd,所以我们需要把httpd禁用。如下:

    /etc/init.d/httpd stop

    chkconfig httpd off

    生成密码文件,使用如下命令:

    htpasswd -c -m /usr/local/htpasswd.pass ilanni

    clip_image004[1]

    三、安装awstats

    准备工作做完后,我们现在来安装awstats。

    3.1 下载awstats

    awstst官网是http://www.awstats.org/,下载最新版本de awstats。如下:

    wget http://www.awstats.org/files/awstats-7.5.tar.gz

    clip_image005[1]

    clip_image006[1]

    3.2 安装awstats

    awstats下载完毕后,我们现在来安装awstats。解压安装包,并进行相关操作,如下:

    tar -C /usr/local/ -xf awstats-7.5.tar.gz

    mv /usr/local/awstats-7.5/ /usr/local/awstats

    chown root:root -R /usr/local/awstats/

    mkdir -p /var/www/awstats/

    cd /usr/local/awstats/tools/

    chmod +x /usr/local/awstats/tools/*.pl

    chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl

    clip_image007[1]

    开始安装awstats,如下:

    ./awstats_configure.pl

    clip_image008[1]

    因为在此我们使用的是nginx,所以以上截图填写none。

    clip_image009

    创建一个新的统计配置文件。

    clip_image010

    在这输入自己的网站域名,也可以进行自定义。

    clip_image011

    使用默认配置,生成配置文件。

    clip_image012

    安装程序执行结束后,会在/etc/awstats/目录下生成相应的配置文件。如下:

    ll /etc/awstats/awstats.www.ilanni.com.conf

    clip_image013

    3.3 编辑配置文件

    awstats安装完毕后,我们现在来修改其配置文件awstats.www.ilanni.com.conf。在该配置文件中,我们主要修改的是awstats分析nginx日志的路径,以及日志格式,当然还有其它的一些插件。如下:

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

    LogFile="/var/log/nginx/ilanni.com_%YYYY-24%MM-24%DD-24.log"

    #配置显示国家和地区

    LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"

    LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/share/GeoIP/GeoLiteCity.dat"

    #解决搜索关键字的乱码

    LoadPlugin="decodeutfkeys"

    注意:LogFile路径中日志文件中的日期格式“%YYYY-24%MM-24%DD-24”,是指24小时之前的年月日,也就是昨天的日期。-24表示一天前的,-0表示当前。

    clip_image014

    3.4 安装纯真IP数据库插件

    如果要详细显示国内访客的具体来源信息,我们可以使用纯真IP数据库插件。

    纯真IP地址数据库下载地址:http://update.cz88.net/soft/setup.zip

    在windows机器上下载安装后,安装目录下的qqwry.dat文件即是最新版IP地址数据库。

    下载awstats纯真IP数据库解析插件,下载地址如下:

    http://down.51cto.com/data/1888530

    注意,附件qqhostinfo.pm、qqwry.pl里的文件路径已经修改好。

    下载完毕后,把qqhostinfo.pm、qqwry.pl、qqwry.dat这三个文件,放到awstats的wwwroot/cgi-bin/plugins目录下,并且给予qqhostinfo.pm文件可执行权限。如下:

    clip_image015

    最后修改awstats的配置文件awstats.www.ilanni.com.conf添加LoadPlugin="qqhostinfo"选项,如下:

    clip_image016

    到此awstats安装和配置已经全部完成。

    四、配置nginx日志格式

    awstats安装完毕后,我们要配置nginx日志的格式,因为awstats是按照指定的格式对nginx日志文件进行分析的,所以我们要进行对应的配置。

    nginx日志的配置方法如下:

    vim /etc/nginx/nginx.conf

    log_format  site  '$remote_addr - $remote_user [$time_local] "$request" '

                 '$status $body_bytes_sent "$http_referer" '

                 '"$http_user_agent" $http_x_forwarded_for';

    clip_image017

    五、awstats与nginx进行web集成

    Nginx日志格式配置完毕后,我们现在要把awstats与nginx进行集成。

    为什么awstats与nginx进行集成?因为awstats的访问是通过web方式进行的。这个集成也分为两种情况 ,一个是awstats单独以nginx虚拟主机的形式存在,一种是awstats与现有nginx虚拟主机进行集成。下面分别把这两种方式的nginx配置贴出来,如下:

    awstats单独作为nginx的一个虚拟主机,配置文件:

    server {

            listen 80;

            server_name www.ilanni.com;

    root /var/www/awstats/;

    index index.html;

    #或者

    #index  awstats.test.haiyn.com.html;

            location ~ ^/cgi-bin/.*.(cgi|pl|py|rb) {

            gzip off;

            include         fastcgi_params;

            fastcgi_pass  unix:/tmp/php-cgi.sock;

    #       fastcgi_pass    127.0.0.1:9000;   #注意配置fastcgi_pass为你的php-fpm server.

            fastcgi_index   cgi-bin.php;

            fastcgi_param   SCRIPT_FILENAME /usr/local/awstats/wwwroot/cgi-bin/fcgi.php;  #注意文件路径

            fastcgi_param   SCRIPT_NAME        /cgi-bin/fcgi.php;

            fastcgi_param   X_SCRIPT_FILENAME /usr/local/awstats/wwwroot$fastcgi_script_name;  #注意文件路径

            fastcgi_param   X_SCRIPT_NAME $fastcgi_script_name;

            fastcgi_param   REMOTE_USER        $remote_user;

            }

            # Static awstats files: HTML files stored in DOCUMENT_ROOT/awstats/

            location /classes/ {

                    alias /usr/local/awstats/wwwroot/classes/;

            }

            location /css/ {

                    alias /usr/local/awstats/wwwroot/css/;

            }

            location /js/ {

                    alias /usr/local/awstats/wwwroot/js/;

            }

            location /icon/ {

              alias /usr/local/awstats/wwwroot/icon/;

          }

    }

    clip_image018

    awstats与现有nginx虚拟主机进行集成

    注意:一定要把awstats相关的配置存放到最前面,这是因为nginx的匹配规则是从上到下进行匹配的。

    server {

    listen 80;

    server_name www.ilanni.com ilanni.com;

    charset utf-8;

    access_log /var/log/nginx/ilanni.com.log main;

    location ~ ^/icon/ { #图标目录

    root /usr/local/awstats/wwwroot;

    index index.html;

    access_log off;

    charset gb2312;

    }

    location ~ ^/cgi-bin/.*.(cgi|pl|py|rb) {

    root /usr/local/awstats/wwwroot;

    gzip off;

    include fastcgi_params;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_param X_SCRIPT_NAME $fastcgi_script_name;

    fastcgi_param SCRIPT_FILENAME $document_root/cgi-bin/fcgi.php;

    fastcgi_param X_SCRIPT_FILENAME $document_root$fastcgi_script_name;

    #fastcgi_param REMOTE_USER $remote_user;

    auth_basic "Restricted";

    auth_basic_user_file /usr/local/awstats/htpasswd.pass;

    }

    location / {

    root /www/ilanni.com;

    index index.php index.html index.htm;

    }

    location ~ .php$ {

    root /www/ilanni.com/;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

    }

    }

    clip_image019

    六、生成awstats数据库

    现在开始使用awstats分析日志,使用如下命令:

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

    clip_image020

    生成静态文件,使用如下命令:

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

    clip_image021

    为了看到每一天更新的数据,我们可以通过crontab在每天凌晨00:01定时更新静态页面。如下:

    vim /etc/crontab

    1 0 * * * /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=www.ilanni.com -lang=cn -dir=/var/www/awstats -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

    clip_image022

    七、访问awstats

    awstats数据库生成完毕后,我们现在来通过web页面访问下。在此我使用的是第二种方式awstats与nginx进行集成。

    如下:

    http://www.ilanni.com/cgi-bin/awstats.pl

    clip_image023

    上输入的是我们在第二章准备工作中htpasswd生成的用户名和密码。

    clip_image024

    上图就是awstats对nginx日志文件分析后,所得到的相关信息。

    clip_image025

    上图是我们安装的GeoIP和纯真IP数据库显示的用户访问的国家、城市以及来源地址。

    clip_image026

    上图是awstats根据nginx日志文件分析出来用户是搜索哪些关键词过来的。

  • 相关阅读:
    php yii多表查询
    [EA]反向工程
    [EA]入门教程
    [EA]DB数据逆向工程
    [MacromediaFlashMX]破解版下载
    [Git]Git-Github入门
    [github]Github上传代码
    [Apache]Windows下Apache服务器搭建
    [Apache]安装中出现的问题
    [ASP调试]小旋风Web服务器使用
  • 原文地址:https://www.cnblogs.com/ilanni/p/5384405.html
Copyright © 2020-2023  润新知