`
king520
  • 浏览: 167837 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
文章分类
社区版块
存档分类
最新评论

Apche日志:访问日志

 
阅读更多

转自

http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/04/24/2026559.html

一、访问日志的格式
Apache内建了记录服务器活动的功能,这就是它的日志功能。这个文章介绍的就是Apache的访问日志、错误日志,以及如何分析日志数据,如何定制Apache日志,如何从日志数据生成统计报表等内容。
如果Apache的安装方式是默认安装,服务器一运行就会有两个日志文件生成。

两个文件是access_log和error_log(在Win上是 access.log和error.log)。采用默认安装方式时,这些文件可以在/usr/local/apache/logs下找到;对于 Windows系统,这些日志文件将保存在Apache安装目录的logs子目录。不同的包管理器会把日志文件放到各种不同的位置,所以你可能需要找找其 他的地方,或者通过配置文件查看这些日志文件配置到了什么地方。

【总结】访问日志和错误日志的 位置 名字
Windows: <Apache安装目录>\logs\access.log | error.log
Linux: /usr/local/apache/logs/access_log | error_log
正如其名字所示,访问日志access_log记录了所有对Web服务器的访问活动。下面是访问日志中一个典型的记录:
例子:216.35.116.91 - - [19/Aug/2000:14:47:37 -0400] "GET / HTTP/1.0" 200 654

【总结】:日志名字段所代表的内容: 1.远程主机、2.空白(E-mail)、3.空白(登录名)、4.请求时间、5.方法+资源+协议、6.状态代码、7.发送字节数

这行内容由7项构成,上面的例子中有两项空白,但整行内容仍旧分成了7项。
第 一项信息是远程主机的地址,即它表明访问网站的究竟是谁。在上面的例子中,访问网站的主机是216.35.116.91。随便说一句,这个地址属于一台名 为si3001.inktomi.com的机器(要找出这个信息,可以使用nslookup工具查找DNS),inktomi.com是一家制作Web搜 索软件的公司。可以看出,仅仅从日志记录的第一项出发,我们就可以得到有关访问者的不少信息。
默认情况下,第一项信息只是远程主机的IP地址,但我们可以要求Apache查出所有的主机名字,并在日志文件中用主机名字来替代IP地址。然而,这种做法通常不值得推荐,因为它将极大地影响服务器记录日志的速度,从而也就减低了整个网站的效率。另外,有许多工具能够将日志文件中的IP地址转换成主机名字,因此要求Apache记录主机名字替代IP地址是得不偿失的。
然而,如果确实有必要让Apache找出远程主机的名字,那么我们可以使用指令“HostNameLookups on”。
如果HostNameLookups设置成double而不是on,日志记录程序将对它找到的主机名字进行反向查找,验证该主机名字确实指向了原来出现的IP地址。默认情况下HostNameLookups设置为off。
上例日志记录中的第二项是空白,用一个“-”占位符替代。实际上绝大多数时候这一项都是如此。这个位置用于记录浏览者的标识,这不只是浏览者的登录名字,而是浏览者的email地址或者其他唯一标识符。 这个信息由identd返回,或者直接由浏览器返回。很早的时候,那时Netscape 0.9还占据着统治地位,这个位置往往记录着浏览者的email 地址。然而,由于有人用它来收集邮件地址和发送垃圾邮件,所以它未能保留多久,很久之前市场上几乎所有的浏览器就取消了这项功能。因此,到了今天,我们在 日志记录的第二项看到email地址的机会已经微乎其微了。

日志记录的第三项也是空白。这个位置用于记录浏览者进行身份验证时提供的名字。当然,如果网站的某些内容要求用户进行身份验证,那么这项信息是不会空白的。但是,对于大多数网站来说,日志文件的大多数记录中这一项仍旧是空白的。

日志记录的第四项是请求的时间。这个信息用方括号包围,而且采用所谓的“公共日志格式”或“标准英文格式”。因此,上例日志记录表示请求的时间是2000年8月19日星期三14:47:37。时间信息最后的“-0400”表示服务器所处时区位于UTC之前的4小时。

日志记录的第五项信息或许是整个日志记录中最有用的信息,它告诉我们服务器收到的是一个什么样的请求。该项信息的典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 资源 协议”。
【总结】
METHOD: GET、POST、HEAD、……
RESOURCE: /、index.html、/default/index.php、……(请求的文件)
PROTOCOL: HTTP+版本号

在上例中,METHOD是GET,其他经常可能出现的METHOD还有POST和HEAD。此外还有不少可能出现的合法METHOD,但主要就是这三种。
RESOURCE是指浏览者向服务器请求的文档,或URL。在这个例子中,浏览者请求的是“/”,即网站的主页或根。大多数情况下,“/”指向DocumentRoot目录的index.html文档,但根据服务器配置的不同它也可能指向其他文件。
PROTOCOL 通常是HTTP,后面再加上版本号。版本号或者是1.0,或者是1.1,但出现1.0的时候比较多。我们知道,HTTP协议是Web得以工作的基 础,HTTP/1.0是HTTP协议的早期版本,而1.1是最近的版本。当前大多数Web客户程序仍使用1.0版本的HTTP协议。
日志记录的第六项信息是状态代码。它告诉我们请求是否成功,或者遇到了什么样的错误。大多数时候,这项值是200,它表示服务器已经成功地响应浏览器的请求,一切正常。状态代码的完整清单可以参考维基百科中的HTTP状态码。一般地说,以2开头的状态代码表示成功,以3开头的状态代码表示由于各种不同的原因用户请求被重定向到了其他位置,以4开头的状态代码表示客户端存在某种错误,以5开头的状态代码表示服务器遇到了某个错误。
日志记录的第七项表示发送给客户端的总字节数。它告诉我们传输是否被打断(即,该数值是否和文件的大小相同)。把日志记录中的这些值加起来就可以得知服务器在一天、一周或者一月内发送了多少数据。
二、配置访问日志
访问日志文件的位置实际上是一个配置选项。如果我们检查httpd.conf配置文件,可以看到该文件中有如下这行内容:
CustomLog /usr/local/apache/logs/access_log common 注意,对于版本较早的Apache服务器,这行内容可能略有不同。它使用的可能不是CustomLog指令,而是TransferLog指令。如果你的服务器属于这类情况,建议你尽可能地早日升级服务器。
CustomLog指令指定了保存日志文件的具体位置以及日志的格式。上面这行指令指定的是common日志格式,自从有了Web服务器开始,common格式就是它的标准格式。由此我们也可以理解,虽然几乎不再有任何客户程序向服务器提供用户的标识信息,但访问日志却还保留着第二项内容。
CustomLog指令中的路径是日志文件的路径,由于日志文件是由HTTP用户打开的(用User指令指定),因此必须注意这个路径要有安全保证,防止该文件被随意改写。

分享到:
评论

相关推荐

    apache日志文件说明

    apache日志文件说明

    Python程序设计:python apache日志分析.pptx

    python apache日志分析 INTERNATIONAL MEDICAL SUMMIT FORUM python apache日志分析 任务背景 操作系统和许多程序会产生各种错误信息、警告信息和其他的提示信息,这种信息会记录到日志里面。系统日志里面有很多东西...

    APACHE日志分析工具

    很多apache日志分析工具都是要安装到服务器上的,而且安装非常麻烦,于是我写了一个单机版(exe,Windows),方便大家分析apache访问日志,绿色版的,直接解压就可以用。 功能: 1、导入apache访问日志; 2、访问...

    Web应用安全:apache日志配置(实验).doc

    实验一:apache日志配置 实验目的 修改apache主配置文件中的日志配置 实验内容 在kali中找到主配置文件 修改日志配置 访问服务器产生日志 查看日志 实验环境 Kali系统 实验步骤 1.在kali中找到apache的主配置文件...

    Web应用安全:apache日志配置.pptx

    在kali,访问日志被记录在”/var/log/apache2/”中,在这个文件夹中三个后缀名为“.log”的文件中(windows则保存在后缀名为“.txt”的文件中)。 日志文件 查看日志文件 apache日志配置 远程主机IP E-mail(常为空白...

    天智Apache日志分析器

    天智Apache日志分析器是一款免费的Apache日志分析工具,使用VC++开发,专用于分析Apache网站日志,可监视、查看和分析Apache服务器日志,统计日志中正常访问和错误日志等信息。

    Apache访问日志分析(含源代码)

    一个分析Apache服务器访问日志的工具, 基于C#开发. 可以分析用户访问所在地, 访问次数, UserAgent等信息.

    apache日志分析

    windows端日志分析软件,支持FTP远程获取linux,NT,OS日志

    Apache 访问日志分析工具

    java 读取apache访问日志并将IP和时间入库,另一个线程分析数据记录,指定时间内超过规定的访问次数,将IP添加进防火墙。以防止ddos攻击。

    apache虚拟主机访问日志配置例子.docx

    apache虚拟主机访问日志配置例子.docx

    在Linux系统上查看Apache服务器的错误日志

    错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器。根据你 Web 服务器配置的不同,其错误/访问...

    pypache:Python 3 中的 Apache 访问日志解析器

    Python 3 中的 Apache 访问日志解析器。 2.0 版发布。 暂时不支持颜色。 为简单起见,如果您想使用pypache ,请将以下行添加到/etc/apache2/apache2.cfg : LogFormat "%h %l %u %t %r %&gt;s %O | %{Referer}i | %{...

    linux的Apache用户认证、域名跳转、Apache访问日志介绍1

    linux的Apache用户认证、域名跳转、Apache访问日志介绍原创Gary_加油涛2017-12-20 21:32:03评论(0)321人阅读Apache

    python分析apache访问日志脚本分享

    # Purpose: 此脚本只用来分析Apache的访问日志 # Version: 2.0 # Author: LEO # Created: 2013-4-26 # Modified: 2013-5-4 # Copyright: (c) LEO 2013 #----------------------------------------

    apache-log-parser:流式Apache日志解析器

    apache日志解析器 用于Apache组合访问日志的流解析器。 例子 解析日志并将每一行作为一个对象: var LogParser = require ( 'apache-log-parser' ) ; var lp = LogParser ( { format : false } ) ; fs . ...

    pilgrimaz#learn-linux#配置apache的访问日志1

    配置apache的访问日志在虚拟主机配置文件httpd-vhsot中虚拟主机配置中加入:

    go-echo-apachelog:Apache风格的记录器,用于回显

    回声apachelog Apache风格的记录器,用于用法如果您只想在STDERR中查看访问日志,请执行以下操作: e . Use ( apachelog . Logger ( os . Stderr )) 如果要轮换日志等,则需要替换目标,因此应保留ApacheLog结构: l...

    Linux下apache日志分析与状态查看方法

    假设apache日志格式为:118.78.199.98 – – [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows ...

    Apache反向代理WebLogic

    部署应用时,考虑到WebLogic的负载负担和访问安全性,一般在WebLogic的前端架构一个反向代理服务器,将他们整合起来使用。而大多数采用的是开源的WEB服务器(Apache)。架构方式是将Apache置于前端作为WebLogic的...

    apache-visitor-statistics:通过apache日志检查访问者和唯一引荐来源的简单脚本

    apache-visitor-statistics 通过apache日志检查访问者和唯一引荐来源的简单脚本 说明:chmod 777 Visitors.py ./visitors.py

Global site tag (gtag.js) - Google Analytics