服务器 频道

用PHPMyVisites精确分析web日志(上)

    【IT168 专稿】随着互联网上Web服务的发展,几乎各个政府部门、公司、大专院校、科研院所等都在建设自己的网站。在这个过程中,大家会遇到各种各样的问题。对Web服务器的运行和访问情况进行详细和周全地分析,可以及时了解网站运行情况,发现网站存在的不足,促进网站更好地发展,它的重要性是不言而喻的。 管理Web网站不只是监视Web的速度和Web的内容传送。它不仅要关注服务器每天的吞吐量,还要了解这些Web网站的外来访问,了解网站各页面的访问情况。根据各页面的点击频率来改善网页的内容和质量,提高内容的可读性,以及跟踪包含有商业交易的步骤及管理Web网站“幕后”的数据等。

    为了更好地提供WWW服务,监控Web服务器的运行情况、了解网站内容的详细访问状况就显得越来越重要和迫切了。而这些要求都可以通过对Web服务器日志文件的统计和分析来实现。本文将对Web服务器日志分析的原理和技术进行讨论。

一、Web日志分析的原理

    网站服务器日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对日志进行统计、分析和综合,就能有效地掌握服务器的运行状况、发现和排除错误原因、了解客户访问分布等,更好地加强系统的维护和管理。 Web服务模型非常简单(见图1): 
 

图1 Web访问机制


    1.客户端(浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型、请求的URL等一系列信息。

    2. Web服务器收到请求后,将客户端要求的页面内容返回到客户端。如果出现错误,那么返回错误代码。

    3. 服务器端将访问信息和错误信息记录到日志文件里。

    日志在实际的Web系统中有更多的用途。比较典型的是进行网站的流量统计和安全分析。 在Web日志中找出攻击Web服务器的蛛丝马迹并不是非常直接的一件事,因为日志中条目繁多,哪些记录的背后隐藏着杀机呢?这需要分析访问者的源IP地址和请求的页面,猜测访问者的企图,他是在进行站点镜像还是CGI漏洞扫描,进而做有针对性的查缺补漏。 用户更关注的是Web服务器的性能,但对于商务网站来说,不能只在乎用户的感受,不能把精力全放在减少用户访问延迟和提高并发访问数目上。还要关注访问用户的地理分布、时间分布和某个页面的点击率。通过分析用户群和他们的访问行为,有助于对网站页面做出有针对性的改善,帮助商家提升网站质量,更好地为用户服务。日志可以帮你完成流量分析,给出上述关注内容的统计数字。 直接去读日志文件仅适用于查找某一特定内容的情况,更多时候,我们要借助专用的日志分析工具。比较著名的工具有:AWStats、Webalizer和PHPMyVisites等,它们都是开源软件。它们不仅可以进行简单的基于访问时间和IP地址来源的分析,还可以发现自己的网站与搜索引擎的关系。

    PHPMyVisites具有以下一些特性:phpMyVisites是一个用PHP/MySQL技术开发,采用Gnu GPL.方式发布的关于网站访问量统计的开源软件,所以其具有很高的运行效率。在主频为800Mhz的机器上,每秒钟可以分析100000条记录,所以分析一个400M大小的日志文件只需要25秒。

    4. 可以支持多种语言,也可以自己进行本地化工作。

    5. 支持多种平台,比如UNIX、linux、Windows  和 MacOS等。

    相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,PHPMyVisites的优势在于:
界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版) ,基于PHP:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了PHP后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏维护;PHPMyVisites完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。效率比较高:PHPMyVisites输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/2左右,对于一个日访问量百万级的站点,这个速度都是足够的;配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,而且修改和扩展的插件还是比较多的; 使用简单,不用再看让人头晕的Log日志, 提供柱状图分析报表,形象生动。 提供强大的IP库支持,了解访问用户地区。

二、准备工作

    首先配置一个LAMP服务器和GD软件包,后者主要用于对图像进行转换、编辑、组合、特殊处理等,是一款非常好用的图像处理工具。为了避免软件相互冲突,这里笔者使用基于的Debian发行版本APT方法添加软件,Debian GNU/Linux 是APT(Advanced Package Tool)的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。APT 除了可以让你很方便且快速地安装 RPM 软件外,你也可以用它来更新系统。虽然APT是基于Debian的软件包管理工具,但是已经被一个巴西公司Conectiva移植到基于RPM的系统上。因此对于基于RPM软件包管理的平台,如Red Hat、TurboLinux、SuSe、Mandrake等Linux发行版本,APT是一个非常优秀的软件管理工具。

    1. 为RHEL配置APT

    运行APT之前需要确认服务器上Apache 已经可以提供WWW服务,并且 /var 分区有足够的空间。
    #wget  http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/3/apt/apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm
    #wget  http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/3/apt/apt-devel-0.5.15cnc6-1.1.fc3.fr.i386.rpm
    #rpm -ivh apt-devel-0.5.15cnc6-1.1.fc3.fr.i386.rpm
    #rpm -ivh apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm
    接着需要加入freshrpms.net的公共钥匙GPG-KEY, 然后在/etc/apt下建立一个/gpg文件夹,将GPG-KEY保存在那里,以便日后管理。
    # rpm --import http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY
    安装图形前端 ,freshrpms.net站点提供了一个图形界面的apt-rpm接口Synaptic,使用图形界面的apt更加方便,可以直接利用apt安装Synaptic:
# apt-get install synaptic

    在几行提示之后Synaptic就安装好了,进入Xwindow后,Synaptic会出现在“系统设置”菜单里面。界面见图2。 
 

图2 APT图形化前端Synaptic

    APT系统主要包括:
点击看大图

    其中用户使用最多的就是apt-get命令。
    #apt-get install gd
    重新启动Apache服务器后运行phpinfo()来检查一下新的设置是否生效了。如果出现如下选项,见图3。
 
图3 GD库配置界面

    在下一篇文章中,与大家分享如何安装以及使用PHPMyVisites,敬请关注(未完待续)

0
相关文章