日志记录对于任何一个服务器来说都是至关重要的对于IIS服务器也不例外在Windows操作系统中相比来说对于IIS日志记录来说有了很大的改进不仅仅是日志的格式还是其他的一些可选项上操作系统管理员有了更多的选择如下图所示就是IIS日志记录配置管理的基本页面
Windows上启用IIS日志记录 >
在Windows操作系统中IIS日志记录应该视为ISS所必需的而不是可选的组件这主要是因为日志文件对于管理IIS服务器来说具有很关键的作用如在这个IIS服务器在受到安全威胁的情况下可以利用日志文件并对其中包含的内在细节执行排疑式审查如到IIS服务器发生故障后也可以利用这个日志文件中所记录的信息来检查维护过程并识别系统中的问题笔者这里就给大家介绍一下Windows操作系统中IIS日志记录相比Windows操作系统的一些新特性并帮助大家部署一种得心应手的日志管理模式
一选择合适的日志记录级别
在IIS版本中系统管理员可以根据自己的需要选择合适的日志记录级别如可以在服务器级别上进行日志记录管理也可以在网站WEB应用程序文件或者目录级别上实现它具体要在那个级别上实现主要看系统管理员的需要不过需要注意的是其实现级别的不同所支持的日志文件格式也是不同的如在服务器级别实现的话其支持的日志格式就只有两种分别为WC格式与二进制格式而如果选择网站级别上实现日志管理的话则其支持的日志格式有三种分别为IISNCSAWC格式而且系统管理员如果觉得这些格式还不满足的话可以通过自定义的方式来自定义自己需要的格式所以在选择日志记录级别的时候除了需要考虑在什么级别上进行日志管理比较方便与安全同时还需要结合自己喜欢的日志格式笔者个人喜欢在网站级别上对日志进行管理因为在一台服务器上如果只部署IIS服务的话可能比较浪费也就是说在同一台服务器上可能有多个应用服务为了跟其他应用服务与服务器操作系统的日志区分开来笔者就建议大家在网站级别上进行管理当然在哪个级别上进行日志管理对于日志的内容没有实际性的差异主要是看服务器的部署以及系统管理员的工作习惯而定
二为日志记录选择合适的格式
如果选择网站级别来管理日志的话这个日志的格式有多种选择最重要的是系统管理员可以选择IIS的日志记录格式这个IIS日志记录格式是基于文本的日志记录跟WC日志记录格式类似都是通过HTTPSYS来控制的不过这个IIS日志记录格式是一个核心模式过程而以前的日志记录都是通过用户模式来管理的两者之间有比较大的变化超文本传输协议侦听程序被实现为名为 HTTPSYS的内核模式设备驱动程序HTTPSYS 是 Windows 网络子系统的一个重要组成部分在以前的版本中当在 IIS 中创建网站时使用 HTTPSYS注册站点然后HTTPSYS将 Web 请求传送到正在运行网站的用户模式进程中同时HTTPSYS也将响应送回客户端除了从其内部缓存中检索存储的响应以外HTTPSYS并不处理它所接收到的请求因此应用程序特定代码永远不会加载到内核模式中但是有些系统管理员希望HTTPSYS能够以核心模式运行此时就需要采用IIS日志格式另外IIS是基于文本的日志记录跟二进制格式的日志记录不同直接可以通过文本浏览器等工具来查看日志信息所以阅读起来也更加的方便
当然日志文件的格式不同其所存储的内容都是相同的所以日志文件的格式并不会影响日志的实际管理价值不过为了日后管理维护的方便笔者建立系统管理员最好还是根据自己的工作习惯来选择合适的日志格式
三选择合适的编码格式
一般情况下IIS日志文件的编码格式有两种分别为UTF与ANSI两种格式在所有的字符集中虽然ANSI比较有名但是这个编码格式可以说是专门为英文所设计的用来存储其他的语言时会出现乱码的情况如对于汉语就支持的不是很好为了解决这个问题特意提出了一种新的编码格式即UTF这是一种UNICODEd 一种变长字符编码如果UNICODE字符由个字节表示则编码成UTF很可能需要个字节而如果UNICODE字符由个字节表示则编码成UTF可能需要个字节UTF编码可以通过屏蔽位和移位操作快速读写字符串比较时strcmp()和wcscmp()的返回结果相同因此使排序变得更加容易字节FF和FE在UTF编码中永远不会出现因此他们可以用来表明UTF或UTF文本 UTF 是字节顺序无关的它的字节顺序在所有系统中都是一样的
这些字符集的格式对于某些系统管理员来说可能有点深奥其实系统管理员也不需要了解的这么清楚只需要明白一个原则即如果日志中显示的如果都是英文的话那么采用ANSI编码格式也不会有问题但是如果日志中还会存在其他语言的话则可能会出现乱码为此笔者建议还是采用UTF的编码格式为好毕竟其对于英文的支持力度也是很好的为此还不如一劳永逸的将其设置为UTF格式为好免得以后再日志阅读中遇到乱码的烦恼
四选择合适的日志文件滚动更新机制
如果将IIS的日志记录都保存在一个文件中显然文件会很长到时候查看记录的时候会很麻烦为此最好能够将日志文件进行分割分割成一个个小文件这方便与后续的查询与阅读在Windows操作系统的IIS日志中提供了很多的日志文件滚动更新的方法如可以根据时间来创建新的日志文件如可以按天按周或者按月来实现日志文件的滚动更新一般情况下按月来更新即可如果IIS服务器访问比较频繁也可以适当缩短这个日志文件滚动更新的时间间隔如可以将时间间隔调整为一周或者一天等等这个时间间隔到底多少为好主要是看其记录的数量如果日志记录数量多的话那么可以适当缩短时间相反如果日志记录数量不是很多的话则可以以月为单位建立新的日志文件
除了可以根据时间来建立新的日志文件之外还可以根据日志文件的大小来创建新的日志文件在IIS日志管理器中可以选择最大文件大小然后输入一个合适的尺寸如此的话当这个日志文件达到指定的大小之后系统就会自动对其进行日志切换不过笔者并不赞同采用这种方法虽然其可以将重做日志文件控制在一个合理的大小内但是其会打破其内在的时间联系到时候在遇到问题时查询起来会非常的不方便故笔者还是建立按时间来对重做日志文件进行分割
另外管理器还提供另一个有用的选项即是否要将本地时间用户文件命名与翻滚这是一个很有用途的选项选中这个选项后在系统自动建立的日志文件中就会反映这个时间信息这对于系统管理员来查找日志文件能够提供很大的帮助特别是如果按文件大小来分割重做日志文件的话一定要选中这个选项以方便后续的查找