apache combined log format解析

combined格式是有common格式+额外的2个信息组合而成. 虽然可以定制LogFormat。不过一般我们不会去变动它.
combined的额外的2个信息对于统计流量是有用的。
我们先来分析以下前面的几列, 典型的combined格式如下:

[root@localhost ~]# tail -n 1 /var/log/httpd/www.yco.com-access_log.1235088000

127.0.0.1 – – [20/Feb/2009:09:42:02 +0800] “GET /favicon.ico HTTP/1.1” 404 285 “http://www.yco.com/” “Opera/9.63 (X11; Linux i686; U; zh-cn) Presto/2.1.1”

第一列: 127.0.0.1是ip地址, 也有可能是域名. 但是因为产生域名会导致服务器变慢, 所以一般不需要考虑. 我们就认为该列就是ip地址.

第二列: -通常也不需要考虑. 在apache文档里明确说”Apache httpd will not even attempt to determine this information unless IdentityCheck is set to On”.

第三列: -但也有可能是通过HTTP验证的用户名(这和web登录的用户名不同概念)

第四列: 时间
[20/Feb/2009:09:42:02 +0800]
The time that the request was received. The format is:

[day/month/year:hour:minute:second zone]
day = 2*digit
month = 3*letter
year = 4*digit
hour = 2*digit
minute = 2*digit
second = 2*digit
zone = (`+’ | `-‘) 4*digit
通常我们不会去变动它

第五列: “GET /favicon.ico HTTP/1.1”
此列相对重要, 为用户请求的 方式 + 目的 + 协议板本. 其中目的地是我们做流量分析的最主要关注点.(这里目的地可能包含 路径和查询字符串)

第六, 七列: 是状态码和反馈的长度. 通常在对web性能做分析时有用.

最后2列就是combined额外拥有的2列. 一列是referer. 这个也是很有用的. 通常用来判断本次请求的真实性. 最后一个是浏览器信息. (假如是机器人的话, 自然可以忽略了…除非你想研究搜索引擎…)

Leave a Reply