linux下安装awstats6.5
1、安装awstats6.5tar 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>
//重启
# ./apachectl restart
2、awstats配置
A、运行配置脚本生成awstats的配置文件
# cd /usr/local/awstats/tools/
# perl awstats_configure.pl
默认生成的配置文件会放在/etc/awstats/下面,名称为awstats.cs.waytek.cn.conf
//生成的文件是根据apache的虚拟主机创建的
// 默认安装后重启apache
# ./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"
>>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
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点运行
页:
[1]