集中的二进制日志记录是多个网站用来向单个日志文件写入不带格式的二进制日志数据的过程。当启用时,运行 IIS 的 Web 服务器上的所有网站都将数据写入单个日志文件中。与之相反的是,大多数日志记录方法为每个网站都创建一个日志文件。对于有大量网站的公司,创建成百上千个带格式的日志文件以及将日志数据写入磁盘中的过程可快速消耗运行 IIS 的服务器上宝贵的 CPU 和存储器资源,从而产生性能和可伸缩性问题。
因为日志数据采用二进制形式并存储在一个文件中,所以集中的二进制日志记录可节省存储器资源。根据您的配置,可通过切换到集中的二进制日志记录来大大提高性能和可伸缩性。
集中的二进制日志记录是服务器属性而不是站点属性。这意味着当您启用集中的二进制日志记录时,该服务器上的所有网站都开始向集中的二进制日志文件写入不带格式的二进制日志数据。当在运行 IIS 的服务器上启用了集中的二进制日志记录之后,就无法选择以其他日志格式记录特定站点。
注意 启用集中的二进制日志记录会禁用服务器上所有其他日志记录格式。
当启用集中的二进制日志记录时,HTTP 协议堆栈 (HTTP.sys) 自动创建一个日志文件目录。在默认情况下,日志文件目录具有下列访问控制权限:
日志文件目录中的单个日志文件具有下列控制权限:
如果选择创建自己的日志文件目录,一定要设置正确的访问控制权限以防止恶意用户攻击日志文件。当启用集中的二进制日志记录时,如果日志文件目录已经存在,但是访问控制与 HTTP.sys 的默认值不一致,则 HTTP.sys 会向事件日志中写入一个警告,然后禁用集中的二进制日志记录。要在这种情况下重新建立集中的二进制日志记录,请将访问控制设置为与默认值相匹配,并通过命令提示符重新启用集中的二进制日志记录。有关文件和目录的安全性和访问控制的详细信息,请参阅访问控制。
要点 为了运行脚本和可执行文件,您必须是本地计算机上 Administrators 组的成员,或者必须已经被委派了相应的权限。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行脚本或可执行文件。在命令提示符下,键入 runas /user:administrative_accountname "script or executable command"。
为运行 IIS 的服务器上的所有网站启用集中的二进制日志记录
当在运行 IIS 的 Web 服务器上启用了集中的二进制日志记录时,该服务器的所有日志项都放在集中的二进制日志文件中。该日志文件由包含字符串标识符的固定长度的记录或索引记录组成。为了尽可能多地记录信息以维护大量的 W3C 扩展日志(默认的日志格式),变长字符串字段替换为将变长字符串映射到日志标识符的数值标识符(索引)。
当启用时,IIS 创建扩展名为 .ibl 的集中的二进制日志文件,例如,rawyymmddhh.ibl。.ibl 文件扩展名代表 Internet 二进制日志。这个新文件扩展名确保文本工具不会将它读作 .log 文件扩展名并尝试打开二进制日志文件。
当准备从原始日志文件提取数据时,可执行以下某个操作: