如何分析apache日志[access_log(访问日志)和error_log(错误日志)]
发布时间: 2013-12-17 浏览次数:205 分类: 服务器
默认Apache运行会access_log(访问日志)和error_log(错误日志)两个日志文件。
看一条典型的access_log的日志记录:
61.155.149.20 - - [17/Dec/2013:05:42:47 +0800] "GET /category/db/ HTTP/1.1" 200 23225
1)61.155.149.20 这是一个请求到apache服务器的客户端ip,默认的情况下,第一项信息只是远程主机的ip地址,但我们如果需要apache查出主机的名字,可以将 HostnameLookups设置为on,不推荐使用,会大大降低网站速度。
2) - 这一项是空白,使用"-"来代替,用于记录浏览者的标识,对于大多数浏览器,这项都是空。
3) - 也为空,记录浏览者进行身份验证时提供的名字,大多数这项也为空。
4) [17/Dec/2013:05:42:47 +0800]第四项是记录请求的时间,格式为[day/month/year:hour:minute:second zone],最后的+0800表示服务器所处的时区为东八区
5) "GET /category/db/ HTTP/1.1" 这一项最有用,首先,它告诉我们的服务器收到的是一个GET请求,其次,是客户端请求的资源路径,第三,客户端使用的协议时HTTP/1.1,整个格式为"%m %U%q %H",即"请求方法/访问路径/协议"
6) 200 这是一个状态码,由服务器端发送回客户端,它告诉我们客户端的请求是否成功,或者是重定向,或者是碰到了什么样的错误,这项值为200,表示服务器已经成 功的响应了客户端的请求,一般来说,这项值以2开头的表示请求成功,以3开头的表示重定向,以4开头的标示客户端存在某些的错误,以5开头的标示服务器端 存在某些错误。
7) 23225 这项表示服务器向客户端发送了多少的字节,在日志分析统计的时侯,把这些字节加起来就可以得知服务器在某点时间内总的发送数据量是多少
再来看一条error_log信息:
[Tue Dec 17 02:22:46 2013] [error] [client 61.182.137.33] File does not exist: /var/www/html/usr/themes/dddefault/all.txt
1) [Tue Dec 17 02:22:46 2013] 记录错误发生的时间,注意,它跟我们上面access_log记录的时间格式是不同的
2) [error] 这一项为错误的级别,根据LogLevel指令来控制错误的类别,上面的404是属于error级别
3) [client 61.182.137.33] 记录客户端的ip地址
4) File does not exist: /var/www/html/usr/themes/dddefault/all.txt 错误描述。
推荐阅读:(Apache按天生成日志)