设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 20593|回复: 5

[日志分析] 安装awstats来分析apache的访问日志 大杂汇 [复制链接]

Rank: 8Rank: 8

签到
1
注册时间
2008-5-26
最后登录
2014-4-6
在线时间
36 小时
阅读权限
150
积分
409
帖子
87
主题
33
精华
5
UID
7

LT粉丝

发表于 2008-8-6 14:29:57 |显示全部楼层
刚开始用awstats,很多地方不太明白,从网上找了N多安装配置手册,大杂汇如下,希望对新手有帮助,

AWStats: Advanced Web Statistics
AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于:

  • 界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)
  • 基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏维护;
    AWStats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。
  • 效率比较高:AWStats输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/3左右,对于一个日访问量百万级的站点,这个速度都是足够的;
  • 配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是比较多的;
  • AWStats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤设置过滤掉。
  • 提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。


AWStats的运行模式是这样的:
  • 分析日志:运行后将这样的日志统计结果归档到一个AWStats的数据库(纯文本)里;
  • 然后是输出:分两种形式
    • 一种是通过cgi程序读取统计结果数据库输出;
    • 一种是运行后台脚本将输出导出成静态文件;

1. 修改Apache的配置文件 httpd.conf

默认配置CustomLog的日记格式是common,改为combined,后者是awstats推荐的方式可以用来分析客户端浏览器的类型以及访问来源等。例如:
CustomLog "| /apache/httpd/bin/rotatelogs /apache/httpd/logs/access_%Y%m%d.log 86400" combined
这个日志配置让apache每天生成一个新的日志文件,其中%Y%m%d是年月日。

2.安装awstats
一切准备妥当以后,我们就开始安装了,先进入/usr/local/awstats/tools里,运行awstats_configure.pl启动安装向导,步骤如下

[root@demo tools]# ./awstats_configure.pl

----- AWStats awstats_configure 1.0 (build 1.3) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

----->; Running OS detected: Linux, BSD or Unix

----->; Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
>; /etc/httpd/conf/httpd.conf  #输入你httpc.conf的路径,对于httpd2系列的一般都在/etc/httpd/conf/这个目录下面
这里将awstats的配置信息直接写入了httpd.conf

----->; Check and complete web server config file '/etc/httpd/conf/httpd.conf'
  Add '<Directory>;' directive
  AWStats directives added to Apache config file.

根据上面的httpd配置,更新了awstats.model.conf的内容,下面的.conf文件都要根据这个生成。


----->; Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.
下面问你是否要创建一个新的配置文件,我们当然要创建了,否则装awstats干什么呀。选y没说的。

----->; Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

下面是要生成conf文件的名称了,因为conf文件的名称都是awstats.yourdomainname.conf格式的,所以这里要求你输入你要监测的域名,其实这个域名只是与其他域名相区分的,并不一定非要真实的。我这里输入的是www.bestunix.net

----->; Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
>; www.bestunix.net

下面是让你输入配置文件的路径,直接回车就可以了,当然你也可以自己定义

----->; Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>; /etc/awstats

好了,现在就在/etc/awstats下面创建了你定义的配置文件,这里是awstats.www.bestunix.net.conf

----->; Create config file '/etc/awstats/awstats.www.bestunix.net.conf'
Config file /etc/awstats/awstats.www.bestunix.net.conf created.

创建完配置文件以后会自动重启httpd服务。

----->; Restart Web server with '/sbin/service httpd restart'
停止 httpd                                                  [  确定  ]
启动 httpd                                                  [  确定  ]

下面的都是直接回车就可以了

----->; Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.bestunix.net
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...
A SIMPLE config file has been created: /etc/awstats/awstats.www.bestunix.net.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.bestunix.net' with command:
>; perl awstats.pl -update -config=www.bestunix.net
You can also read your statistics for 'www.bestunix.net' with URL:
>; http://localhost/awstats/awstats.pl?config=www.bestunix.net

Press ENTER to finish...
3.修改/etc/awstats/下面的
#vi awstats.www.bestunix.net.conf
Include "common.conf"
LogFile="/var/log/apache/httpd-access.log"
LogType=W
SiteDomain="www.bestunix.net.conf"
HostAliases="www.bestunix.net.conf"
DefaultFile="index.html index.php"
DirData="/usr/local/awstats/data/"
DirIcons="/icons"
AllowToUpdateStatsFromBrowser=1


4.httpd.conf 中加入
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
如果需要帐户验证,则改成:
<Directory "/usr/local/awstats/wwwroot">
    Order deny,allow
    Allow from all
    AuthName "awstats log "
    AuthType Basic
    AuthUserFile /usr/local/awstats/htpasswd
</Directory>
然后使用apache自带的工具htpasswd来生成一个用户名和口令
5.生成数据
/usr/local/awstats/wwwroot/cgi-bin /awstats.pl -update -config=www.bestunix.net,因为这个程序是通过分析日志来进行流量统计的,如果你的日志文件很大的话是很耗系统资源的。还好,我的流量不大,我设定的是每个小时运行一次,你如果服务器比较繁忙的话也可以每天夜里运行一次。当然你也可以手工运行上面的命令来进行更新统计信息。
6.访问
http://IP/awstats/awstats.pl?config=www.bestunix.net
给awstats加上了Geo::IPfree插件
用途:用于awsats中关于来访者国家或地区的统计
配置Geo-IP需要:
Geo-IP C-API (http://www.maxmind.com/download/geoip/api/c/)
Geo-IP Perl-API (http://www.maxmind.com/download/geoip/api/perl/)
Geo::IPfree (http://search.cpan.org/author/GMPASSOS/Geo-IPfree-0.2/)
安装:
Geo-IP C-API:
./configure
make
make install


Geo-IP Perl-API:
perl MakeFile.PL
make
make install


Geo::IPfree
perl MakeFile.PL
make
make install

最后,在/etc/awstats/awstats.yourdomain.conf中开启Geo::IPfree插件。去掉 LoadPlugin="geoipfree" 前面的注释.
更新一下统计
/usr/local/awstats/tools/awstats_updateall.pl now

多网站多日志文件的合并分析和处理用处:

1.用lvs之后,放了多台前端用的Web Server,每台Server有各自的日志.我们分开使用分析软件分析和检查是非常困难的,所以我们使用合并的方法.
2.多个域名,日志分开,使用awstats之类的分析软件进行分析很麻烦,所以需要合并
3.使用google的软件来做sitemap之类的应用,检查也会非常麻烦,所以需要合并
4.象多个节点的CDN日志,要进行流量统计和分析需要合并
5.因为日志文件过大,一个服务器生成多个日志文件.象access_log.1、access_log.2、access_log.3…以此类推,所以要合并.
等等…..

问题
对合并,进行日志排序最麻烦的一个问题就是,容易在跨天过程中生成的非正常数据.用一个前辈的话,这些不正常的日志,对awstats之类,就象吃了虫子一样,还有可能冲掉你以前的所有数据。

解决方法1(多谢东东):
在分析日志前,使用
sort -m -t " " -k 4 -o log_all log1 log2 log3
注释:
-m: 使用 merge优化算法

解决方法2:
使用 awstats 内建的工具logresolvemerge.pl 来合并日志 ,方法非常容易,主要是更改网站的设定档就好了,编辑 /etc/awstats/awstats.php-oa.conf
找到 LogFile 的地方,原来预设单个 log 的设定如下:

LogFile="/var/log/httpd/access_log"(原设置)

修改成
LogFile="/usr/local/awstats/tools/logresolvemerge.pl /var/log/httpd/access_log* |"   (合并分析新的设置)

如上,其实只要 logresolvemerge.pl 的路径还有日志的路径及使用匹配来设置即可,记的后面加一个"|"。注意上面我是要合并 access_log.1、access_log.2、access_log.3 的日志,要是你的日志名为别的,记的使用匹配符来匹配你要一起合并分析的日志.
另外.默认logresolvemerge.pl 是放在 awstats 安装路径的 tools 里面,比如我们的 awstats 是装在/usr/local/awstats 里面,所以完整路径就是 /usr/local/awstats/tools/logresolvemerge.pl 。

编辑保存后,再来执行更新记录的程序即可,如:
#/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=xxx -update

再来进去您的网址就可以看到合并后输出的结果了,如:
http://www.yoursite.com/awstats/awstats.pl?config=xxx

其它及美化
1.用Firefox浏览分析结果时,字体会显得很难看(因为Firefox和IE识别11px字体不一样),所以用Firefox浏览器的情况,可以通过修改

awstats.pl输出css的相关字体尺寸进行修改,而达到用Firefox浏览时也和IE一样能够正确显示出适当尺寸的字体。方法就是直接编

辑"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl",将文件中所有“11px”的地方都替换为 “12px。

2.如何修改报表里的文字,如参观者...等等这些信息,其实修改语言报就可以
#vi /usr/local/awstats/wwwroot/cgi-bin/lang/awstats-cn.txt 修改里面的文字就可以.

Rank: 3Rank: 3

注册时间
2008-6-7
最后登录
2019-4-30
在线时间
16 小时
阅读权限
30
积分
312
帖子
22
主题
2
精华
1
UID
58
发表于 2008-8-9 11:59:53 |显示全部楼层
这个软件不错,不过性能有点问题。以前单位用过。

现在网站分析,很多采用代码来分析,这样效果更好。cnzz这些。

使用道具 举报

Rank: 1

注册时间
2008-11-4
最后登录
2010-1-26
在线时间
31 小时
阅读权限
1
积分
4
帖子
7
主题
1
精华
0
UID
474
发表于 2008-11-6 17:27:08 |显示全部楼层
分析代码的有什么工具。

使用道具 举报

Rank: 6Rank: 6

注册时间
2008-11-12
最后登录
2015-4-6
在线时间
136 小时
阅读权限
70
积分
6235
帖子
168
主题
38
精华
0
UID
539

LT粉丝

发表于 2008-11-24 12:41:21 |显示全部楼层
我这有点老师的笔记  也发出来看看


日志分析

man syslog.conf
日志对象:
auth
authpriv
cron
daemon
kern
lpr  
mail  
mark  #时间戳
news  
security (same as auth)
syslog
user
uucp
local0 through local7 #给用户保留的

debug #调试信息
info #常规信息
notice #通知
warning, warn  (same  as  warning) #警告信息
err, error (same as err) #错误信息
crit
alert
emerg panic (same as emerg). #内核报出,最高级信息

#syslog 格式
*.=crit;kern.none #所有对象的 crit 级别信息,排除所有 kernel 信息
kern.* #所有kernel对象的
kern.info;kern.!err #kernel对象 info 以上级别的信息,排除err以上的信息
kern.info;kern.!=err #kernel对象 info 以上级别的信息,排除err信息
mail,news.=info #mail和news的info级别信息
*.=info;*.=notice;\
        mail.none        #所有对象的 info 和 notice 级别信息,排除mail对象
*.=info;\
    mail,news.none        #所有对象的 info 和 notice 级别信息,排除mail和news对象
#/etc/syslog.conf
kern.crit                        @finlandia #发送到目标主机的syslog进行分类存储,也可以 @192.168.0.195
kern.*                                /dev/tty12 #发送到控制台
                                        rwc,blues,zorre #发送给用户,*代表所有用户
mail.*              -/var/log/maillog #async 模式发送至文件

----------------------------------
日志发送到服务器上集中并统一处理

#syslog 服务器端设置
vim /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0" 改为 SYSLOGD_OPTIONS="-r -x -m 0" # -r 允许接受远程日志, -x禁止ip反解析

vim /etc/syslog.conf #日志对象 local4 应和客户端相匹配
local4.*                                                        /var/log/httpd/allhost.log

#log.sh 把log按ip分拣
#!/bin/bash
for i in `seq 2 253`
do
sed -n '/[0-9].192\.168\.0\.'$i'[ ]/p' /var/log/httpd/allhost.log >> /var/log/httpd/allhost/192.168.0.$i.log
sed -i '/[0-9].192\.168\.0\.'$i'[ ]/d' /var/log/httpd/allhost.log
done
#由于 sed 操作了日志文件,文件将不再接收新的日志。需重启syslog才能重新写入。相当于service syslog restart
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null
exit 0

crontab -e
*/10 * * * * ~/log.sh #每十分钟对日志进行分拣
-------------
#客户端
vim /etc/syslog.conf #日志对象 local4 应和服务器端相匹配,发送到服务器
local4.*                                                        @192.168.0.1

vim /etc/httpd/conf/httpd.conf
CustomLog "|logger -p local4.info" combined #用logger把httpd


-------------
#awstats 日志分析软件
rpm -ivh awstats-6.7-1.el5.rf.noarch.rpm
cd /etc/awstats/
[root@mail /etc/awstats]#ls
awstats.localhost.localdomain.conf  awstats.model.conf

vim /etc/httpd/conf.d/awstats.conf
Alias /awstats/icon/ /var/www/awstats/icon/

ScriptAlias /awstats/ /var/www/awstats/
<Directory /var/www/awstats/>
        DirectoryIndex awstats.pl
        Options ExecCGI
        order deny,allow
        deny from all
        allow from 127.0.0.1 #改为 all
</Directory>

#Alias /css/ /var/www/awstats/css/
#Alias /js/ /var/www/awstats/js/

vim /etc/awstats/awstats.localhost.localdomain.conf
LogFile="/var/log/httpd/access_log" #要分析的日志文件
#  W - For a web log file
#  S - For a streaming log file
#  M - For a mail log file
#  F - For a ftp log file
# Example: W
# Default: W
LogType=W
# Examples for Apache combined logs (following two examples are equivalent):
# LogFormat = 1
# LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
# Example for IIS:
# LogFormat = 2
LogFormat=1
SiteDomain="www.rwc.com" #没定义这行,awstat 不能工作
HostAliases="localhost 127.0.0.1 192.168.0.195 www.rwc.com"
DirData="/var/www/awstats" #日志分析结果放在这里


[root@mail /var/www/awstats]#./awstats.pl -config=localhost.localdomain -update #分析日志文件
service httpd restart
http://192.168.0.195/awstats/aws ... calhost.localdomain

#分析早先存在 192.168.0.1 上的访问日志 /var/log/httpd/allhost/192.168.0.$i.log
[root@mail /etc/awstats]#cp awstats.localhost.localdomain.conf awstats.195.conf -a
vim awstats.195.conf
LogFile="/var/log/httpd/allhost/192.168.0.195.log"
SiteDomain="www.rwc.com"
HostAliases="localhost 127.0.0.1 www.rwc.com 192.168.0.195"

/var/www/awstats/awstats.pl -config=195 -update
http://192.168.0.1/awstats/awstats.pl?config=195
crontab -e #每十分钟分析一遍
*/10 * * * * /var/www/awstats/awstats.pl -config=195 -update
*/10 * * * * /var/www/awstats/awstats.pl -config=localhost.localdomain -update
#一个一个更新太麻烦,一个命令指定分析程序和配置文件夹就全部分析了
/usr/bin/awstats_updateall.pl now -awstatsprog=/var/www/awstats/awstats.pl -configdir=/etc/awstats/
-excludeconf=79,localhost.localdomain #排除配置文件,逗号分隔

# LogFormat = 1
# LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
192.168.0.1 - - [12/Aug/2008:13:51:39 +0800] "GET /awstats/awstats.pl?config=195 HTTP/1.1" 200 705 "-" "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.0.12) Gecko/20070718 Red Hat/1.5.0.12-3.el5 Firefox/1.5.0.12"


[root@mail /media/RWC/ULE 实践]#cp awstats.mail.conf.bak /etc/awstats/awstats.mail.conf
[root@mail ~]#vim /etc/awstats/awstats.mail.conf
SiteDomain="mail.rwc.com"
HostAliases="192.168.0.195 localhost 127.0.0.1"
/var/www/awstats/awstats.pl -config=mail -update
http://192.168.0.195/awstats/awstats.pl?config=mail

使用道具 举报

Rank: 7Rank: 7Rank: 7

注册时间
2008-5-26
最后登录
2017-8-10
在线时间
68 小时
阅读权限
100
积分
6853
帖子
106
主题
19
精华
0
UID
16
发表于 2008-11-24 16:25:07 |显示全部楼层
恩,好贴子,不错,学习了

使用道具 举报

Rank: 1

注册时间
2009-4-16
最后登录
2019-4-24
在线时间
13 小时
阅读权限
1
积分
29
帖子
50
主题
0
精华
0
UID
2509
发表于 2009-4-16 15:40:39 |显示全部楼层
也有同感,有些性能较差

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-1-29 03:19 , Processed in 0.027403 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部