|
Apache简介 作者 郑重
从1995年,Apache Group公布发行最早的Apache 0.6.2至今,Apache几乎在所有的计算机平台上运行过,最新版本为Apache 2.2。
在默认安装下,Apache服务器运行会生成两个日志文件,这两个文件是访问日志access_log(在Windows上是access.log)和错误日志error_log(在Windows上是error.log)。错误日志是最重要的日志文件,其文件名和位置取决于ErrorLog指令。Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。而访问日志中会记录服务器所处理的所有请求,其文件名和位置取决于CustomLog指令,LogFormat指令可以简化日志的内容。
Apache日志配置
错误日志记录了服务器运行期间遇到的各种错误,以及一些普通的诊断信息,比如服务器何时启动、何时关闭等。
ErrorLog 指令指定了当服务器遇到错误时记录错误日志的文件名。其格式为:
格式1:ErrorLog 错误日志文件名
格式2:ErrorLog "|管道程序名"
LogLevel 用于调整记于错误日志中的信息的详细程度。其格式为:
LogLevel 错误日志记录等级
下面着重说说日志记录等级:
|
紧急程度
|
等级
|
说明
|
|
1
|
emerg
|
出现紧急情况使得该系统不可用,如系统宕机等
|
|
2
|
alert
|
需要立即引起注意的情况
|
|
3
|
Crit
|
危险情况的警告
|
|
4
|
error
|
除了emerg、alert、crit的其他错误
|
|
5
|
warn
|
警告信息
|
|
6
|
notice
|
需要引起注意的情况,但不如error、warn重要
|
|
7
|
info
|
值得报告的一般消息
|
|
8
|
Debug
|
由运行于debug模式的程序所产生的消息
|
如果指定了等级 warn,那么就记录紧急程度为1至5的所有错误信息。
Apache访问日志配置
定制访问日志文件的格式涉及到两个指令,即LogFormat指令和CustomLog指令,默认httpd.conf文件提供了关于这两个指令的几个示例。
CustomLog 指令用来对服务器的请求进行日志记录。格式为:
格式1:CustomLog 访问日志文件名 记录格式说明串|格式昵称
格式2:CustomLog "|管道程序名 访问日志文件名" 记录格式说明串|格式昵称
例:CustomLog /var/log/apache2/access.log combined
为了便于分析 Apache 的访问日志,Apache 的默认配置文件中,按记录的信息不同(用不同格式昵称说明不同的信息)将访问日志分为4类,并由 LogFormat 指令定义了昵称,如表所示。
|
格式分类
|
格式昵称
|
说明
|
|
普通日志格式(common log format,CLF)
|
Common
|
大多数日志分析软件都支持这种格式
|
|
参考日志格式(referer log format)
|
Referrer
|
记录客户访问站点的用户身份
|
|
代理日志格式(agent log format)
|
Agent
|
记录请求的用户代理
|
|
综合日志格式(combined log format)
|
Combined
|
结合以上三种日志信息
|
例:LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
小技巧:Apache日志按日期记录
在apache的配置文件中找到
ErrorLog logs/error_log
CustomLog logs/access_log common
将其改为
ErrorLog “| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_error_log 86400 480″
CustomLog “| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_access_log 86400 480 common
Rotatelogs中有一个offset参数,表示对于UTC的时差分钟数,由于中国是GMT+8,即第八时区,相差480分钟,故有在配置中提到480这个参数,否则日志记录时间将与服务器时间相差8小时。
|