在Windows7上配置管理IIS日志记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows7上配置管理IIS日志记录相关的知识,希望对你有一定的参考价值。

参考技术A

  不仅仅是日志的格式,还是其他的一些可选项上,操作系统管理员有了更多的选择。如下图所示,就是IIS日志记录配置管理的基本页面。

  在Windows7操作系统中,IIS日志记录应该视为ISS所必需的而不是可选的组件。这主要是因为日志文件对于管理IIS服务器来说具有很关键的作用。如在这个IIS服务器在受到安全威胁的情况下,可以利用日志文件并对其中包含的内在细节执行排疑式审查。如到IIS服务器发生故障后也可以利用这个日志文件中所记录的信息来检查维护过程并识别系统中的问题。笔者这里就给大家介绍一下Windows7操作系统中IIS日志记录相比Windows2003操作系统的一些新特性,并帮助大家部署一种得心应手的日志管理模式。

   一、选择合适的日志记录级别。

  在IIS7.0版本中,系统管理员可以根据自己的需要选择合适的日志记录级别。如可以在服务器级别上进行日志记录管理,也可以在网站、WEB应用程序文件或者目录级别上实现它。具体要在那个级别上实现,主要看系统管理员的需要。不过需要注意的是,其实现级别的不同,所支持的日志文件格式也是不同的。如在“服务器”级别实现的话,其支持的日志格式就只有两种,分别为“W3C”格式与二进制格式。而如果选择“网站”级别上实现日志管理的话,则其支持的日志格式有三种,分别为IIS、NCSA、W3C格式。而且系统管理员如果觉得这些格式还不满足的话,可以通过“自定义”的方式来自定义自己需要的格式。所以在选择日志记录级别的时候,除了需要考虑在什么级别上进行日志管理比较方便与安全,同时还需要结合自己喜欢的日志格式。笔者个人喜欢在网站级别上对日志进行管理。因为在一台服务器上,如果只部署IIS服务的话,可能比较浪费。也就是说,在同一台服务器上可能有多个应用服务。为了跟其他应用服务与服务器操作系统的日志区分开来,笔者就建议大家在网站级别上进行管理。当然,在哪个级别上进行日志管理,对于日志的内容没有实际性的差异。主要是看服务器的部署以及系统管理员的工作习惯而定。

   二、为日志记录选择合适的格式。

  如果选择网站级别来管理日志的话,这个日志的格式有多种选择。最重要的是,系统管理员可以选择IIS的日志记录格式。这个IIS日志记录格式是基于文本的日志记录。跟W3C日志记录格式类似,都是通过HTTP.SYS来控制的。不过这个IIS日志记录格式是一个核心模式过程。而以前的日志记录都是通过用户模式来管理的。两者之间有比较大的变化。超文本传输协议侦听程序被实现为名为 HTTP.SYS的内核模式设备驱动程序。HTTP.SYS 是 Windows 网络子系统的一个重要组成部分。在以前的版本中,当在 IIS 中创建网站时,使用 HTTP.SYS注册站点,然后HTTP.SYS将 Web 请求传送到正在运行网站的用户模式进程中。同时HTTP.SYS也将响应送回客户端。除了从其内部缓存中检索存储的响应以外,HTTP.SYS并不处理它所接收到的请求。因此,应用程序特定代码永远不会加载到内核模式中。但是有些系统管理员希望HTTP.SYS能够以核心模式运行。此时就需要采用IIS日志格式。另外IIS是基于文本的日志记录,跟二进制格式的日志记录不同,直接可以通过文本浏览器等工具来查看日志信息。所以阅读起来也更加的方便。

  当然,日志文件的格式不同,其所存储的内容都是相同的。所以日志文件的格式并不会影响日志的实际管理价值。不过为了日后管理维护的方便,笔者建立系统管理员最好还是根据自己的工作习惯来选择合适的日志格式。

   三、选择合适的编码格式。

  一般情况下,IIS日志文件的编码格式有两种,分别为UTF-8与ANSI两种格式。在所有的字符集中,虽然ANSI比较有名。但是这个编码格式可以说是专门为英文所设计的。用来存储其他的语言时会出现乱码的情况。如对于汉语就支持的不是很好。为了解决这个问题,特意提出了一种新的编码格式,即UTF-8。这是一种UNICODEd 一种变长字符编码。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。UTF-8编码可以通过屏蔽位和移位操作快速读写。字符串比较时strcmp()和wcscmp()的返回结果相同,因此使排序变得更加容易。字节FF和FE在UTF-8编码中永远不会出现,因此他们可以用来表明UTF-16或UTF-32文本。 UTF-8 是字节顺序无关的.。它的字节顺序在所有系统中都是一样的。

  这些字符集的格式对于某些系统管理员来说可能有点深奥。其实系统管理员也不需要了解的这么清楚。只需要明白一个原则。即如果日志中显示的如果都是英文的话,那么采用ANSI编码格式也不会有问题。但是如果日志中还会存在其他语言的话,则可能会出现乱码。为此笔者建议,还是采用UTF-8的编码格式为好。毕竟,其对于英文的支持力度也是很好的。为此还不如一劳永逸的将其设置为UTF-8格式为好。免得以后再日志阅读中遇到乱码的烦恼。

   四、选择合适的日志文件滚动更新机制。

  如果将IIS的日志记录都保存在一个文件中,显然文件会很长。到时候,查看记录的时候,会很麻烦。为此最好能够将日志文件进行分割,分割成一个个小文件。这方便与后续的查询与阅读。在Windows7操作系统的IIS日志中,提供了很多的日志文件滚动更新的方法。如可以根据时间来创建新的日志文件。如可以按天、按周或者按月来实现日志文件的滚动更新。一般情况下,按月来更新即可。如果IIS服务器访问比较频繁,也可以适当缩短这个日志文件滚动更新的时间间隔。如可以将时间间隔调整为一周或者一天等等。这个时间间隔到底多少为好,主要是看其记录的数量。如果日志记录数量多的话,那么可以适当缩短时间。相反,如果日志记录数量不是很多的话,则可以以月为单位建立新的日志文件。

  除了可以根据时间来建立新的日志文件之外,还可以根据日志文件的大小来创建新的日志文件。在IIS日志管理器中可以选择“最大文件大小”。然后输入一个合适的尺寸。如此的话,当这个日志文件达到指定的大小之后,系统就会自动对其进行日志切换。不过笔者并不赞同采用这种方法。虽然其可以将重做日志文件控制在一个合理的大小内,但是其会打破其内在的时间联系。到时候,在遇到问题时查询起来会非常的不方便。故笔者还是建立按时间来对重做日志文件进行分割。

  另外管理器还提供另一个有用的选项,即是否要将本地时间用户文件命名与翻滚。这是一个很有用途的选项。选中这个选项后,在系统自动建立的日志文件中就会反映这个时间信息。这对于系统管理员来查找日志文件,能够提供很大的帮助。特别是如果按文件大小来分割重做日志文件的话,一定要选中这个选项,以方便后续的查找。

如何查看及分析网站IIS日志文件

  1、进入服务器的管理之后,打开“Internet 信息服务(IIS)管理器”,

  2、双击信息服务(IIS)管理器,进入管理以后打开信息服务(IIS)管理器,选中要查看的网站,在网站栏目那里右键单击,选择“属性”,

  3、在弹出的窗口里面,点击“网站”栏目,查看日志记录中的“属性”,

  4、通过日志记录属性栏目,即可看到日志文件目录了,

  上面的日志文件目录即是iis的文件存放位置了,IIS日志文件便在C:\\WINDOWS\\system32\\LogFiles\\文件夹内。
  IIS日志文件存储格式是后缀名为log的文本文件,如下面这些文件就是网站的iis日志了。

  要查看对应站点的IIS日志,只需要打开对应IIS日志文件夹找到相对应日志文件即可,也可借助IIS日志分析工具提供查看IIS日志的效率!
  三、如何分析IIS日志?
  知道了IIS日志的位置了,也看到了IIS日志的文件了,接下来我们就应该对日志文件进行分析了,那么,我们该如果分析IIS日志呢?
  1、如何查看IIS日志信息
  IIS日志可以用IIS日志分析工具去大概的去查一查,一般工具都能查出有各种蜘蛛来到网站的总数,以及有没有失败,不会把各种的信息都给你,工具分析只是简单的告诉你一个概况,马海祥在此就拿出一条信息来为大家具体的分析一下,如下面的截图所示:

  我们可以分段对这个IIS日志进行分析:
  2010-10-22 05:04:53 表示的是时间;
  W3SVC151800 P-0YMR9WW8YX4U9是机器编号;
  222.76.213.49为网站的IP;
  GET是触发事件;
  80是端口号;
  61.135.186.49是搜索引擎蜘蛛的IP;
  Baiduspider是百度的蜘蛛(另外,谷歌蜘蛛:Googlebot;360搜索蜘蛛:360Spider,更多的可查看马海祥博客《解读iis日志中搜索引擎蜘蛛名称代码及爬寻返回代码》的相关介绍);
  200 0 0是访问成功的返回代码;
  41786 193 6968是蜘蛛与网站对话的时间与下载的数据以及花了多少时间。
  连在一起就是2010.10.22的早上5点4分53秒的时候一个编号为W3SVC151800 P-0YMR9WW8YX4U9的蜘蛛通过80端口进入网站成功访问并下载了47186B的数据,花费了193MS。
  2、用excel表格分析网站的iis日志
  先新建一个excel表格,把刚才的ex121129.log文件里的文件粘贴到新建的excel表格里面,,如下图所示:

  复制之后,选定A,在工具栏里选择数据→分列,如下图所示:

  选择分隔符号,点击下一步:

  选择空格,去掉Tab键前面的钩,点击完成,如下图所示:

  网站的iis日志就这样被拆分出来了,之后自己再调整一下表格的列宽、升降序等即可。
  四、详解IIS日志参数
  一般情况下,IIS日志文件代码格式如下所示:
  #Software: Microsoft Internet Information Services 6.0
  #Version: 1.0
  #Date: 2009-11-26 06:14:21
  #Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
  2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 123.125.66.130 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
  2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 220.181.7.116 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
  在此,马海祥也为大家详细的解说一下IIS日志参数:
  date:发出请求时候的日期。
  time:发出请求时候的时间,注意:默认情况下这个时间是格林威治时间,比我们的北京时间晚8个小时,下面有说明。
  c-ip:客户端IP地址。
  cs-username:用户名,访问服务器的已经过验证用户的名称,匿名用户用连接符-表示。
  s-sitename:服务名,记录当记录事件运行于客户端上的Internet服务的名称和实例的编号。
  s-computername:服务器的名称。
  s-ip:服务器的IP地址。
  s-port:为服务配置的服务器端口号。
  cs-method:请求中使用的HTTP方法,GET/POST。
  cs-uri-stem:URI资源,记录做为操作目标的统一资源标识符(URI),即访问的页面文件。
  cs-uri-query:URI查询,记录客户尝试执行的查询,只有动态页面需要URI查询,如果有则记录,没有则以连接符-表示,即访问网址的附带参数。
  sc-status:协议状态,记录HTTP状态代码,200表示成功,403表示没有权限,404表示找不到该页面,具体说明在下面。
  sc-substatus:协议子状态,记录HTTP子状态代码。
  sc-win32-status:Win32状态,记录Windows状态代码。
  sc-bytes:服务器发送的字节数。
  cs-bytes:服务器接受的字节数。
  time-taken:记录操作所花费的时间,单位是毫秒。
  cs-version:记录客户端使用的协议版本,HTTP或者FTP。
  cs-host:记录主机头名称,没有的话以连接符-表示。马海祥提醒大家注意:为网站配置的主机名可能会以不同的方式出现在日志文件中,原因是HTTP.sys使用Punycode编码格式来记录主机名。
  cs(User-Agent):用户代理,客户端浏览器、操作系统等情况。
  cs(Cookie):记录发送或者接受的Cookies内容,没有的话则以连接符-表示。
  cs(Referer):引用站点,即访问来源。
  五、搜索引擎蜘蛛爬寻返回代码
  HTTP协议状态码的含义,协议状态sc-status,是服务器日记扩展属性的一项,下面是各状态码含义:
  "100" :Continue,客户必须继续发出请求。
  "101" :witching Protocols,客户要求服务器根据请求转换HTTP协议版本。
  "200" :OK,交易成功。
  "201" :Created,提示知道新文件的URL。
  "202" :Accepted,接受和处理、但处理未完成。
  "203" :Non-Authoritative Information,返回信息不确定或不完整。
  "204" :No Content,请求收到,但返回信息为空。
  "205" :Reset Content,服务器完成了请求,用户代理必须复位当前已经浏览过的文件。
  "206" :Partial Content,服务器已经完成了部分用户的GET请求。
  "300" :Multiple Choices,请求的资源可在多处得到。
  "301" :Moved Permanently,删除请求数据。
  "302" :Found,在其他地址发现了请求数据。
  "303" :See Other,建议客户访问其他URL或访问方式。
  "304" :Not Modified,客户端已经执行了GET,但文件未变化。
  "305" :Use Proxy,求的资源必须从服务器指定的地址得到。
  "306" :前一版本HTTP中使用的代码,现行版本中不再使用。
  "307" :Temporary Redirect,申明请求的资源临时性删除。
  "400" :Bad Request,错误请求,如语法错误。
  "401" :Unauthorized,请求授权失败。
  "402" :Payment Required,保留有效ChargeTo头响应。
  "403" :Forbidden,请求不答应(具体可查看马海祥博客《403 Forbidden错误的原因和解决方法》的相关介绍)。
  "404" :Not Found,没有发现文件、查询或URl(具体可查看马海祥博客《404 Not Found错误页面的解决方法和注意事项》的相关介绍)。
  "405" :Method Not Allowed,用户在Request-Line字段定义的方法不答应。
  "406" :Not Acceptable,根据用户发送的Accept拖,请求资源不可访问。
  "407" :Proxy Authentication Required,类似401,用户必须首先在代理服务器上得到授权。
  "408" :Request Time-out,客户端没有在用户指定的饿时间内完成请求。
  "409" :Conflict,对当前资源状态,请求不能完成。
  "410" :Gone,服务器上不再有此资源且无进一步的参考地址。
  "411" :Length Required,服务器拒绝用户定义的Content-Length属性请求。
  "412" :Precondition Failed,一个或多个请求头字段在当前请求中错误。
  "413" :Request Entity Too Large,请求的资源大于服务器答应的大小。
  "414" :Request-URI Too Large,请求的资源URL长于服务器答应的长度。
  "415" :Unsupported Media Type,请求资源不支持请求项目格式。
  "416" :Requested range not satisfiable,请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段。
  "417" :Expectation Failed,服务器不满足请求Expect头字段指定的期望值,假如是代理服务器。
  "500" :Internal Server Error,服务器产生内部错误。
  "501" :Not Implemented,服务器不支持请求的函数。
  "502" :Bad Gateway,服务器暂时不可用,有时是为了防止发生系统过载。
  "503" :Service Unavailable,服务器过载或暂停维修。
  "504" :Gateway Time-out,关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长。
  "505" :HTTP Version not supported,服务器不支持或拒绝支请求头中指定的HTTP版本。
参考技术A

第一种方法:

1、登录你的网站空间,ISS日志下载地址:如图:

点击下载WWW日志下载,进入下载

第二种方法:

通过ftp登陆到网站空间,找到根目录下的LogFiles这个文件夹,然后把里面的日志文件通过ftp下载下来。

网站日志分析要注意404、500这样的代码,

"404" :Not Found,没有发现文件、查询或URl

"500" :Internal Server Error,服务器产生内部错误。

出现这两种代码对网站的优化不利。

参考技术B 1.进入服务器的管理之后,打开“Internet 信息服务(IIS)管理器”

2.进入管理以后打开服务器(本地计算机)

3.双击服务器(本地计算机),在网站栏目那里右键单击选择属性。

在弹出的窗口里面,网站栏目点击属性

上面的日志文件目录即是iis的文件存放位置了,在C:\WINDOWS\system32\LogFiles\W3SVC20110218打开文件夹。

这些文件就是网站的iis日志了。
知道了IIS日志的位置了,接下来我们就应该对日志文件进行分析了,那么如果分析呢?
1. IIS日志后可以用IIS日志分析工具去大概的去查一查IIS日志。一般工具都能查出有各种蜘蛛来到网站的总数,以及有没有失败,不会把各种的信息都给你。并不是工具分析没有出现失败的我们就不用一条一条看了,工具分析只是简单的告诉你有没有失败,没有失败当然是皆大欢喜了,但是来是一条一条的去分析。我们拿出这样子的一条信息来分析一下

首先是时间:2010-10-22 05:04:53 机器编号为W3SVC151800 P-0YMR9WW8YX4U9 222.76.213.49是网站的IP GET是触发事件, 80是端口号,61.135.186.49是蜘蛛的IP,Baiduspider是百度的蜘蛛,200 0 0访问成功, 41786 193 6968 是蜘蛛与网站对话的时间与下载的数据以及花了多少时间。连在一起就是2010.10.22的早上5点4分53秒的时候一个编号为W3SVC151800 P-0YMR9WW8YX4U9的蜘蛛通过80端口进入网站成功访问并下载了47186B的数据,花费了193MS。
百度的蜘蛛名字:Baiduspider、google蜘蛛名字:googlebot 、有道的蜘蛛名字:YoudaoBot、yahoo的蜘蛛的名字:slurp。

IIS日志基本上都是这样子的,区别在于上面那个是成功抓取:200 0 0
一下是FTTP状态码:
404(未找到)服务器找不到请求的页面
304 (未修改)自从上次请求后,请求的页面未修改过,服务器返回此响应时,不会返回网页内容
503 (服务不可用)服务器目前无法使用(由于超时或停机维护)
301 永久重定向
302 临时重定向
基本上我们要了解的就是这些FTTP状态码,如果你的网站出现了404,那你就要立刻用robots进行屏蔽,404是死链接,如果出现了404的话搜索引擎会认为你欺骗用户,会对你作出处罚。大面积出现304的话那就要注意了,网站没有更新,一二条关系不大,但是多了就会让搜索引擎认为你网站没有人管理,时间长了就会导致网站快照不更新,关键词的波动;出现了503是你无法解决的,你就要找服务器供应商。如果是连续同一时间出现503的时候我建议你去换一个服务器,因为他在那个时候判断服务器导致蜘蛛进不去,蜘蛛不能进你的网站,搜索就不会了解,就会降低信任度,降权也随之开始了。301是永久重定向,是网站改换了使用的,可以从这里判断你的301做的怎么样,成功了没有。302临时的重定向,当做策划什么活动的时候可以使用。
2. 用excel表格分析网站的iis日志。
先新建一个excel表格,把刚才的ex121129.log文件里的文件粘贴到新建的excel表格里面。

复制之后,选定A

在上面的工具栏里选择数据→分列

选择分隔符号,点击下一步

选择空格,去掉Tab键前面的钩,点击完成。

网站的iis日志就这样被拆分出来了,之后自己再调整一下表格的列宽、升降序等即可。

以上是关于在Windows7上配置管理IIS日志记录的主要内容,如果未能解决你的问题,请参考以下文章

在Windows Server 中IIS6.0配置网站日志记录

怎样查看IIS日志记录?

ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面

[转]IIS 日志记录时间和实际时间 不一样

Elmah 适用于 localhost,但不适用于生产?

windows2008查看修改ip日志