ABCDV网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 829|回复: 0

我的网站我做主---网站IIS日志的分析

[复制链接]
发表于 2005-3-31 11:06:10 | 显示全部楼层 |阅读模式
我的网站我做主---网站IIS日志的分析
     
     现在是网络时代了,不少朋友都拥有了自己的个人网站啊,个人主页什么的,很多人问我如何统计个人网站的流量,其实这个问题很简单的。使用IIS服务器的网站,如果启动IIS的LOG日志记录,每一个网站每一天都会有一个日志生成,这个日志详细地记录了所有访问您的网站的记录,本人是在时代互联 http://now.net.cn 购买的空间,他们空间已经自带了IIS的日志分析系统,查询很方便的,有需要的朋友可以去他们的网站了解一下。
     
    以下是其中一段:
    ex050104.log
    #Software: Microsoft Internet Information Services 6.0
    #Version: 1.0
    #Date: 2005-01-03 16:00:00
    #Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken
     
    2005-01-01 16:02:06 POST /searchout.asp - 70.25.29.53 http://www.test.com/ 200 18058 653 17312
    2005-01-01 16:02:21 GET /images/cd-01_07.gif - 70.25.29.53 http://www.test.com/Enterprise/d ... 186 304 214 464 750
    2005-01-01 16:02:22 GET /Enterprise/detail.asp id=1612186 70.25.29.53 http://www.test.com/searchout.asp 200 17735 369 4656
     
    我们可以看到,在LOG日志里面的最顶头有一些相关说明,记录开始时间,以及将要记录哪些信息。
    比如#Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken
    其中
    date表示记录访问日期;
    time访问时间;
    cs-method表示访问方法,常见的有两种,一是GET,就是平常我们打开一个URL访问的动作,二是POST,提交表单时的动作;
    cs-uri-stem就是访问哪一个文件;
    cs-uri-query是指访问地址的附带参数,如asp文件?后面的字符串id=12等等,如果没有参数则用-表示;
    c-ip访问者IP;
    cs(Referer)访问来源;
    sc-status状态,200表示成功,403表示没有权限,404表示打不到该页面,500表示程序有错;
    sc-bytes服务端传送到客户端的字节大小;
    cs-bytes客户端传送到服务端的字节大小;
    time-taken处理时间。
     
    利用上面IIS的LOG日志,可以做如下用途:
     
    一、网站访问统计:
     
    通过对上面两行的记录,我们可以得知,每当有一个访问,都会相应的有一个记录,为新的一行,统计这些记录,就可以得到一个准确的统计数字了。
    需要注意的地方:LOG日志会把每一次浏览都详细记录,包括如index.asp文件里面的logo.gif等等图片都记录为新的一行。也就是说如果一个页面里面如果使用了10张图片,那同时也会有10个记录产生。如果注意到了这一点,我们就可以做一个更加准确的统计就是过滤文件后缀名了。
    使用程序来分析这些统计会快速准确的多,一个程序的例子如下(C#):
    int count=0;
    public void logparse(){
     StreamReader sr = new SteamReader("ex050104.log");
     string line="";
     
     while((line=sr.ReadLine())!=null){
     DoParse(line);
     }
    }
    private void DoParse(string line){
     this.count++;
    }
    上面的就是一个最简单的统计日志的行数的程序。
     
    如果要做详细的分析,如:要统计下载量,也就是sc-bytes的总值,就可以做如下改动:
    int downbytes=0;
    private void DoParse(string line){
     string[] linearr = line.Split(' ');//将一行记录以空格分割开来.
     int bytes = Convert.ToInt32(linearr[8]); //前提是知道一行记录里面字段的位置
     downbytes += bytes;
     this.count++;
    }
    注意日志记录的传送的是以字节记录的,而不是K。
    同样的道理可以分析页面运行的总时间,等等。
     
    分析点击统计量与来访IP数的区别:一个来访者,可能会在网站上访问多个页面,那就会有多个记录是同一个IP的。那统计那些不重复的IP访问记录,就是来访IP数了。
    怎样不统计那些重复的IP呢?下面只是其中一种方案:
    private void IPParse(string ip){
     Hashtable iphash = new Hashtable();//使用Hashtable来保存
     if(iphash.ContainsKey(ip)){ //如果已经存在,就加1
     iphash[ip]=(int)iphash[ip]+1;
     }else{
     iphash.Add(ip,0); //如果没有则新添加
     }
    }
    这样就可以不统计重复的IP,也可以统计同一个IP访问的次数。
    统计访问来源可以使用同上的方法,就可以得到不重复的来源统计了。
     
     
    二、分析网站的结构:
     
    1、首先站长可能比较关心的一点是,到底我的网站里哪一个页面被人点击得最多,同样可以使用IIS的LOG日志来分析,主要分析cs-uri-stem这一字段。
    和分析重复的IP和来源一样,可以统计某一页面的点击量。
     
    2、分析网站页面出错的页面,主要针对sc-status
    分析主要有哪些页面出错,对网站进一步了解。
     
    3、分析网站页面的运行时间,主要针对time-taken,可以确定自己的哪一个程序写得不好,导致访问时间过长。
     
    通过IIS的日志文件可以得到一些我们网站制作者想要的信息,可以进一步检查自己的网站的不足。
    网站统计说到底也就是这么简单,无非就是对日志文件每一行进行简单的统计而已。分析日志文件,您自己也可以做网站统计分析了。有兴趣建立网站的朋友可以登陆时代互联的网站(now.net.cn),他们的空间是提供试用的,速度,功能、稳定上都可以说是一流的,特别是他们前段时间推出的时代互联 Global CDN全球网络镜像及加速引擎,解决了影响互联网传输性能的“第一公里”和“网间互联瓶颈”等各个环节的问题,从而实现跨地区、跨运营商网络加速服务。现购他们的空间都可以送Global CDN网络加速器,具体的可以上他们的网站了解: http://now.net.cn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|ABCDV网站,版权所有:北京佳景时代文化有限公司 ( 京ICP备19037940号-1 |||| 京公网安备11010802012322 |||| 工信查询网址: https://www.beian.miit.gov.cn )

GMT+8, 2025-12-16 10:12 , Processed in 0.069218 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表