IIS的日志分析
为了方便而又准确的统计站点信息需要分析IIS日志,找了好多软件,要么不是自己需要的要么就是收费的,因此打算自己写一个分析的程序,于是进入微软技术站看技术文档,总结了一下写在这里以备忘:
1。为了集中而又方便的统计整台服务器的日志,如果各个站点单独记录日志可能统计起来不太方便,当然如果只是为了统计某个站点那就另当别论了,我打算统计整台服务器多个站点的数据,因此如果能将多站日志合并到一起或许会方便一些。因此需要用到IIS的“启用 W3C 集中日志记录”功能,在命令行执行命令:Adsutil.vbs set w3svc/CentralW3CLoggingEnabled true,然后重起IIS服务就可以了。
2。因为服务器运行在中文语言下,而且很多站点是UTF-8作为编码字符集的,因此还有必要将IIS日志设置为UTF-8编码的,方便分析同时也相对安全一些,打开这个功能可以这样做:在IIS管理器中,在本地计算机上点击右键,选择“属性”,在“UTF-8日志”选项单元中,钩选“用 UTF-8 编码 Web 日志”,然后确定并重起IIS服务即可。
3。IIS的每个字段之间使用半角空格进行分隔的。就每个字段数据而言如果存在空格则IIS自动会将空格转换为“+”。但,要注意数据中可能自身会存在“+”。
4。每个字段对应的含义是:
日期(date),时间(time),客户端IP地址(c-ip),用户名(cs-username),服务名(s-sitename),服务器名(s-computername),服务器ip地址(s-ip),服务器端口(s-port),方法(cs-method),uri资源(cs-uri-stem),uri查询(cs-uri-query),协议状态(sc-status),协议子状态(sc-substatus),wind32状态(sc-wind32-status),发送的字节数(sc-bytes),接收的字节数(cs-bytes),所用时间(time-taken),协议版本(cs-version),主机(cs-host),用户代理(cs(User-Agent)),cookie(cs(Cookie)),引用站点(cs(Referer)。
5。协议状态(这就是通用的了,无论是IIS还是Apache抑或是其他的)。
1xx – 信息提示:这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。
100 – 继续。
101 – 切换协议。
2xx – 成功:这类状态代码表明服务器成功地接受了客户端请求。
200 – 确定。客户端请求已成功。
201 – 已创建。
202 – 已接受。
203 – 非权威性信息。
204 – 无内容。
205 – 重置内容。
206 – 部分内容。
3xx – 重定向:客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。
302 – 对象已移动。
304 – 未修改。
307 – 临时重定向。
4xx – 客户端错误:发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。
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.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.0 -(无) – 没有找到文件或目录。
404.1 – 无法在所请求的端口上访问 Web 站点。
404.2 – Web 服务扩展锁定策略阻止本请求。
404.3 – MIME 映射策略阻止本请求。
405 – 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
406 – 客户端浏览器不接受所请求页面的 MIME 类型。
407 – 要求进行代理身份验证。
412 – 前提条件失败。
413 – 请求实体太大。
414 – 请求 URI 太长。
415 – 不支持的媒体类型。
416 – 所请求的范围无法满足。
417 – 执行失败。
423 – 锁定的错误。
5xx – 服务器错误:服务器由于遇到错误而不能完成该请求。
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 – Web 服务器用作网关或代理服务器时收到了无效响应。
502.1 – CGI 应用程序超时。
502.2 – CGI 应用程序出错。application.
503 – 服务不可用。这个错误代码为 IIS 6.0 所专用。
504 – 网关超时。
505 – HTTP 版本不受支持。
常见的 HTTP 状态代码及其原因
200 – 成功。 此状态代码表示 IIS 已成功处理请求。
304 – 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。
401.1 – 登录失败。 登录尝试不成功,可能因为用户名或密码无效。
401.3 – 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。例如,如果 IUSR 帐户无权访问 C:\Winnt\System32\Inetsrv 目录,您会看到这个错误。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:187506 (http://support.microsoft.com/kb/187506/) INFO: IIS 4.0 的基础 NTFS 权限
403.1 – 执行访问被禁止。 下面是导致此错误信息的两个常见原因:您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。
403.2 – 读访问被禁止。验证是否已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:247677 (http://support.microsoft.com/kb/247677/) 错误信息:403.2 Forbidden:Read Access Forbidden(403.2 禁止访问:读访问被禁止)
403.3 – 写访问被禁止。 验证 IIS 权限和 NTFS 权限是否已设置以便向该目录授予写访问权。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:248072 (http://support.microsoft.com/kb/248072/) 错误信息:403.3 Forbidden:Write Access Forbidden(403.3 禁止访问:写访问被禁止)
403.4 – 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该页面。如果没有安装证书的 Web 站点出现此错误,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:224389 (http://support.microsoft.com/kb/224389/) 错误信息:HTTP 错误 403、403.4、403.5 禁止访问:要求 SSL
403.5 – 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。如果没有安装证书的 Web 站点出现此错误,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:224389 (http://support.microsoft.com/kb/224389/) 错误信息:HTTP 错误 403、403.4、403.5 禁止访问:要求 SSL
403.6 – IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:248043 (http://support.microsoft.com/kb/248043/) 错误信息:403.6 – Forbidden:IP Address Rejected(403.6 – 不可用:IP 地址被拒绝)
403.7 – 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。 有关其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:190004 (http://support.microsoft.com/kb/190004/) 错误 403.7 或“Connection to Server Could Not Be Established”(无法建立与服务器的连接)186812 (http://support.microsoft.com/kb/186812/) PRB:错误信息:403.7 Forbidden:Client Certificate Required(403.7 禁止访问:要求客户端证书)
403.8 – 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:248032 (http://support.microsoft.com/kb/248032/) 错误信息:Forbidden:Site Access Denied 403.8(禁止访问:站点访问被拒绝 403.8)
403.9 – 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。 有关如何更改此限制的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:248074 (http://support.microsoft.com/kb/248074/) 错误信息:Access Forbidden:Too Many Users Are Connected 403.9(禁止访问:连接的用户太多 403.9)注意:Microsoft Windows 2000 Professional 和 Microsoft Windows XP Professional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。
403.12 – 拒绝访问映射表。 您要访问的页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:248075 (http://support.microsoft.com/kb/248075/) 错误信息:HTTP 403.12 – Access Forbidden:Mapper Denied Access(HTTP 403.12 – 禁止访问:映射表拒绝访问)
404 – 未找到。 发生此错误的原因是您试图访问的文件已被移走或删除。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。
500 – 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。 有关如何禁用友好 HTTP 错误信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:294807 (http://support.microsoft.com/kb/294807/) 如何在服务器端禁用 Internet Explorer 5 的“显示友好 HTTP 错误信息”功能
500.12 – 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:248013 (http://support.microsoft.com/kb/248013/) 错误信息:HTTP Error 500-12 Application Restarting(HTTP 错误 500-12 应用程序正在重新启动)
500-100.ASP – ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。有关如何在非默认的 Web 站点上看到此错误信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:261200 (http://support.microsoft.com/kb/261200/) 显示 HTTP 500 错误信息,而不显示 500-100.asp 的 ASP 错误信息
502 – 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。
呵呵,我也只能利用PHP来写了。自己写着玩的,其实就是利用PHP将日志读取出来然后以新的格式写入文本或直接以新的结构写如数据库,这是日志采集部分,然后做成定期自动任务进行收集。另一部分就是分析数据部分,主要是利用已经收集到的数据进行相关运算以满足自己的需求,不过其实从web日志中能统计到的东西其实也不是特别多,无非就是流量、IP、PV以及搜索引擎、关键词什么的,特别对于IP统计是特别准确的,因为这可真是真实的web访问哦。程序难度不高就是需要一些耐心,呵呵。
很看好你写的这个 你准备用什么写呢 ?PHP?