Windows 7中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 是字节顺序无关的 。它的字节顺序在所有系统中都是一样的 。

推荐阅读