您的位置:首页 > 编程语言 > PHP开发

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

2010-04-18 20:18 363 查看
http://linux.chinaunix.net/techdoc/develop/2008/07/10/1016258.shtml

来源: ChinaUnix博客  日期: 2008.07.10 16:48 (共有0条评论) 我要评论
为了更好地提供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
phpmyvisites的官方网站是:http://www.phpmyvisites.net/ 最新版本:2.1。
1. phpmyvisites软件下载:
#cd var/www/html
wegt http://www.phpmyvisites.net/index.php?part=download&lg=en #unzip phpmyvisites_2_1.zip “建立一个目录”
#mv phpmyvisites_2 phpmy2
2.为phpmy2建立数据库:
# mysql –u root –p
Enter password: xxxxxxxxx
Your Mysql connection id is 3 to server version: 4.11
Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.
Mysql> create database phpmy2 ; “为phpbb2建立数据库”
Query OK, 1 row affected (0.01 sec)
Mysql>grant all privileges on phpmyv2.* to phpmy2@localhost identified by‘76543981’ ; “将建立的 bblog 权限给bblog 帐号,并且设定密码”
mysql>quit
Bye
3.开始安装phpmyvisites :
安装前需要说明的是:Mysql服务器名称为 localhost ,这个是 Mysql 的服务器名称,不是 Linux服务器名称。通常 Mysql 的服务器名称是: localhost 。Mysql 数据库名称为 phpmy2 ,Mysql 帐号为 phpmy2 且密码为上面设定值。
#cd /var/www/html/phpmy2 “进入到Apache 服务器的确省目录中”
#chmod 777 install #赋予安装文件和目录的可以执行权限#
4.网络安装设定:
网络安装一共九个步骤:
1. Welcome! :欢迎设定语言。
2. System Requirements :系统要求自动检测。
3. Database Setup :mysql数据库设定。
4. Table creation :数据库表设定。
5. General Setup:通用设定:包括管理员账户设定。
6. Create Config File :生成配置文件。
7. Add First Website :首页显示设定。
8. Display Javascript code :javascript代码设定。
9. Finished!:安装结束。
下面具体述之。
设定语言
网络安装非常简单,打开Linux的Firefox火狐浏览器在地址栏直接输入:http://主机名/phpmy2/install/ install.php 后,首先是语言设定,选择Simplified Chinese即可见图4。



图4 安装首页和管理员页面语言设定
System Requirements :系统检测。
系统会自动检测Mysql、php、GD库是否设定完成,所有选项显示绿色表示通过。
mysql数据库设定。第3部分(Step 3)最为关键,见图5.



图5 mysql数据库设定界面
Database Setup :数据库表设定,选择确省设置即可。
General Setup:常规设定,主要设定管理员登录密码和管理员电子邮件等,见图6.



图6 管理员登录密码设定
Create Config File :生成配置文件。选择确省设置即可。
Add First Website :首页显示设定,请根据爱好设定。
Display Javascript code :javascript代码设定。选择确省设置即可。
Finished! :安装结束。系统如果出现图7表示安装成功。



图7 网络设定成功页面
测试成功后系统提醒你出于安全考虑,删除安装文件(防止他人使用这些文件修改系统信息),
# rm –rf install ;# rm –rf install.Php
管理员登录首页 用鼠标点击,图7页面的琏接:Go to phpmyvisites,然后使用管理员权限和密码登录首页即可。首页界面见图8.



图8 PHPMyVisites首页
图9是管理员控制面板



图9 管理员控制面板
PHPMyVisites可以分析下列信息:
访问情况统计
时间段汇总
图示统计汇总
Graph to show long term statistics summary 图示某时间段内访问者的访问量
图示每小时服务器访问量
图示每小时访问者访问量
Frequency
统计
New vs Returning visits
Graph to show New vs Returning visits
Graph to show number of visits per visitor
浏览页
页浏览
Time by page
图示每页访问量
访问轨迹
入口页
退出页
Single Pages visits
访问来源
世界地图
访问国家汇总
Internet服务提供商
PHPMyVisites可以进行网站流量分析。通常说的网站流量(traffic)是指网站的访问量,是用来描述访问一个网站的用户数量以及用户所浏览的网页数量等指标,常用的统计指标包括网站的独立用户数量、总用户数量(含重复访问者)、网页浏览数量、每个用户的页面浏览数量、用户在网站的平均停留时间等。网站访问统计分析的基础是获取网站流量的基本数据,这些数据大致可以分为三类,每类包含若干数量的统计指标。
  (1)网站流量指标
  网站流量统计指标常用来对网站效果进行评价,主要指标包括:
独立访问者数量(unique visitors);
  重复访问者数量(repeat visitors)
  页面浏览数(page views);
  每个访问者的页面浏览数(Page Views per user);
  某些具体文件/页面的统计指标,如页面显示次数、文件下载次数等。
  (2)用户行为指标
  用户行为指标主要反映用户是如何来到网站的、在网站上停留了多长时间、访问了那些页面等,主要的统计指标包括:
  用户在网站的停留时间;
  用户来源网站(也叫“引导网站”);
  用户所使用的搜索引擎及其关键词;
  在不同时段的用户访问量情况等。
  (3)用户浏览网站的方式
  用户浏览网站的方式相关统计指标主要包括:
  用户上网设备类型;
  用户浏览器的名称和版本;
  访问者电脑分辨率显示模式;
  用户所使用的操作系统名称和版本;
  用户所在地理区域分布状况等。
图10是PHPMyVisites工作界面,从 图10的显示中可以查看操作系统比例。



图10 使用PHPMyVisites查看操作系统比例
四、安全使用PHPMyVisites
PHPMyVisites可以监测的数据非常丰富,不过﹐由于PHPMyVisites本质上是嗅探器,是一把双刃剑﹐如何保护这些信息只能给授权的人士获得﹐将变得额外重要。进行web访问认证步骤:缺省情况下,编译Apache时自动加入mod_auth模块,利用此模块可以实现“用户名+密码”以文本文件为存储方式的认证功能。
  1.修改Apache的配置文件/usr/local/apache/conf/httpd.conf,对认证资源所在的目录设定配置命令。
下例是对/usr/local/apache/htdocs/PHPMyVisites目录的配置:
  <Directory /usr/local/apache/htdocs/PHPMyVisites>
  Options Indexes FollowSymLinks
  allowoverride authconfig #表示允许对/usr/local/apache/htdocs/PHPMyVisites目录下的文件进行用户认证#
  order allow,deny
  allow from all
  </Directory>
  2.在限制访问的目录/usr/local/apache/htdocs/PHPMyVisites下建立一个文件.htaccess,其内容如下:
  AuthName ""
  AuthType basic
  AuthUserFile/usr/local/apache/PHPMyVisites.txt
  require PHPMyVisites #PHPMyVisites用户可以访问#
  3.利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件:/usr/local/apache/PHPMyVisites.txt,每行内容格式为“用户名:密码”。
  #cd /usr/local/apache/bin
  #htpasswd -bc ../PHPMyVisites.txt user1 234xyx14
    欲了解htpasswd程序的帮助,请执行htpasswd –h
4.重新启动Apache服务器

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/28814/showart_1077926.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: