生命之中的最大错误在于:终日担心犯错误。— 爱尔伯特·哈伯德 (Elbert Hubbard 1856-1915),《笔记》
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]
注:以下代码按history整理,仅供参考

第一步:下载awstats

wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz
tar xfz awstats-7.0.tar.gz
mv awstats-7.0 /Data/webapps/awstats


第二步:安装ip库

wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar xfz GeoIP.tar.gz
cd /Data/tgz/awstats/GeoIP-1.4.7/
./configure
make && make install
cd ..
wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.39.tar.gz
tar xfz Geo-IP-1.39.tar.gz
cd Geo-IP-1.39
perl Makefile.PL
make && make install
cd ..
wget http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Geo-IPfree-0.2.tar.gz
tar xfz Geo-IPfree-0.2.tar.gz
cd Geo-IPfree-0.2
perl Makefile.PL
make && make install

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mkdir /Data/webapps/awstats/wwwroot/data/
mv *.dat /Data/webapps/awstats/wwwroot/data/


第三步:下载js文件方便按天浏览
#download js
http://www.internetofficer.com/awstats/day-by-day/
下载后放js目录吧,懂的

第四步:配置网站文件

cd /Data/webapps/awstats/wwwroot/cgi-bin/
mv awstats.model.conf common.conf

### vi common.conf: 启用一些插件
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoLiteCity.dat"

mkdir /Data/webapps/awstats/wwwroot/output

### vi awstats.www.conf 配置网站参数
Include "common.conf"
LogFile="/Data/logs/date/%YYYY-1/%MM-1/%DD-1/%HH-1/www.log"
SiteDomain="www.aslibra.com"
HostAliases="aslibra.com"
DefaultFile="index.html"
DirData="/Data/webapps/awstats/wwwroot/output/"
HTMLHeadSection="<script language=javascript src="/js/day-by-day-head.js"></script>"
HTMLEndSection="<script language=javascript src="/js/day-by-day-end.js"></script>"


第五步:配置网站访问吧,比如lighttpd

$HTTP["host"] == "awstats.aslibra.com" {
        server.document-root = "/Data/webapps/awstats/wwwroot/"
  cgi.assign  = ( ".pl"  => "/usr/bin/perl")
}

第六步:配置计划任务?

按你日志的切割方式,定期执行处理任务

/Data/webapps/awstats/wwwroot/cgi-bin/awstats.pl \
-update -databasebreak=day -config=www -lang=cn


参考阅读:

1 AWStats Installation, Configuration and Reporting
2 AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用
3 AWStats按天分析日志:databasebreak=day
4 AWStats Day by Day
Tags:
为什么要用awstats?

1 你需要知道服务器流量都怎么导致的
2 你想查处莫名其妙的流量

awstats会给你很多网页访问统计系统无法告诉你的问题:流量分配,你不需要知道,那就不用它。

怎么做搭建?

下载安装awstats即可,我这里就不重复了,参考文章附录的参考资料。

Nginx怎么记录日志?

Nginx默认的日志格式就是awstats需要的,所以你不需要重新定义即可使用。
加buffer参数估计可以对日志效率有提高。
server {
  server_name  www.aslibra.com;
  location / { proxy_pass http://backend; }
  access_log /Data/logs/access.www.aslibra.com.log combined  buffer=32k;
}


Nginx的日志切割脚本

别人写的脚本都太简单,不太适应,自己重新整理一下,合用的朋友可以借鉴一下

nginx_log_cut.sh
#!/bin/sh

#日志最小记录
Min_Row=50
Log_Dir=/Data/logs
Nginx_Dir=/Data/apps/nginx
#你的日志格式
Date_Dir="/Data/logs/date/"`date +%Y/%m/%d/%H -d "1 hours ago" `

echo ""
echo "=== "`date`" ==="
echo "Date_Dir: $Date_Dir"
if [ ! -d $Date_Dir ];then
        mkdir -p $Date_Dir
fi

#你的所有域名日志
Logs="www.aslibra.com\
test.aslibra.com"

#注意,0.7才支持 -s 参数,否则你需要用 kill -USR1 方式
#把buffer都写入文件
$Nginx_Dir/sbin/nginx -s reopen

for domain in $Logs;do
        if [ -f $Log_Dir/access.$domain.log ];then
                Row=`wc -l $Log_Dir/access.$domain.log | awk '{print $1}'`
                if [ $Row -gt $Min_Row ];then
                        if [ -f $Date_Dir/$domain.log ];then
                                echo "Append: "$Log_Dir/access.$domain.log
                                cat $Log_Dir/access.$domain.log >> $Date_Dir/$domain.log
                                rm -f $Log_Dir/access.$domain.log
                        else
                                echo "Move: "$Log_Dir/access.$domain.log
                                mv $Log_Dir/access.$domain.log $Date_Dir/$domain.log
                        fi
                else
                        echo "Delete(less then $Min_Row Rows): "$Log_Dir/access.$domain.log
                        rm -f $Log_Dir/access.$domain.log
                fi
        fi
done

#重开日志
$Nginx_Dir/sbin/nginx -s reopen


加入计划任务即可

0 * * * * root /Data/scripts/nginx_log_cut.sh >>/Data/logs/log_cut.log


配置awstats的配置文件

其它就不说了,我这里的脚本是按小时切割的,所以说一下格式:

LogFile="/Data/logs/date/%YYYY-1/%MM-1/%DD-1/%HH-1/www.aslibra.com.log"


使用实例

发现了一个网页文件存取次数最多,可网页受访却没有那么多,后来发现是有一个域名设置302跳转到此而导致的。
发现异常流量,可以看到awstats里面的流量比较大的ip,可以确认了那可以用iptables封禁异常的ip。
发现404错误,自己调整好。
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐