在本版本的 IIS 中,可以通过网络,使用完整的通用命名约定 (UNC) 路径将日志数据写入到远程共享上。例如,可将 //servername/LogFiles 指定为日志文件的存储目录,其中,servername 代表远程服务器的名称,LogFiles 代表存储日志文件的目录的名称。
远程日志记录使您能够设置集中的日志文件存储和备份;但是,它比标准的日志记录方法慢。尽管 HTTP.sys(IIS 6.0 中的内核模式驱动程序)在向日志文件中写入信息之前,先缓冲 64 KB 的日志数据,但是远程日志记录是通过网络写日志文件,这可能会降低性能。
如果日志文件目录或文件的所有者不在 Local Administrators 组中,则 HTTP.sys 将错误发布到 NT 事件日志中,并指出目录或文件的所有者不在 Local Administrators 组中,而且该站点的日志记录将被挂起,直到将所有者添加到 Local Administrators 组中,或者删除掉现有的目录或文件为止。可以通过允许 HTTP.sys 创建日志文件目录和文件来避免发生该错误。
强烈建议您在配置远程日志记录之前,在运行 IIS 的 Web 服务器和远程服务器之间启用 Internet 协议安全性 (IPSec)。IPSec 是一种开放标准的框架结构,通过使用加密安全服务来确保 Internet 协议 (IP) 网络上的安全通信。如果在运行 IIS 的 Web 服务器和远程服务器之间未启用 IPSec,在通过网络传送包含日志数据的数据包时,数据包有可能会被恶意用户和线路“嗅探”应用程序截获。
要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份执行该步骤。
在远程共享上记录网站数据
- 在运行 IIS 的 Web 服务器的所在域中的远程服务器上创建日志文件。
- 更改目录属性,使之成为共享目录并为“Everyone”组指派“完全控制”权限。如果要将日志文件写入到位于其他域中的远程服务器上,请参阅本主题中的为交叉域日志记录设置空会话部分。
- 确保运行 IIS 的服务器对于远程共享具有“完全控制”访问权限,对于远程日志文件目录具有读取和写入权限。有关详细信息,请参阅本主题中的为远程日志记录配置权限。
- 在 IIS 管理器中,展开本地计算机,右键单击“网站”文件夹,然后单击“属性”。
- 在“网站”选项卡上,确保选中了“启用日志记录”复选框。
- 在“活动日志格式”列表框中,单击某个日志文件格式。有关不同日志文件格式的说明,请参阅关于记录站点活动。
- 单击“属性”。
- 单击“常规”选项卡,然后在“日志文件目录”框中,键入完整的 UNC 路径。例如,//servername/LogFiles,其中,servername 代表远程服务器的名称,LogFiles 代表存储日志文件的共享位置的名称。
- 单击“应用”,然后单击“确定”。该目录中的所有网站开始向远程共享上记录数据。
在远程共享上,IIS 为每个网站创建唯一的目录,例如,W3SVCX,其中,X 是 IIS 生成的用于代表特定网站的随机数字。IIS 还会创建具有独占写入访问权限的日志文件,这样多台计算机就无法向同一个日志文件写入信息。
为交叉域日志记录设置空会话
要将文件远程记录到其他域中的 UNC 共享位置中,则需要将远程共享配置为空会话共享。当 IIS 试图访问远程 Microsoft Windows 服务器资源(如使用空会话的文件共享)时,如果文件共享未配置为空会话共享,或者如果在主控文件共享的服务器上设置了任何注册表、组或策略限制,则操作可能会失败。
通过几个设置来控制 Windows 上的空会话访问权限。当配置空会话共享时,必须首先通过修改每个远程资源计算机的注册表来在共享上显式启用空会话访问权限。如果按照这种方式配置共享资源,则资源不安全。Microsoft 不建议在考虑使用空会话安全性时使用该配置。
在编辑注册表之前,请确保您了解如何在发生问题时进行还原。有关如何还原注册表的信息,请参阅注册表编辑器帮助中的“还原注册表”和“还原注册表项”主题。
要点 使用注册表编辑器不当可能导致需要重新安装操作系统的严重问题。因为注册表编辑器会跳过标准的安全保护(禁止您输入存在冲突或者有可能降低性能或破坏系统的设置),所以在更改注册表时一定要格外小心。Microsoft 不能保证由于错误使用注册表编辑器而出现的问题都能解决。有关如何编辑注册表的信息,请参阅注册表编辑器帮助中的更改项和值主题。
请注意,在编辑注册表之前,应该首先进行备份。如果运行的是 Microsoft® Windows® NT® 或更高版本,还应当更新紧急修复磁盘 (ERD)。
有关如何编辑注册表的信息,请参阅注册表编辑器帮助中的“更改项和值”、“在注册表中添加和删除信息”以及“编辑注册表数据”主题。
启用空会话访问权限
- 从“开始”菜单,单击“运行”。
- 在“打开”框中,键入 Regedit.exe,然后单击“确定”。
- 在注册表中找到下面的项并双击它:
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/LanmanServer/Parameters/NullSessionShares
。请注意,NullSessionShares 是一个 REG_MULTI_SZ 值。 - 在 NullSessionShares 项的新行上,键入要用空会话访问的共享的名称,例如,public。
- 在注册表中找到下面的项并单击它:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/LSA。 - 从“编辑”菜单,指向“添加”,单击“DWORD 值”,然后添加以下注册表值:
名称: RestrictAnonymous
类型: REG_DWORD
数据: 0 - 退出注册表编辑器。
- 重新启动服务器。
如果在重新启动服务器之后远程共享不允许 IIS 服务器将日志文件写入到指定的共享上,则可能需要调整远程计算机上的 Windows 安全组和安全策略以启用匿名访问。
为远程日志记录配置权限
为远程日志记录配置权限
- 在远程计算机上,浏览到 systemroot/System32,右键单击 LogFiles 文件夹,然后单击“共享和安全”。
- 在“共享”选项卡上,单击“共享该文件夹”,然后单击“权限”。
- 单击“添加”。
- 单击“对象类型”。
- 选中“计算机”复选框,然后单击“确定”。如果您喜欢的话,可取消对所有其他选项的选择。
- 在“输入对象名称来选择”框中,键入对象名 — Domain/WebServer,然后单击“确定”。
- 在“组或用户名称”列表中,选择 Domain/WebServer 对象,并在“权限”部分选中“完全控制”旁边的“允许”复选框。
- 在“组或用户名称”列表中,选择“Everyone”。
- 在“权限”部分中,清除所有权限,然后单击“确定”。远程计算机现在具有相应的访问权限。
- 要设置相应的文件权限,请单击“安全”选项卡。
- 选择 Domain/WebServer 对象,然后在“权限”部分选中“完全控制”旁边的“允许”复选框。
- 单击“应用”,然后单击“确定”。
相关主题
- 要以编程方式设置远程日志记录,请参阅 LogFileDirectory 配置数据库属性。