iis-->odbc

利用数据库为IIS定制站点分析系统

  作为一个WEB Server管理员,经常需要针对站点Log文件进行分析,从中整理归纳出对站点的管理和发展有价值的数据。通常这项工作需要借助一些专业分析软件或者利用网上其他站点提供的分析服务功能,其实作为在Windows NT上使用最广泛的Web Server——IIS4.0,其本身就提供了详细的Log功能,并且可以使用ODBC驱动的SQL Server数据库,用数据库表代替IIS4.0的文本登录文件,将详细Log文件输入到数据库中,再利用数据库提供的强大的分析功能,完全可以根据需要编制出符合自己要求的网站分析系统,下面简要说明如何实现这一功能。

  环境:Windows NT 4.0 、IIS4.0、SQL Server 7.0。

  基本步骤:

步骤一:在SQL Server 7.0中建立一个名为InetLogDB的数据库,并添加一名为InetAdmin的用户,指定该用户为InetLogDB数据库的所有者,并设置好相关权限。
步骤二:按照IIS4.0 Log文件所要求的结构在InetLogDB数据库中添加一个表,表结构如下:
  IIS4.0登录表结构

字段名
 SQL数据类型
 字段长度
 
ClientHost
 Char
 255
 
UserName
 Char
 255
 
LogTime
 datetime
 datetime
 
Service
 Char
 255
 
Machine
 Char
 255
 
ServerIP
 Char
 255
 
ProcessingTime
 int
 Integer
 
BytesRecvd
 int
 Integer
 
BytesSend
 int
 Integer
 
ServiceStatus
 int
 Integer
 
Win32Status
 int
 Integer
 
Operation
 int
 Integer
 
Target
 Char
 255
 
Parameters
 Char
 255
 

注意:不要创建表的索引。索引会减慢新记录的追加速度,而且由索引加强的查询性能并不能影响你的WEB站点性能。
  该表可以手工创建,更简便的方法是利用logtemp.sql查询文件直接创建,该文件在安装IIS4.0时被放在inetsrv目录下。你可以使用SQL Server 7.0的Quary Analyzer工具加载logtemp.sql,并选择InetLogDB数据库,执行查询,即可生成一个名为inetlog的表。

  logtemp.sql查询文件的内容如下:

  create table inetlog (

  ClientHost varchar(255),

  username varchar(255),

  LogTime datetime,

  service varchar( 255),

  machine varchar( 255),

  serverip varchar( 50),

  processingtime int,

  bytesrecvd int,

  bytessent int,

  servicestatus int,

  win32status int,

  operation varchar( 255),

  target varchar(255),

  parameters varchar(255) )

  注意,logtemp.sql查询以varchar类型代替了固定长度的char类型,这样可以减小表的大小,但性能有所下降,应用时可根据实际情况做一些修改。

步骤三:进入ODBC数据源管理器建立一个名为“HTTPLOG”的“系统DSN”与InetLogDB数据库连接,建立时使用InetAdmin帐号。这里不再详细说明为SQL Server 7.0数据库建立ODBC数据源的过程,如有必要请查询相关资料。
步骤四:进入“Internet服务管理器”界面,选择要记录Log文件的站点,单击右键,在弹出菜单中选择“属性”,既出现如下图所示属性窗口,使“启用日志(E)”项有效,并将“活动日志格式(V)”改为“ODBC Logging ”。

按此在新窗口浏览图片

  再选择“属性(P)…”按钮,根据上面完成的各步骤填写打开的窗口表单,具体内容如下图所示。最后确定并保存所做的修改。

按此在新窗口浏览图片


  此时可以在浏览器中输入该站点的域名或IP对其进行浏览,并查看InetLogDB数据库中的inetlog表中是否有记录加入,以测试连接是否成功。

  注意,如果使用file协议浏览该站点则不会有log记录产生,当然也不会向数据库中添加记录。

步骤五:如果以上各步骤均设置无误后,就可以编写SQL查询,以返回为了分析站点而需要的各种信息。此时的数据分析已经和IIS4.0无关了,你可以使用各种方法对log记录进行分析处理,从而获得感兴趣的数据,比如什么时段访问量最大、哪个页面被访问的次数最多、用户主要来自哪些IP以及流量分析等等;甚至可以借助一些编程工具对分析结果图形化,这样你就拥有了完全适合自己要求的专业化站点分析工具了!
  顺便说一句,你也可以使用ACCESS等其他数据库来存储log记录,只要能够建立ODBC连接就行。还有,log记录的数据量是相当大的,注意定期备份及删除过期的数据,对于一些恢匾囊趁妫部梢匝≡癫患锹计淙罩尽?br>

posted on 2004-09-30 12:01  kary  阅读(582)  评论(0编辑  收藏  举报

导航