linux下安装awstats6.5

1、安装awstats6.5

tar zxvf awstats-6.5.tar.gz
mv awstats-6.5  /usr/local/awstats


A. apache配置

//添加虚拟主机
vi /usr/local/apache/conf/httpd.conf

<VirtualHost *:80>
    DocumentRoot /usr/local/app/htdocs
    ServerName cs.waytek.cn
    ErrorLog /var/log/cs.waytek.cn-error_log
    CustomLog /var/log/cs.waytek.cn-access_log combined
</VirtualHost>

//重启
[root@mail bin]# ./apachectl restart


2、awstats配置

A、运行配置脚本生成awstats的配置文件
# cd /usr/local/awstats/tools/
# perl awstats_configure.pl
  默认生成的配置文件会放在/etc/awstats/下面,名称为awstats.cs.waytek.cn.conf
//生成的文件是根据apache的虚拟主机创建的

// 默认安装后重启apache
[root@mail bin]# ./apachectl restart


B、编辑 vi /etc/awstats/awstats.cs.waytek.cn.conf

   >>1 设置web server的logfile位置
       编辑LogFile为web server的log文件位置
       LogFile="/var/log/cs.waytek.cn-access_log"
      [确认和httpd.conf中的log文件保证一致,httpd.conf中log: logs/irunnet-access_log]
   >>2 设置要分析的服务日志类型
       LogType=W 
       w表示为WEB日志
   >>3 设置日志格式
       LogFormat=1
       1表示采用NCSA apache combined/ELF/XLF log format
   >>4 设置所要分析网站域名
       SiteDomain="cs.waytek.cn"
       HostAliases="cs.waytek.cn www.cs.waytek.cn 127.0.0.1 localhost"
   >>5 设置awstats的数据库存放目录(分析结果)
       DirData="/usr/local/awstats/data"[data需要手动建立]
   >>6 设置DirCgi
       DirCgi="/usr/local/awstats/wwwroot/cgi-bin"
       DirIcons="/awstatsicons"[这里awstatsicons是Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"的映射]

C、awstats权限修改
cd /usr/local
chown -R root:root awstats
chmod -R 755 awstats
cd awstats
mkdir data  //分析结果存入点
chown -R nobody data[nobdy为apache运行用户]
chmod -R 755 data
cd wwwroot/cgi-bin
perl awstats.pl -config=cs.waytek.cn -update -lang=cn  [创建awstats初始化数据库]
perl awstats.pl -config=cs.waytek.cn -output -staticlinks -lang=cn>awstats.cs.waytek.cn.html [创建awstats初始化静态统计页面]
chmod 777 /usr/local/awstats/wwwroot/cgi-bin/*.pl

D、修改vi /etc/awstats/awstats.cs.waytek.cn.conf 通过浏览器刷新统计页面
AllowToUpdateStatsFromBrowser=1

@@ 3、 测试

http://cs.waytek.cn/awstats/awstats.pl?config=cs.waytek.cn

@@ 4、多站点日志统计

a、生成并修改对应虚拟主机的配置文件

cd /etc/awstats/
cp awstats.cs.waytek.cn.conf awstats.cs.betxing.com.conf

b、修改配置文件中的下列各项
vi awstats.cs.betxing.com.conf
LogFile="/var/log/cs.betxing.com-access_log"
SiteDomain="cs.betxing.com"
HostAliases="cs.betxing.com www.cs.betxing.com 127.0.0.1 localhost"

5、 测试
http://192.168.1.50/awstats/awstats.pl?config=cs.betxing.com

@@  6、基于地理信息的插件安装GeoIP安装:(GeoIP)

GeoIP 和 Geo::IPfree(awstats 5.5+)
GeoIP和Geo::IPfree都免费的是国家/IP的影射表,比通过DNS反相解析域名得到的统计准确,而且速度快。GeoIP的API都是免费的,缺省库是免费的,收费的是它的数据更新服务。Geo::IPfree不仅代码是公开的,而且库数据也是公开的,因此可以自己定制,我曾经设想做一个中国城市到IP的映射。

a、as4不能通过以上两种我们采用Ge:IP::PurePerl Module

GeoIP.dat
Geo-IP-PurePerl-1.17.tar.gz

cp /home/update/tmp/Geo-IP-PurePerl-1.17.tar.gz /usr/local/awstats/
tar -zxvf Geo-IP-PurePerl-1.17.tar.gz
cd Geo-IP-PurePerl-1.17
perl Makefile.PL
make
make test
make install

vi /etc/awstats/awstats.cs.betxing.com.conf
LoadPlugin="decodeutfkeys" 
LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/GeoIP.dat"  //取消注释,启用此插件

b、更新GeoIP库
cd /usr/local/awstats
wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
gunzip GeoIP.dat.gz

chmod -R 777 GeoIP.dat Geo-IP-PurePerl-1.17

测试时,如果是lan修改apache的log私用ip改一个外网ip,然后到日志统计刷新就可看到中国图标。


@@  7、定时更新日志统计
crontab -e
*/5 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=cs.waytek.cn -update -lang=cn > /dev/null
*/5 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=cs.betxing.com -update -lang=cn > /dev/null

保存退出后,自动提交cron进程同时创建一个以用户名的副本在/var/spool/cron目录中

注:
> /dev/null   //crond程序会把执行的屏幕输出或错误信息寄送给mail=root,我们不希望寄送邮件,在执行任务的后面加一个重定向到空的目录即可
> /dev/null 2>&1  //包括错误信息也不会寄出。

apache 日志滚动

一般每10,000个请求,访问日志就会增加1MB或更多,日志达到100M是会影响apache性能。

1、安装cronolog做滚动日志
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar -zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure --exec-prefix=/usr/local/cronolog
make
make install

2、产生综合日志但不包括图片

有条件地记录日志
许多时候,使用 环境变量 排除某些客户请求会带来便利。
首先,需要用SetEnvIf指令来标识符合某种条件的请求,然后用CustomLog 指令的env=从句,来包含或者排除被记录的请求

vi /usr/local/apache/conf/httpd.conf

LogFormat "%h %l %u %t /"%r/" %>s %b /"%{Referer}i/" /"%{User-Agent}i/"" combined
SetEnvIf Request_URI /.gif$ gif-image
SetEnvIf Request_URI /.GIF$ gif-image
SetEnvIf Request_URI /.jpg$ gif-image
SetEnvIf Request_URI /.JPG$ gif-image
SetEnvIf Request_URI /.png$ gif-image
SetEnvIf Request_URI /.swf$ gif-image
SetEnvIf Request_URI /.SWF$ gif-image
SetEnvIf Request_URI /.css$ gif-image
SetEnvIf Request_URI /.CSS$ gif-image
SetEnvIf Request_URI /.js$ gif-image
SetEnvIf Request_URI /.JS$ gif-image
SetEnvIf Request_URI /.ico$ gif-image

ErrorLog "|/usr/local/cronolog/sbin/cronolog /var/log/apache/cs.betxing.com.%Y-%m-%d-error_log"
CustomLog "|/usr/local/cronolog/sbin/cronolog /var/log/apache/cs.betxing.com.%Y-%m-%d-access_log" combined env=!gif-image

上面的%Y-%m-%d表示每天都有新的log

3、重新运行apache,若log没起作用,则重启。
/etc/init.d/apachectl graceful

4、设置awstats的LogFile匹配的log文件
vi /etc/awstats/awstats.cs.betxing.com.conf
LogFile="/var/log/apache/cs.betxing.com.%YYYY-4-%MM-2-%DD-2-access_log" ##定义log的格式


apache日志滚动及日志的分析所实现的功能

用vi编辑一个简单的脚本
 
@@  自动清除31天前的LOG
# vi log_rm.sh

#!/bin/bash
find /var/log/*access* -mtime +31 -exec rm -f {} /;
find /var/log/*error* -mtime +31 -exec rm -f {} /;
/usr/local/apache/bin/apachectl graceful
# chmod 700 log_rm.sh

这个脚本的作用是让系统自动删除一个月前修改过的文件

然后
crontab -e
添加一行

33 17 * * 5 /root/myshell/log_rm.sh
这个表示刚才编辑的脚本在每周5的17:33点运行


 
阅读更多

没有更多推荐了,返回首页