透明日志系统

透明日志系统

一、本文主要目的是交流和共享思路,仅提供文章相关内容的试用版本,不提供软件源代码。由于试用版本包含JRE环境,程序比较大,无法通过本站上传,有兴趣的朋友可以到公司网站下载 软件下载

二、正确使用网络抓包技术,可以为服务器管理、业务管理带来极大的方便;

三、本文围绕HTTP访问抓包、抓包分析,说明日志系统建立、以及日志系统的重要意义。

网站做为互联网应用中信息发布、信息共享、在线服务、在线交易的重要平台,其访问情况历来受到关注。网站访问统计分析系统已经从最早的计数器,发展到今天的访问者来源统计、访问者兴趣分析等内容,不仅仅关注量的统计,而是越来越向电子商务发展提供支持。

分析系统实现技术包括计数器基础上发展的嵌入式分析代码、针对日志的统计分析系统等等。本文阐述采用网络抓包技术实现web访问日志的建立、以及针对日志的分析。

TCP是互联网的重要传输协议,也是一种透明的传输协议,通过抓取TCP网络包、分析报数据,可以完整记录访问过程和访问内容。通过TCP实现数据传输,首先客户端与服务器之间要建立“握手”,在握手建立后,客户方发送申请内容,接着务器端传输回复内容,最后,服务器端发出传输完成指示,客户端确认和发出关闭连接指示。当然,上述过程中,还包括双方对接收数据的确认。另外,如果传输过程中有错误发生,还需要发送控制包,申请重新传输数据。

通过对协议传输过程的了解,我们可以建立比较完善的日志系统,记录服务器的活动情况、分析访问过程中出现的错误、网络流量、访问者的IP等等。

如果目标是建立统计分析系统,我们就需要对协议包内容进行进一步分析,提取关心的内容,舍弃不需要的信息。下面几种信息对统计分析有着重要的意义:

1、访问者的IP。访问者的IP可以通过TCP,简单获取。

2、访问页面。访问页面我们需要首先找到客户端发出的申请报文,分析报文内容,提取HTTP的头文件,头文件中包含了访问页面、内容格式等等信息。例子如下:
GET /product/TWebLog.htm HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: ndweb.9966.org
Connection: Keep-Alive

根据上述头文件,我们可以知道本次访问页面:http://ndweb.9966.org/product/TWebLog.htm,我们还可以分析其它信息。对于头文件的分析,完全遵循HTTP规范。

3、访问者确定。仅仅凭IP还无法确定一个独立的访问者,因为一个单位中所有上网机器的IP都是同一个公网IP,所以还要根据网站cookie等设置,结合头文件进一步确定。

4、服务器响应信息。客户发出的申请,服务器获取后,要检查资源,返回申请内容。如果申请资源不存在时,还要返回错误。所以,下面我们必须分析针对本次申请的响应,来进一步了解访问全过程。返回信息的头文件如下:
HTTP/1.1 200 OK
ETag: W/"10404-1211260862000"
Last-Modified: Tue, 20 May 2008 05:21:02 GMT
Content-Type: text/html
Content-Length: 10404
Date: Tue, 20 May 2008 05:21:32 GMT
Server: Apache-Coyote/1.1

根据上述头文件,我们知道HTTP的响应代码是200,代表成功。

通过上述过程的说明,我们可以比较清楚地掌握日志以及围绕统计需要分析获取的内容。当然,完整的统计分析系统还有很多辅助内容,如IP来源等等。

采用抓包技术建立日志,以及统计分析系统,优势明显:

透明性:独立于服务器,既不需要修改服务器的任何配置,也不需要读取服务器的任何输出记录。

全面性:能够全面诊断系统访问情况显示,能够诊断网站被索引服务访问情况、能够诊断网页链接错误情况。

实时性:实时监测访问,及时生成查询数据。

灵活部署:既可以和服务器部署在同一台机器,又可以部署到网关服务器上。

猜你喜欢

转载自nuoda.iteye.com/blog/197412