在Windows操作系统中,IIS日志记录应该视为ISS所必需的而不是可选的组件,这主要是因为日志文件对于管理IIS服务器来说具有很关键的作用,如在这个IIS服务器在受到安全威胁的情况下,可以利用日志文件并对其中包含的内在细节执行排疑式审查,如到IIS服务器发生故障后,也可以利用这个日志文件中所记录的信息来检查维护过程并识别系统中的问题。
IIS日志里面记录着网站访问的状况,查看IIS访问日志能够给站长提供有力的数据参考(具体可查看《IIS日志的作用有哪些》的相关介绍),那么,我们该如何开启IIS日志呢?又该如何设置IIS日志呢?
如果你是购买的虚拟主机,在虚拟主机管理面板上都有开启日志的选项,可以一键开启,很简单,很傻瓜,管理系统不同,但开启是一样的。
如果你的是独立服务器,要想开启IIS访问日志,就需要你按照马海祥所介绍的步骤来做好配置了。
1、在“开始/程序/管理工具”中,打开“Internet信息服务”,在指定站点上点击鼠标右键,选择“属性”。
2、打开需要统计的网站的属性页面,在此页面中选择“启动日志记录”,并且选择活动日志格式为“W3S扩充日志文件格式”,如下图:
3、点击“属性”按钮,开始配置W3S日志文件格式属性,在其中:
(1)、日志时间间隔选择“每天”。
(2)、选择为文件命名回卷使用本地时间。
(3)、日志文件目录,通常不需要修改,但是要记录下保存位置,以方便下一步的发布日志。本例子中,日志保存在%windir%\system32\logfiles\W3SVC1\,%windir%为WINNT目录,如下图:
4、点击“活动日志格式”右侧的“属性”,设置“扩展属性”,在“扩展日志记录选项”里选择如下选项,并点击“确定”保存,这样能够得到最全的日志信息。
(1)、日期(date)
(2)、时间(time)
(3)、客户端IP地址(c-ip)
(4)、用户名(cs-username)
(5)、方法(cs-method)
(6)、URI资源(cs-uri-stem)
(7)、URI查询(cs-uri-query)
(8)、协议状态(sc-status)
(9)、发送的字节数(sc-bytes)
(10)、协议版本(cs-version)
(11)、用户代理(csUser-Agent)
(12)、引用站点(csReferer)
5、在“开始/程序/管理工具”中,打开“Internet信息服务(IIS)管理器”,如下图:
6、添加虚拟目录
首先选中“站点”,右键点击“新建”,“虚拟目录”。
弹出“虚拟目录创建向导”,如下图所示:
给虚拟目录命名,这里我们取名“wwwlogs”,如下图所示:
7、选择日志所在路径,C:\winnt\system32\LogFiles\W3SVC1\当前日志所在的目录名称。
选中后,点击下一步,继续进行设置。
8、设置的虚拟目录权限,从安全性考虑通常建议只允许“读取”和“浏览”(Win2003系统默认只有读取的权限)。
9、点击“完成”按扭完成虚拟目录的设置。
以下就是设置完成后的效果,我们可以看到在“默认站点”里多了一个wwwlogs的虚拟目录及该目录中的日志文件。
10、设置虚拟目录访问权限。
右键wwwlogs虚拟目录,单击“权限(I)”,如下图所示:
在“安全”选项内单击“添加(D)…”,如下图所示:
在出现的“选择用户或组”的对话框内选点选“高级(A)…”按钮,如下图所示:
将“Everyone”组帐号添加到对象框内,如下图所示:
赋予Everyone帐号“完全控制”的权限,确定选择,如下图所示:
11、设置虚拟目录IP访问限制。
打开虚拟目录wwwlogs属性页面中的“目录安全性”,如下图:
然后点击“IP地址及域名限制”的“编辑”按钮,选择“默认情况下所有计算机将被拒绝访问,除xxx.xxx.xxx.xxx IP地址外”,xxxx.xxx.xxx.xxx也就是授权可以访问虚拟目录的网站e伴服务器,如下图(例子中假设网站服务器IP地址为10.10.10.10):
12、设置IIS6允许下载“.log”文件。
右键wwwlogs虚拟目录,单击“属性(R)”。
wwwlogs虚拟目录属性选“HTTP头”项,再选择“MIME类型(M)”,如下图所示:
在新建MIME类型内,新建MIME类型,扩展名为“.log”,MIME类型填入“application”,确定保存退出。
测试,如果可以访问则配置成功;如果不可访问,请检查以上操作步骤,重新做好配置。
13、IIS日志中返回状态代码的含义
我们继续学习下,如何看IIS日志代码(具体可查看《如何查看及分析网站IIS日志文件》的相关介绍),打开IIS日志后,你会看见IIS文件里面有很多访问记录,baiduspider,Googlebot等就是蜘蛛了,蜘蛛爬过后都会留下记录的,马海祥将状态代码也列在下面:
100 - 表示已收到请求的一部分,正在继续发送余下部分。
101 - 切换协议。
200 - 确定客户端请求已成功。
2XX - 成功,服务器成功地接受了客户端请求(只要是2XX的状态,都表示成功)。
201 - 已创建。
202 - 已接受。
203 - 非权威性信息。
204 - 无内容。
205 - 重置内容。
206 - 部分内容。
300 - 针对收到请求,服务器可执行多种操作。
301 - 永久移动转移,请求的内容已永久移动其他新位置(具体可查看《什么是301永久重定向》的相关介绍)。
302 - 临时移动转移,请求的内容已临时移动新的位置
304 - 未修改。自从上次请求后,请求的内容未修改过。
307 - 临时重定向,服务器目前从不同位置响应请求,但请求者应继续使用原有位置来进行以后的请求。
400 - 错误的请求。
401 - 访问被拒绝,IIS 定义了许多不同的401错误,它们指明更为具体的错误原因,这些具体的错误代码在浏览器中显示,但不在IIS日志中显示:
401.1 - 登录失败。
401.2 - 服务器配置导致登录失败。
401.3 - 由于 ACL 对资源的限制而未获得授权。
401.4 - 筛选器授权失败。
401.5 - ISAPI/CGI 应用程序授权失败。
401.7 - 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
403 - 禁止访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因(具体可查看《403 Forbidden错误的原因和解决方法》的相关介绍):
403.1 - 执行访问被禁止。
403.2 - 读访问被禁止。
403.3 - 写访问被禁止。
403.4 - 要求 SSL.
403.5 - 要求 SSL 128.
403.6 - IP 地址被拒绝。
403.7 - 要求客户端证书。
403.8 - 站点访问被拒绝。
403.9 - 用户数过多。
403.10 - 配置无效。
403.11 - 密码更改。
403.12 - 拒绝访问映射表。
403.13 - 客户端证书被吊销。
403.14 - 拒绝目录列表。
403.15 - 超出客户端访问许可。
403.16 - 客户端证书不受信任或无效。
403.17 - 客户端证书已过期或尚未生效。
403.18 - 在当前的应用程序池中不能执行所请求的URL.这个错误代码为IIS 6.0所专用。
403.19 - 不能为这个应用程序池中的客户端执行CGI.这个错误代码为IIS 6.0所专用。
403.20 - Passport 登录失败,这个错误代码为IIS 6.0所专用。
404 - 未找到请求的内容(具体可查看《404 Not Found错误页面的解决方法和注意事项》的相关介绍)。
404.0 - 未找到文件或目录。
404.1 - 无法在所请求的端口上访问 Web站点。
404.2 - Web 服务扩展锁定策略阻止本请求。
404.3 - MIME 映射策略阻止本请求。
405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
406 - 客户端浏览器不接受所请求页面的 MIME 类型。
407 - 要求进行代理身份验证。
412 - 前提条件失败。
413 - 请求实体太大。
414 - 请求 URI 太长。
415 - 不支持的媒体类型。
416 - 所请求的范围无法满足。
417 - 执行失败。
423 - 锁定的错误。
500 - 服务器内部错误。
500.12 - 应用程序正忙于在 Web 服务器上重新启动。
500.13 - Web 服务器太忙。
500.15 - 不允许直接请求 Global.asa.
500.16 - UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。
500.18 - URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。
500.100 - 内部 ASP 错误。
501 - 服务器无法完成请求的功能。
502 - 服务器用作网关或代理服务器时收到了无效响应。
502.1 - CGI 应用程序超时。
502.2 - CGI 应用程序出错。
503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。
504 - 网关超时。
505 - HTTP 版本不受支持。
点评:
如果网站启用了日志记录,管理员就可以通过查看日志跟踪网站被访问的情况,如哪些用户访问了本站点、访问者查看了什么内容,以及最后一次查看该信息的时间等,可以使用日志来评估内容受欢迎程度或识别信息瓶颈,有时还可以通过日志查出非授权用户访问网站以便采取应对措施。