|
|
|
|
移动端

1.2.8 Apache 错误日志分析

《UNIX/Linux网络日志分析与流量监控》第1章网络日志获取与分析,本章将介绍如何获取并分析各类系统的日志。学习好本章内容,将为后续章节的案例分析打下良好的基础。本节为大家介绍Apache 错误日志分析。

作者:李晨光来源:机械工业出版社|2014-11-26 16:17

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

1.2.8 Apache 错误日志分析

错误日志记录了服务器运行期间遇到的各种故障,以及一些普通的诊断信息,比如服务器启动/关闭时间。错误日志和访问日志一样也是Apache 的标准日志,它在httpd.conf 配置文件中ErrorLog logs/ error_log 处定义路径和格式。错误日志和访问日志一般放在同一个目录里。

日志文件记录信息级别的高低,控制日志文件记录信息的数量和类型。这是通过LogLevel 指令实现的,该指令默认设置的级别是error,有关该指令中允许设置的各种选项的完整清单,请参见http://wiki.apache.org/httpd/FAQ 的Apache 文档。最常见的错误日志文件有两类,一类是文档错误信息,另一类是CGI 错误信息。

(1)文档错误

文档错误和服务器应答中的400 系列代码对应,最常见的就是404 错误——DocumentNot Found(文档没有找到)。这种错误在用户请求的URL 不存在时候出现,一般是由于用户输入的URL 错误,或者由于Web 服务器上已存在的文件被删除或移动。

错误日志中出现的记录如下所示:

错误日志和访问日志格式类似,不同之处在[error]这一项,它表示记录级别,为方便开发和调试分为0~7 级,见表1-2。日志中的错误级别由配置文件中LogLevel 指令负责调整,它的主要作用是控制错误日志的详细程度(在httpd.conf 配置文件中说明)。

表1-2 错误日志记录等级

从表1-2 可知,记录级别为0~7 级,日志记录量是从小向大方向增长,7 级为最高,这和思科等路由器的debug 模式相同。各级别的关系如图1-4 所示。

从图1-4 中可以看出,日志按严重程度分为8 组,从高到低依次为紧急(0 级别)、报警(1 级)、关键、错误、一般错误、警告、通知及消息调试。圆圈越大,则说明所记录的日志信息量越多。8 级Debugging 调试级包含了上面7 级记录的所有信息,所以它的日志量最大,因此不要在工作的设备上启用这一级。

在正常运行的服务器上,一般有两种错误信息。一种是文档错误,最常见的就是400 系列错误,例如文件被移走或删除而出现的404 错误等;另一种是CGI 错误,主要由CGI 程序的问题引起。

(2)CGI 错误

错误日志还能诊断异常行为的CGI 程序。为了进一步分析和处理方便,CGI 程序输出到STDERR(Standard Error,标准错误设备)的所有内容都将直接进入错误日志。如果CGI 程序出现了问题,错误日志就会告诉我们有关问题的详细信息。

下面是一个例子,它是调试CGI 代码时,错误日志中出现的一个错误记录:

错误日志记录通常以行为单位。在上面给出的情况中,CGI 错误就会出现多行情况,从这一点看,Apache 日志级别的定义也不是很严格,例如在单个文件记录所有日志时,无论使用哪种错误级别,在日志中总会显示Notice 级别的信息,这些信息虽然是提醒程序员需要注意,有时却显得多余。所以建议大家使用Rsyslog 记录日志,这样就不会出现上述问题。

默认将错误文件放在apache 配置文件中ServerRoot 的logs 目录下,一般路径为/var/log/apache2/error_log,这里假设文件名为error_log(有的系统为error.log)。

注意:

如果在配置文件中停止输出错误日志,例如:

  1. errorlog /dev/null 

一旦服务器崩溃就会丢失很多有价值的调试信息,所以在万不得已的情况下不要使用此方法。不过有时错误日志会变得非常大,这种情况见第2 章的案例一。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Oracle 10g应用指导与案例精讲

本书作者结合自己多年实践经验,从Oracle开发应用中遇到的问题着手,全面系统地介绍Oracle的安装与卸载、数据字典、安全管理以及用PL/SQL开...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊