• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS linux 下搭建awststs实现对nginx日志统计的具体操作
发布日期:2015-12-23 11:12:7

  步骤如下:

  1、搭建web服务器,用于展示统计页面,此处采用的是nginx+php的实现方案

  1):nginx的安装配置,这里依赖很多的库文件,可以直接yum相应的套件即可

  [root@awstats source]# ls nginx-1.2.2.tar.gz

  nginx-1.2.2.tar.gz

  [root@awstats source]# tar zxvf nginx-1.2.2.tar.gz

  [root@awstats source]#./configure --prefix=/home/service/nginx --with-http_stub_status_module --with-pcre

  [root@awstats nginx-1.2.2]# make && make install

  2):php相关的安装配置

  [root@awstats source]# ls php-5.4.5.tar.gz

  php-5.4.5.tar.gz

  [root@awstats source]# tar zxvf php-5.4.5.tar.gz

  [root@awstats php-5.4.5]#'./configure' '--prefix=/home/service/php5.45' '--with-jpeg-dir' '--with-gettext' '--with-png-dir' '--enable-exif' '--enable-mysqlnd' '--with-mysql=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-curl' '--enable-ftp' '--with-mcrypt' '--disable-debug' '--enable-xml' '--enable-mbstring' '--enable-sockets' '--with-zlib' '--enable-dom' '--with-gd' '--with-tidy' '--enable-gd-native-ttf' '--with-freetype-dir' '--with-mhash' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curlwrappers' '--enable-mbregex' '--enable-pcntl' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--enable-fpm' '--with-fpm-user=work' '--with-fpm-group=work' '--with-pear' '--with-snmp'

  [root@awstats php-5.4.5]#make && make install

  2、对nginx日志的切割

  1)创建管道

  #mkfifo pro.access.pipe.log

  2)建立转换脚本

  # cat startCronolog.sh

  #!/bin/bash

  nohup cat /usr/local/nginx/logs/pro.access.pipe.log | /usr/local/sbin/cronolog /usr/local/nginx/logs/pro-access.%Y%m%d%H.log &

  3)修改一下配置文件,下边的那句话

  #vim nginx.conf

  log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '

  '$status $body_bytes_sent "$http_referer" '

  '"$http_user_agent" "$remote_addr" "$request_time" '

  '"$request_time" ';

  access_log logs/pro.access.pipe.log main;

  4)重新启动nginx即可以

  3、安装和配置awstats

  (1)、软件是安装

  #wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz

  #tar -zxvf awstats-7.0.tar.gz

  #mv awstats-7.0 /usr/local/awstats

  (2)、创建配置文件

  #cd /usr/local/awstats/tools

  #./awstats_configure.pl

  这里分为几个步骤为必填项目

  first : 这里添none并回车,因为我们没有使用apache

  second:这里选Y,创建一个新的配置文件

  third: 这里输入你要分析的域名,或是随便一个你易记的配置名并回车

  four:接下来要定义你的配置文件存放的路径,可用默认

  last:最后几个步骤直接回车,使用默认路径/etc/awstats

  (3)、对配置文件的修改,这里主要是对需要分析日志的选定

  # vim /etc/awstats/awstats.pro.meilishuo.com.conf

  LogFile="/var/nginx/logs/pro-access.all.log"

  (4)、创建一个awstats用于记录数据的目录

  #mkdir -p /var/lib/awstats

  (5)、测试

  然后运行awstats的wwwroot目录中的awatsts.pl来测试一下

  /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=需要分析的域名

  (6)、先生成存放awstats生成的静态文件的目录,我这里用的是/home/www/awstats

  #mkdir -p /home/www/awstats

  (7)、创建自动更新脚本

  #cat awstats.sh

  #!/bin/bash

  mkdir -p /home/www/awstats/example.com

  /usr/local/awstats/tools/awstats_buildstaticpages.pl -update \

  -config=pro.meilishuo.com -lang=cn -dir=/home/www/awstats/pro.meilishuo.com \

  -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

  上述命令的具体意思如下:

  /usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工具

  -update -config=akii.org 更新配置项

  -lang=cn 语言为中文

  -dir=/home/www/awstats 统计结果输出目录

  -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新程序路径

  (8)、在nginx里的配置

  # cat awstats.conf

  server {

  listen 80;

  server_name awstats.example.com;

  root /home/www/awstats/pro.example.com;

  index awstats.pro.example.com.html;

  charset gb2312;

  location ~ ^/awstats/ {

  root /home/www/awstats/pro.example.com;

  autoindex on;

  index awstats.pro.example.com.html;

  access_log off;

  charset gb2312;

  }

  location ~ ^/icon/ {

  root /usr/local/awstats/wwwroot;

  index index.html;

  access_log off;

  }

  }

  (10)、生产网页直接运行脚本即可,通过网页观看即可

  [root@awstats bsh]# ./awstats.sh

  4、增加对ip地址的过滤这个可以参考一篇文章

  一,插件安装

  http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz

  http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.38.tar.gz

  这两个是一组,必须先编译安装C的,再编译安装perl的

  安装GeoIP

  需要

  GeoIP C Library

  Geo::IP Perl Module (faster, but requires C library)

  Geo::IP:urePerl Module (slower, but does not require C library)

  C Library和Perl Module是一组,必须先编译安装C的,再编译安装perl,或者直接装PurePerlModule,我就是这种方式

  安装GeoIP C Library

  # wget http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz

  # tar zxvf GeoIP-1.4.6.tar.gz

  # cd GeoIP-1.4.6

  # ./configure; make; make install

  安装Geo::IP Perl Module

  # wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.38.tar.gz

  # tar zxvf Geo-IP-1.38.tar.gz

  # cd Geo-IP-1.38 # perl Makefile.PL

  # make

  # make test

  # make install

  # wget http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.24.tar.gz

  # tar zxvf Geo-IP-PurePerl-1.24.tar.gz

  # cd Geo-IP-PurePerl-1.24

  # perl Makefile.PL PP=1

  # make

  # make test

  # make install

  安装完成后取消awstats配置文件中下行的注释:

  LoadPlugin="geoip GEOIP_STANDARD/uasr/local/share/GeoIP/GeoIP.dat"

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

  更新GeoIP库

  # cd /usr/local/share/GeoIP/

  # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

  # gunzip GeoIP.dat.gz

  #wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

  # gunzip GeoLiteCity.dat.gz

  定时更新GeoIP库

  0 0 * * * root /usr/local/bin/geoipupdate -v

  4、这样就完成了.scp为日志抓取的脚本

  */50 * * * * cd /home/service/bsh/; ./scp.sh

  0 0 * * * root /usr/local/bin/geoipupdate -v

  整个就完成了