Linux系列-Red Hat5平台下的LAMP网站服务搭建(二)
使用awstats分析Web日志&httpd服务的访问控制
上次我们看到了apache服务器的源码编译安装以及httpd服务的基本配置,本次接上回我们来看一下如何利用日志分析工具awstats分析Apache服务器的访问日志以及httpd服务的访问控制。
第一部分:使用awstats分析Web日志
Awstats是一个开源的日志分析工具,它使用Perl语言开发,不仅可用于分析Apache服务器的访问日志,还可以用于分析Samba、Tomcat、Squid乃至Windows系统中的IIS等网络服务的日志信息。
Awstats的软件包可发从“http://awstats.sourceforg.net”网站中下载,本次我们将以目前版本较新的6.9版本为例,介绍为上次我们搭建的虚拟网站www.zou.com添加awstats日志分析页面的过程。
1. 解压并释放awstats软件包,执行目录中的awstats_configure.pl脚本进行安装。
[root@www ~]# tar zxf awstats-6.9.tar.gz -C /usr/local/
[root@www ~]# mv /usr/local/awstats-6.9 /usr/local/awstats
[root@www ~]# cd /usr/local/awstats/tools
|
说明:执行awstats_configure.pl脚本后将会进入一个交互式的过程。在该过程中,将会检查awstats的安装目录、httpd服务的配置文件路径、日志记录格式等工作环境,需要仔细阅读提示信息并进行相关设置
下面是安装时的显示信息及解析:
[root@www tools]# ./awstats_configure.pl
. . . . . . (此处省略14行显示信息)
1>.下面选择“y”,将httpd服务的日志记录格式改为“combined”,以便记录更多详细信息
(注:以下红色字体是我们要键入或确认的信息)
-----> Check and complete web server config file '/usr/local/apache2/conf/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined' log files [y/N] ? y
. . . . . . (此处省略6行显示信息)
2>.下面选择“y”创建新的配置文件。
-----> 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
3>.定义日志分析的目标网站名称(www.zou.com).
-----> 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.zou.com
4>.定义awstats配置文件的存放目录(默认为“/etc/awstats”)。
-----> 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):
>
-----> Create config file '/etc/awstats/awstats.www.zou.com.conf'
Config file /etc/awstats/awstats.www.zou.com.conf created.
-----> Restart Web server with '/sbin/service httpd restart'
httpd: unrecognized service
5>.添加cron计划任务(安装脚本无法自动添加,提示用户需手动添加,按回车键继续)。
-----> 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.zou.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...
6>.按回车键退出安装脚本
A SIMPLE config file has been created: /etc/awstats/awstats.www.zou.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.zou.com' with command:
> perl awstats.pl -update -config=www.zou.com
You can also read your statistics for 'www.zou.com' with URL:
> http://localhost/awstats/awstats.pl?config=www.zou.com
Press ENTER to finish...
[root@www tools]#
|
2. 修改awstats.www.zou.conf配置文件
由于虚拟主机www.zou.com的访问日志做了单独设置,因此需要在awstats的配置文件中修改所要统计的日志文件的路径。查找“LogFile”配置行并修改为正确位置。
[root@www ~]# vi /etc/awstats/awstats.www.zou.com.conf
LogFile="/usr/local/apache2/logs/www.zou.com.access.log"
|
3. 创建数据库存放目录,并更新数据库。
Awstats通过awstats.pl脚本对日志进行分析,每次运行会自动将日志信息中新增的内容添加到统计数据库中。
[root@www ~]# mkdir /var/lib/awstats
[root@www ~]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update-config=www.zou.com
Create/Update database for config "/etc/awstats/awstats.www.zou.com.conf" by AWStats version 6.9 (build 1.925)
From data in log file "/usr/local/apache2/logs/www.zou.com.access.log"...
Error: Couldn't open server log file "/usr/local/apache2/logs/www.zou.com.access.log" : No such file or directory
Setup ('/etc/awstats/awstats.www.zou.com.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
[root@www ~]#
|
4. 设置cron计划任务,以便定时运行日志分析程序
[root@www ~]# crontab �Ce
* */5 * * * perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config= www.zou.com
|
5. 在网页浏览器上查看分析报告
访问网址http://www.zou.com/awstats/awstats.pl?config=www.zou.com,即可进入awstats的日志分析报告界面,按小时、日、星期、月查看网站的访问人次、网页数、文件数、字节等信息。如下图所示,够详细的吧!
使用上面的地址访问awstats页面时,我们会发现,由于需要输入的URL信息较长,不便记忆,可以自定义一个自动跳转的HTML网页,如下:
[root@www ~]# cat /usr/local/apache2/htdocs/zoucom/aw.html
<html>
<head>
<meta http-equiv=refreshcontent="0;url=http://www.zou.com/awstats/awstats.pl?
config=www.zou.com">
</head>
<body></body>
</html>
[root@www ~]#
|
现在我们在浏览器中键入地址www.zou.com/aw.html就可发自动跳转到www.zou.com/awstats/awstats.pl?config=www.zou.com页面上,如图:
第二部分:Httpd服务的访问控制
为了更好地控制客户端对Web资源的访问,Apache提供了两种基本的访问控制方式:基于用户和基于客户端地址(主机名或IP地址)。
1. 基于用户的访问控制
基于用户的访问控制包含认证和授权两个过程,认证(Authentication)是指识别用户身份的过程,授权(Authorization)是允许特定用户访问特定区域信息的过程。对服务器中特定的目录区域设定了认证之后,将只有通过认证的用户才被允许访问资源。
Apache可以使用基本认证(Basic)和摘要认证(Digest)两种方式。使用摘要认证需要在编译httpd的过程中预先配置“--enable-auth-digest”项,但并不是所有的浏览器都支持摘要认证;而基本认证是Apache的基本功能,不需要预先配置特别的选项,下面将以基本认证方式为例,对awstats日志分析页面添加用户认证。
1>.编辑httpd.conf配置文件,查找关于awstats的目录区域设置,添加认证授权设置。
[root@www ~]# vi /usr/local/apache2/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "zpp"
AuthType Basic
AuthUserFile /usr/local/awstats/wwwroot/.htpasswd
require valid-user
</Directory>
|
说明:AuthName:定义受保护的领域名称,将在弹出的认证登录对话框中显示。
AuthType:设置认证的类型,Basic为基本认证
AuthUserFile:设置用于保存用户帐号、密码的认证文件路径。
Require valid-user:授权给认证文件中的所有有效用户。
2>.创建存储认证用户帐号及口令的文件。
[root@www ~]# cd /usr/local/apache2/bin/
[root@www bin]# ./htpasswd -c /usr/local/awstats/wwwroot/.htpasswd zpp
New password:
Re-type new password:
Adding password for user zpp
[root@www bin]#
|
说明:使用htpasswd命令创建用户帐号“awuser”,并保存为.htpasswd文件。其中“-c”选项表示新建(Create)认证文件,当向已有的认证文件中添加帐号时可以省略“-c”选项。
3>.重新启动httpd服务
[root@www bin]# /usr/local/apache2/bin/apachectl restart
[root@www bin]# netstat -anpt | grep :80
tcp 0 0 :::80 :::* LISTEN 20817/httpd
[root@www bin]#
|
4>.在浏览器中验证
现在我们可以看到再次访问页面时,需要输入用户名和密码。
2. 基于客户端地址的访问控制
基于客户端地址的访问控制主要应用于目录区域“<Directory>… …</Directory>”,使用配置项“Order”、“Deny from”、“Allow from”,根据客户机的主机名或IP地址决定是否允许访问。
Ø 配置项“Order”用于定义“允许”、“拒绝”策略的处理顺序,包括两种形式。
Ø Order allow,deny:先允许后拒绝,默认拒绝所有没有被明确允许的客户端地址
Ø Order deny,allow:先拒绝后允许,默认允许或拒绝所有被明确拒绝的客户端地址。
Ø 配置项“Allow”和“Deny”用于设置允许或拒绝的客户机地址,
下面给出应用的例子
例1:允许来自任意地址的客户机访问本目录区域
Order allow ,deny
Allow from all
|
例2:除了IP地址为200.200.200.1及来自pan.com域的客户机以外,其他任意客户机均被允许访问本目录区域。
Order deny,allow
Deny from pan.com
Deny from 200.200.200.1
|
例3:仅允许来自网络192.168.0.0/24的客户机但192.168.0.100除外访问本目录区域。
Order allow,deny
Allow from 192.168.0.0/24
Deny from 192.168.0.100
|
基于客户端地址的访问控制比较简单,以上的三种用法基本可以概括一般的常见应用。本次我们就介绍到这里了,下次我们将会看到Linux系列-Red Hat5平台下的LAMP网站服务搭建(三)――安装MySQL数据库&构建PHP环境。
本文出自 “Linus” 博客,请务必保留此出处http://zpp2009.blog.51cto.com/730423/270409