前言

在上一篇文章中写了关于httpd的一些简介、配置。那么我们应该知道,HTTP服务器的访问量非常庞大,在它的访问日志文件access_log 中,记录了很多很多客户的访问信息,维护的管理人员会通过分析这些信息,可以及时的了解Web的访问情况,比如每天或特定时间段的访问IP数量、点击量大的页面。那么就是因为访问量太多,信息量太大,所以导致管理员不方便与管理,分析。AWStats日志分析系统就诞生,下面介绍一下AWStats分析系统


有兴趣的朋友可以看看上一篇的httpd简介与配置


AWStats日志分析系统简介

AWStats分析系统是使用Perl语言开发的一款开源日志分析系统,它不仅可用来分析Apache网站服务器的访问日志,也可以用来分析Samba、Vsftbd、IIS等服务器的日志信息,再结合crond周期性计划任务服务,可以对不断增加内容的日志定期分析。
AWStats软件包可以再官网上下载,我在百度网盘上提供源码包有需要的朋友可以进行免费下载。百度网盘源码包:awstats-7.6.tar.gz密码:6u19


AWStats它是以一种网页界面的形式展现分析报告以下是展现报告的内容

  • ·访问次数、独特访客人数,
  • ·访问时间和上次访问,
  • ·使用者认证、最近认证的访问,
  • ·每周的高峰时间(页数,点击率,每小时和一周的千字节),
  • ·域名/国家的主机访客(页数,点击率,字节,269域名/国家检测, geoip 检测),
  • ·主机名单,最近访问和未解析的 IP 地址名单
  • ·大多数看过的进出页面,
  • ·档案类型,
  • ·网站压缩统计表(mod_gzip 或者 mod_deflate),
  • ·使用的操作系统 (每个操作系统的页数,点击率 ,字节, 35 OS detected),
  • ·使用的浏览器,
  • ·机器人访问(检测 319 个机器人),
  • ·蠕虫*** (5 个蠕虫家族),··搜索引擎,利用关键词检索找到你的地址,
  • ·HTTP 协议错误(最近查阅没有找到的页面),
  • ·其他基于 URL 的个性报导,链接参数, 涉及综合行销领域目的.
  • ·贵网站被加入"最喜爱的书签".次数.
  • ·屏幕大小(需要在索引页补充一些 HTML 标签).
  • ·浏览器的支持比例: Java, Flash, RealG2 reader, Quicktime reader, WMA reader, PDF reader.
  • ·负载平衡服务器比率集群报告

AWStats 日志分析系统(含源码包)


AWStats工作原理

  • > 首先Apache将产生的访问日志信息存放在access_log文件中,AWStats工具在每次执行更新的时候就会读取、分析、统计这些日志信息,将结果存储到它自带的数据库中。最后AWStats提供一个Web界面来友好的显示数据库中统计的信息,有很多种分类,这样便于管理员的分析、查看。
  • >它的工作模式分为
    • 1·分析日志:运行AWStats工具时它会将日志信息统计、分析的结果放到一个数据库种;
    • 2·输出日志:这就是我们在web界面呈现出的统计效果(这里只针对Linux),将数据库种的数据输出到web界面

部署AWStats分析系统

  • > 这里以 百度网盘源码包:awstats-7.6.tar.gz密码:6u19 为例
  • > 这里系统是Linux(RedHat6.5)
  • > IP:192.168.100.20
  • > 域名:www.baidu.com(此百度非彼百度)
  • > 再安装软件前做好www.baidu.com的域名解析
  • > 以分析httpd日志为列

1·安装软件包:

tar -zxvf awstats-7.6.tar.gz -C /opt //解压源码包到/opt目录下
> mv /opt/awstats-7.6 /usr/local/awstats
cd /usr/local/awstats/tools
上面的移动只是个人习惯
./awstats_configure.pl #执行此脚本
> 出现以下效果
> ----- AWStats awstats_configure 1.0 (build 20140126) (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:
ou 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 #这里需要输入httpd的主配置文件

-----> Check and complete web server config file '/etc/httpd/conf/httpd.conf'
Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"'
Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"'
Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"'
Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"'
Add '<Directory>' directive
AWStats directives added to Apache config file.

-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
File awstats.model.conf updated.

-----> 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 #请确认是否安装“y”

-----> 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.baidu.com
Space chars are not allowed.
Your web site, virtual server or profile name:

> > www.baidu.com #输入你的主机名

-----> 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):

> #awstats的主配置文件默认的位子是在/etc/awstats

-----> Create config file '/etc/awstats/awstats.www.baidu.com.conf'
Config file /etc/awstats/awstats.www.baidu.com.conf created.

-----> Restart Web server with '/sbin/service httpd restart'
httpd: apr_sockaddr_info_get() failed for HedHat
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
停止 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.baidu.com
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.baidu.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.baidu.com' with command:
> perl awstats.pl -update -config=www.baidu.com
You can also read your statistics for 'www.baidu.com' with URL:

> > http://localhost/awstats/awstats.pl?config=www.baidu.com #访问该地址就可以看到Web界面

> Press ENTER to finish... #按回车结束


修改Awstats的主配置文件

vim /etc/awstats/awstats.www.baidu.com.conf
修改内容如下
LogFile="/var/log/httpd/access_log" #指定httpd的访问日志路径
DirData="/var/lib/awstats" #指定Awstats的数据存放位子
到此配置完成
mkdir /var/lib/awstats #创建Awstats存放数据的目录


修改Apache的主配置文件

vim /etc/httpd/conf/httpd.conf
修改内容如下:
Listen 192.168.100.20:80 #修改监听地址
#Listen 80 #注释IPv6端口
ServerName www.baidu.com:80 #修改主机名


重启服务,访问Web界面验证Awstats系统是否部署成功

service httpd restart
http://www.baidu.com/awstats/awstats.pl?config=www.baidu.com


AWStats 日志分析系统(含源码包)



更新数据

这个Web界面必须在Awstats数据库种手动更新,Web界面才会更新。
cd /usr/local/awstats/tools/
./awstats_updateall.pl now #手动执行数据更新


AWStats 日志分析系统(含源码包)

结合crontab做周期性计划:

在实际工作环境中,我们也不可能每次分析数据时都去手动执行一次更新脚本,这样也麻烦,所以我们可以设定周期计划任务。
crontab -e
/5 * /usr/local/awstats/tools/awstats_updateall.pl now
每隔5分钟更新一次数据,这样就解决了需要手动更新的问题。


优化访问AWStats的Web界面网站路径

在访问AWStats系统时,需要指定awstats目录、脚本位置、统计目标等信息,这样不便于记忆,也非常麻烦,还容易出错。为了简化操作,可以在Web跟目录下建立一个自动跳转的HTML网页。比如说:用户只要访问http://www.baidu.com/awb.html 即可自动跳转到www.baidu.com 站点的AWStats 的日志分析页面。
vim /var/www/httpd/awb.html
写的内容如下:

<html>
<head>
<meta http-equiv=refresh content="0;
url=http://www.baidu.com/awstats/awstats.pl?config=www.baidu.com">;
</head>
<body></body>
</html>


监控其他站点方法:

如果你还需要建立其他站点的监控,那么我们可以再执行一次创建新的配置文件的脚本
./awstats_configure.pl
将新的监控点日志文件名添加到awstats主配置文件/etc/awstats。相当于再执行一次以上操作


对AWStats工具Web进行访问控制

我们可以对一些网段或者IP地址进行禁止访问,这样会增加安全性
vim /etc/httpd/conf/httpd.conf #修改内容在配置文件最后
修改内容如下:
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order deny,allow #这里是拒绝在前,通过在后
deny from 192.168.100.0/24 #拒绝100网段访问AWStats的Web界面
</Directory>


重启服务验证:

service httpd restart


AWStats 日志分析系统(含源码包)

AWStats部署结束,总结如下:

  • > 理解AWStats的工作原理
  • > 在部署过程中,注意配置文件的路径
  • > 它可以监控很多服务的信息,这里只是以httpd为列,当然它是httpd最为合适的监控软件
  • > 利用crontab周期计划任务,可以有效的实时监控
  • > AWStats简化了管理员的工作量
  • > AWStats监控的面很 广如:时间精确到日、月、分、时。如:访问量,访问次数,页面浏览量,点击数,数据流量等!