`
yaozhan189
  • 浏览: 49463 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

宁波网络公司-浙江海商网nginx+awstats安装过程

阅读更多

宁波网络公司-浙江海商网 nginx+awstats安装过程

目标:用awstats分析对象nginx的日志

简要:
一、配置nginx日志,并每天定时用脚本切割日志,统计机器同步切割后日志
二、配置统计机器,实现nginx+awstats,并自动读取/刷新日志


宁波网络公司-浙江海商网 配置步骤如下:


一、对nginx端的修改

   1、60.190.1.90
     
      (1) 修改nginx配置
      vi /data/software/nginx/conf/nginx.conf
      修改如下:
      log_format access '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" $http_x_forwarded_for';
      access_log /data/software/nginx/logs/accessEn90.log access;
      #access_log   off;

      service nginx reload
     
      (2) 切割nginx日志脚本,并把切割后日志发送到统计机器
      vi /data/sh/cut_nginx_log.sh

        #!/bin/bash
    #把脚本加入到自动任务里面,每天晚上0点0分自动执行
    # crontab -u root -e
    # 00 00 * * * /data/sh/cut_nginx_log.sh
    # service crond restart

    # The Nginx logs path
    logs_path="/data/software/nginx/logs/"

    mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
    mv ${logs_path}accessEn90.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/accessEn90_$(date -d "yesterday" +"%Y%m%d").log
    kill -USR1 `cat /data/software/nginx/logs/nginx.pid`
      
      chmod 777 /data/sh/cut_nginx_log.sh

      (3) 设置crontab,每天凌晨00:00切割nginx访问日志:
       crontab -u root -e
       输入以下内容:
       00 00 * * * /data/sh/cut_nginx_log.sh
       service crond restart

   2、60.190.1.83
      vi /data/software/nginx/conf/nginx.conf
           修改中文版应用片段如下:
           log_format access '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                             '"$http_user_agent" $http_x_forwarded_for';
           access_log /data/software/nginx/logs/accessCn83.log access;
           #access_log   off;

      service nginx reload

   3、210.83.80.207
      vi /data/software/nginx/conf/nginx.conf
           修改英文版应用片段如下:
           log_format accessEn '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                             '"$http_user_agent" $http_x_forwarded_for';
           access_log /data/software/nginx/logs/accessEn207.log accessEn;
           #access_log   off;

           修改中文版应用片段如下:
           log_format accessCn '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                             '"$http_user_agent" $http_x_forwarded_for';
           access_log /data/software/nginx/logs/accessCn207.log accessCn;
           #access_log   off;

      service nginx reload

   4、统计机器同步切割后日志
      vi /data/sh/rsync_nginx_log.sh

#!/bin/bash

#把脚本加入到自动任务里面,每天晚上0点30分自动执行
#crontab -u root -e
#30 00 * * * /data/sh/rsync_nginx_log.sh
#service crond restart

# The Nginx logs path
logs_path="/data/software/nginx/logs/"


echo "------------- 开始拷贝60.190.1.90 Nginx日志文件 -------------"
rsync -artv  rsync@60.190.1.90::$logs_path$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/accessEn90_$(date -d "yesterday" +"%Y%m%d").log /data/logs/nginx/en --password-file=/data/sh/rsync.pwd --progress
echo ""


echo "------------- 开始拷贝60.190.1.83 Nginx日志文件 -------------"
rsync -artv  rsync@60.190.1.83::$logs_path$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/accessEn83_$(date -d "yesterday" +"%Y%m%d").log /data/logs/nginx/cn --password-file=/data/sh/rsync.pwd --progress
echo ""


echo "------------- 开始拷贝210.83.80.207 Nginx英文日志文件 -------------"
rsync -artv  rsync@210.83.80.207::$logs_path$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/accessEn207_$(date -d "yesterday" +"%Y%m%d").log /data/logs/nginx/en --password-file=/data/sh/rsync.pwd --progress
echo ""

echo "------------- 开始拷贝210.83.80.207 Nginx中文日志文件 -------------"
rsync -artv  rsync@210.83.80.207::$logs_path$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/accessCn207_$(date -d "yesterday" +"%Y%m%d").log /data/logs/nginx/cn --password-file=/data/sh/rsync.pwd --progress
echo ""

    chmod 777 /data/sh/rsync_nginx_log.sh
    crontab -u root -e
    30 00 * * * /data/sh/rsync_nginx_log.sh
    service crond restart

二、配置统计机器
前提:安装好nginx
配置文件见文件夹的nginx.conf

需要把nginx-fcgi.conf放到conf路径下


1、安装awstats
cd /data/software/
wget http://www.awstats.cn/files/awstats-7.0.tar.gz
tar zxvf awstats-7.0.tar.gz
mv awstats-7.0 awstats
cd awstats/tools/
perl awstats_configure.pl

安装过程很简单,由于不是标准的apache或IIS,所以在选择web服务的时候,设置为none,稍后手工修 改nginx配置。

awstats的配置文件路径最好设置为:/data/software/awstats/wwwroot/cgi-bin/下


2、安装 perl-FCGI 、perl-FCGI-ProcManager 和 perl-IO-ALL
cd /data/software/temp
wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.67.tar.gz
tar -zxf FCGI-0.67.tar.gz
cd FCGI-0.67
perl Makefile.PL
make && make install
cd ..

wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.18.tar.gz
tar -zxf FCGI-ProcManager-0.18.tar.gz
cd FCGI-ProcManager-0.18
perl Makefile.PL
make && make install
cd ..

wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.39.tar.gz
tar zxf IO-All-0.39.tar.gz
cd IO-All-0.39
perl Makefile.PL
make && make install

3、安装 nginx-fcgi 脚本   
cd /data/software/nginx/sbin
wget http://www.nginx.eu/nginx-fcgi/nginx-fcgi.txt
mv nginx-fcgi.txt nginx-fcgi
chmod +x nginx-fcgi

如果不用 sudo 方式运行 nginx-fcgi,请注释掉 nginx-fcgi 脚本中的
if ( $> == "0" ) {
        print "\n\tERROR\tRunning as a root!\n";
        print "\tSuggested not to do so !!!\n\n";
        exit 1;
}

启动 nginx-fcgi:
./nginx-fcgi -l /data/software/nginx/sbin/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock
chown nginx.nginx /var/run/nginx-fcgi.sock


4、修改awstats.jiaming.conf配置
vi /data/software/awstats/wwwroot/cgi-bin/awstats.jiaming.conf

LogFile="/data/software/awstats/tools/logresolvemerge.pl /data/logs/nginx/*.log|"

DirData="/data/software/awstats"

5、更新分析报告
perl /data/software/awstats/wwwroot/cgi-bin/awstats.pl -config=awstats.jiaming -update


6、查看分析报告
http://awstats.jiaming.com/cgi-bin/awstats.pl?config=awstats.jiaming

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics