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>
//重启
[iyunv@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
[iyunv@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点运行
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com