登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

820716的博客-知识分享 向上的心!

知识分享 开阔向上的心胸! http://www.820716.net/blog

 
 
 

日志

 
 

Apache 日志管理  

2009-04-13 20:16:05|  分类: 个人日记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
配置访问日志
CustomLog
CustomLog 指令用来对服务器的请求进行日志记录。格式为:  

格式1:CustomLog 访问日志文件名 记录格式说明串|格式昵称
格式2:CustomLog "|管道程序名 访问日志文件名" 记录格式说明串|格式昵称
其中:  

访问日志文件名:除非文件位置用”/“开头,否则所制定的文件位置是相对于 ServerRoot 目录的相对路径
格式昵称:使用 LogFormat 指令将一个记录格式说明串赋以一个名称
记录格式说明串:用字符串和格式说明符(以%开头)指定日志记录的内容
管道程序名:管道符”|”后面紧跟着一个程序的路径,这个程序把日志从标准输入设备中读入并处理。
在 Ubuntu 的 Apache 默认配置中并没有使用 CustomLog 设置访问日志,若您希望记录访问日志,您需要在虚拟主机的配置文件中分别设置,例如:在 /etc/apache2/sites-available/default 中有如下的设置:  

CustomLog /var/log/apache2/access.log combined

LogFormat
为了便于分析 Apache 的访问日志,Apache 的默认配置文件中,按记录的信息不同(用不同格式昵称说明不同的信息)将访问日志分为4类,并由 LogFormat 指令定义了昵称,如表所示。  

格式分类   格式昵称   说明   
普通日志格式(common log format,CLF)   common   大多数日志分析软件都支持这种格式   
参考日志格式(referer log format)   referer   记录客户访问站点的用户身份   
代理日志格式(agent log format)   agent   记录请求的用户代理   
综合日志格式(combined log format)   combined   结合以上三种日志信息   

LogFormat 指令用于定义访问日志的记录格式。格式为:  

LogFormat "记录格式说明串" 格式昵称  
从 /etc/apache2/apache2.conf 中可知,在 Ubuntu 的 Apache 中定义了下面的 4 种类型的访问日志:  

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
由于综合日志格式简单地结合了3种日志信息,所以在配置访问日志时,要么使用一个综合文件进行记录,要么使用分离的多个(1-3)文件记录。通常使用一个综合日志格式文件进行记录,配置为:  

CustomLog /var/log/apache2/access.log combined

若使用3个文件分别进行记录,配置为:  

CustomLog /var/log/apache2/access.log common
CustomLog /var/log/apache2/referer.log referer
CustomLog /var/log/apache2/agent.log agent


下面的指令组:  

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

与下面的指令等效:  

CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"  
通常我们配置访问日志时,使用先使用 LogFormat 指令定义格式昵称,然后再在 CustomLog 指令中引用昵称的方法。  

格式说明符
在使用 LogFormat 和 CustomLog 指令中为了说明要记录的日志内容,可以使用的常用格式说明符如下表。  

格式说明符   说明   
%v   进行服务的服务器的标准名字 ServerName,通常用于虚拟主机的日志记录中。   
%h   客户机的 IP 地址。   
%l   从identd服务器中获取远程登录名称,基本已废弃。   
%u   来自于认证的远程用户。   
%t   连接的日期和时间。   
%r   HTTP 请求的首行信息,典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 资源 协议”。经常可能出现 的 METHOD 是 GET、POST 和 HEAD;RESOURCE 是指浏览者向服务器请求的文档或 URL;PROTOCOL 通常是 HTTP,后面再加上版本号,通常是 HTTP/1.1。   
%>s   响应请求的状态代码,一般这项的值是 200,表示服务器已经成 功地响应浏览器的请求,一切正常;以 3 开头的状态代码表示由于各种不同的原因用户请求被重定向到了其他位置;以 4 开头的状态代码表示客户端存在某 种错误;以 5 开头的状态代码表示服务器遇到了某个错误。   
%b   传送的字节数(不包含HTTP头信息),将日志记录中的这些值加起来就可以得知服务器在一天、一周或者一月内发送了多少数据。  
%{Referer}i   记录引用此资源的网页。   
%U   请求的URL路径,不包含查询串。   
%{User-Agent}i   使用的浏览器信息。  

访问日志文件举例
下面是从一个访问日志文件中截取的 3 条记录。  

$ sudo tac /var/log/apache2/access.log
192.168.0.66 - - [21/Jun/2007:22:07:58 +0800] "GET /index.html HTTP/1.1" 200 1185 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 2.0.50727)"
192.168.0.77 - - [19/Jun/2007:21:03:33 +0800] "GET /manual/style/manual.css HTTP/1.1" 404 1203 "http://192.168.0.100/manual/logs.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
192.168.0.66 - - [19/Jun/2007:19:21:55 +0800] "GET /dokuwiki/lib/exe/css.php?s=print HTTP/1.1" 304 - "http://192.168.0.191/dokuwiki/doku.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12"

将各项信息分离于下表所示。  

格式说明符   举例1   举例2   举例3   
%h   192.168.0.66   192.168.1.77   192.168.0.66   
%l   -(表示没有取得信息)   -   -   
%u   -   -   -   
%t   [21/Jun/2007:22:07:58 +0800]   [19/Jun/2007:21:03:33 +0800]   [19/Jun/2007:19:21:55 +0800]   
%r   “GET /index.html HTTP/1.1”   “GET /manual/style/manual.css HTTP/1.1”   “GET /dokuwiki/lib/exe/css.php?s=print HTTP/1.1”   
%>s   200   404   304   
%b   1185   1203   -   
%{Referer}i   ”-”   “http://192.168.0.100/manual/logs.html”   “http://192.168.0.191/dokuwiki/doku.php”   
%{User-Agent}i   “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 2.0.50727)”   “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”   “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12”   

由于整个格式说明字符串是放在”“之内的,所以若要输出的日志信息内含有引号,需要将”前加转义符\。例如:若要输出子串”GET /apache_pb.gif HTTP/1.0”,则格式字符串为\”%r\”。 
 
------------------
陈龙
QQ:84047848
MSN:dragonchen82@hotmail.com



 
  评论这张
 
阅读(3391)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018