加入收藏
设为首页
联系我们

赛度首页 - 电脑基础 - 操作系统 - 办公软件 - 图形图像 - 网络应用 - 安全中心 - 硬件知识 - 手机数码 - 下载中心 - 交流论坛 

您现在的位置: 赛度网 >> 电脑基础 >> 服务器配置 >> 正文
监视并记录Apache网站服务器的运行

监视并记录Apache网站服务器的运行

发布于:2007-10-28 15:16:07 作者:赛度网 来源:不详

    ·每秒处理54853.63个网页请求的网站服务
    ·IIS网站服务器设置与优化7招
    ·架设某大型网站服务器之全部过程
    ·个人电脑变网站服务器全面解决方案
    ·六款入门级网站服务器硬件选购参考
    ·企业网站服务器负载均衡技术
    ·给网站服务器做压力测试
    ·虚拟机VMware Server利用——托管网站
    ·高手论道 企业网站服务器负载均衡技术
    ·网站服务器假日管理方案
在Apache下的日志简介

Apache提供了广泛记录运行时各方面信息的工具。比如有条件性的记录日志,日志循环,确定IP地址等时普遍会遇到的问题。还讲解很多用于检测您的Apache服务器状态以及分析其日志的捆绑的第三方模块和工具。

默认的Apache日志文件

Apache提供很多检测和日志工具来追踪服务器的正确运行。默认的Apache配置提供两个日志文件,放置在安装目录下的日志目录里面。

access_log 这个文件(在windows下对应access.log文件)包含了服务器已经处理过的请求的信息,比如说请求的URL,客户端的IP地址,请求是否被成功完成等。error_log 这个文件(在windows下对应error.log文件)包含了与错误情况相关的信息,以及服务器生命周期中不同的大事件。

创建日志格式 LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b"
\"%{Referer}i\" \"%{User-agent}i\"" combined

LogFormat 指令允许你告诉Apache你想要记录请求的哪些方面。而你仍需附加的指令来告诉Apache在哪里记录那些信息,这在下一章中将会介绍。下面的例子显示了两种最受欢迎的格式的配置:普通日志格式和整合日志格式。当Apache收到一个请求,他将会用相应的请求属性来替代以%为前缀的每一个域。如果您正在使用普通日志格式,您的日志文件里的每一项输入看起来都将是这样的: 192.168.200.4 - someuser [12/Jun/2005:08:33:34
0500] "GET /example.png HTTP/1.0" 200 1234

如果您正在使用整合日志格式,您的日志文件里的每一项输入看起来则都将是这样的: 192.168.200.4 - someuser [12/Jun/2005:08:33:34
0500] "GET /example.png HTTP/1.0" 200 1234
http://www.example.com/index.html "Mozilla/5.0
(Windows; U; Windows NT 5.1; en-US; rv:1.7.7)"
尽管有附件提供日志格式的详尽索引,下表描述了一些最为重要的域:
# %h: 客户端(例如,浏览器)向服务器发出连接请求时自己的当时的IP地址或域名(需开启HostNameLookups)。
# %u: 使用HTTP方式认证用户时,记录下的用户的编号。
# %t: 服务器接受到连接请求的时间。
# %r: 客户端发出的原始连接请求中的文本信息,包含所使用的HTTP方法。
# %>s: 服务器应答浏览器后的返回状态代码,200表示请求成功。.
# %b: 服务器应答浏览器发出的单个请求的回传对象的内容大小(字节为单位),不统计数据包头部字节。
整合日志格式在普通日志格式的基础上扩展出了两个附加的域。定义为:
# %{Referer}i: 连接请求数据包包头,包含指向当前页面的文档关联信息。
# %{User-agent}i: 用户代理连接请求数据包包头,包含客户浏览器的信息。

创建一个自定义日志文件
CustomLog logs/access_log common
TransferLog logs/sample.log
您可能会想创建Apache自带以外的新的日志文件。下面的例子将运用CustomLog来创建一个新的日志文件,并保存由一个之前定义好的日志格式,即前一章提到的common,所定义的信息。您还可以用格式本身的定义来替换昵称。一个附加的,更为简单的指令是Transferlog,它只接受最后一个 LogFormat指令提供的定义。

重导向日志到一个外部的程序
TransferLog "|bin/rotatelogs /var/logs/apachelog
86400"


你也可以用CustomLog或TransferLog将日志的输出重导向(输出)到一个外部的程序,而不是一个文件。要做到这一点,首先您需要以输出字符 "|"开头,跟着是接收日志标准输入信息的程序之路经。本例运用Apache自带的rotatelogs程序,在稍后的章节中会对其有所介绍。

当有一个外部程序被使用,它将作为启动httpd的用户被运行。如果服务器是被超级管理员所启动,它就会是超级管理员,完全确保这个程序是安全的。并且,当进入一个非Unix平台上的一个文件路径时,需要小心确保只有正斜杠被使用,即使这个平台可能是允许使用反斜杠的。总的来说,在整个配置文件中总是使用正斜杠是个好主意。

有条件的日志请求

SetEnvIf Request_URI "(\.gif|\.jpg)$" image
CustomLog logs/access_log common env=!image
SetEnvIf Remote_Addr 192\.168\.200\.5 specialmachine
CustomLog logs/special_access_log common env=specialmachine
你可以根据可变的环境决定是否记录一个请求。这种可变可以根据许多参数,比如客户端的IP地址或请求中某个头部的存在,事先设置好。正如本例中所显示, CustomLog指令可以将可变的环境作为第三个参数来接受。如果存在可变的环境,它就将被记录,否则就不会。如果这个可变的环境被一个"!"开头否定,那么不存在可变的环境将会被记录。本例将告诉您如何避免在日志里以GIF和JPEG的格式记录图像,及如何从一个特定的IP地址记录请求道一个单独的日志文件。另一个例子请参加下一节。

谁在连接你的网站
SetEnvIfNoCase Referer www\.example\.com internalreferral
LogFormat "%{Referer}i -> %U" referer
CustomLog logs/referer.log referer env=!internalreferral
可以通过记录Referer的值来检测哪些人连接了你的网站,Referer变量位于用户发送连接请求数据包的头部,数据包头中还包含了用户访问的目的网站的URL地址。通过这种方法可以记录下绝大部分网站访问者。也可以把来自特定网站(www\.example\.com)地址段的来访者排除出日志记录文件。
利用模块参数(mod_status)来监视Apache服务器
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 192.168.0
</location>


Apache 服务器中可以使用的功能模块很多,有服务器内置的也有外挂的,这些模块工作的状态和性能就是通过mod_status参数来记录的,记录的内容有“哪些模块参与了网站应答服务、哪些模块处于空闲状态、服务器的开启/关闭时间。正在处理的连接请求数和访问者数量(需要指定ExtendedStatus记号) -该模块记录对高负荷网站服务器性能有很大影响”。例子中记录的模块状态统计结果可以用浏览器访问http://www.example.com/server-status页面来查看。


关于监视并记录Apache网站服务器的运行的学习及相关资料 文章结束,如果您想详细了解是什么意思,怎么使用?请进入 bbs.ccidu.com 为您详细解答!
 
  • 上一篇知识:

  • 下一篇知识:
  •  
    最新推荐 最新更新 相关知识
    ·保护DNS服务器的技巧
    ·微软发表支持所有SWIFT信息的软件
    ·Linux下快速安装“apache php3 mysql
    ·本文只讨论如何在Windows NT 4.0上安
    ·安装配置篇apache resin
    ·安装jboss3 Tomcat4 mysql
    ·Windows2000 TOMCAT 5.02开发环境快速
    ·Windows2000 server下的Apache2.0.46
    ·25.6TB!Winchester将发售SATA磁盘阵列
    ·Win32下使用AJP整合Tomcat 4.0.4和Ap
    没有相关知识