apache 日志

作者admin

5月 9, 2023

Apache的配置文件(httpd.conf)中是存在着两个可调配的日志文件的:

  • 访问日志access_log(在Windows上是access.log)
  • 错误日志error_log(在Windows上是error.log)

使用 SSL 服务的话,还可能存在另外三种日志文件:

  • ssl_access_log
  • ssl_error_log
  • ssl_request_log

Apache的配置文件=conf/httpd.conf:

#CustomLog,可以apache访

CustomLog logs/access_log combined

#ErrorLog”,可以apache错误

#非根“/”开头,位置是相对于ServerRoot目录的相对路径

ErrorLog logs/error.log

Apache访问日志详解

xx.xx.xx.xx – – [01/Apr/2023:10:03:06+0800] “GET /test/hello.html / HTTP/1.1” 200 738

  1. 远程主机IP:表明访问网站的是谁
  2. 空白(Email):为了避免用户的邮箱被垃圾邮件骚扰,第二项就用“”取代了
  3. 空白(登录名):用于记录浏览者进行身份验证时提供的名字。
  4. 请求时间:用方括号包围,而且采用“公用日志格式”或者“标准英文格式”。 时间信息最后的“+0800”表示服务器所处时区位于UTC之后的8小时。
  5. 方法+资源+协议:服务器收到的是一个什么样的请求。该项信息的典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 资源 协议”。  METHODGET、POST、HEAD、…… RESOURCE: /、index.html、/default/index.php、……(请求的文件)  PROTOCOL: HTTP+版本号
  6. 状态代码:请求是否成功,或者遇到了什么样的错误。大多数时候,这项值是200,它表示服务器已经成功地响应浏览器的请求,一切正常。
  7. 发送字节数:表示发送给客户端的总字节数。它告诉我们传输是否被打断(该数值是否和文件的大小相同)。把日志记录中的这些值加起来就可以得知服务器在一天、一周或者一月内发送了多少数据。

Apache访问日志配置

日志格式

apache中日志记录格式主要有两种,普通型(common)和复合型(combined),安装使用普通型(common)类型

combinedcommon

combinedIPURIHTTP状态ReferrerUserAgent

commonIPURIHTTP状态ReferrerUserAgent

日志参数

配置Apache访问日志格式主要有两个参数,即LogFormat指令和CustomLog指令

LogFormat指令:定义格式并为格式指定一个名字,以后我们就可以直接引用这个名字。
CustomLog指令:设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。

# 定义普通日志的格式和名字

LogFormat “%h %l %u %t “%r” %>s %b” common

#日志的保存位置及分类

CustomLog “logs/access.log” common

  • %h  远程主机, IP
  • %l   远程登录名
  • %u  远程用户名
  • %t  
  • %r” 请求第一行
  • %>s  状态
  • %b 传送字节
  • %{format}iformat
  • %{format}CCookieformat
  • %{format}eformat
  • %{format}nnoteformat
  • %{format}oformat
  • %a IP
  • %A IP
  • %B 0
  • %D
  • %f: 
  • %H使
  • %m使
  • %p
  • %q
  • %T
  • %U URL
  • %v
  • %V
  • %X使
  • %I
  • %O

Apache错误日志详解

[Thu Sep 22 22:29:59.952612 2022] [core:notice] [pid 1498] AH00052: child pid 9956 exit signal Bus error (7)

  1. 错误发生的日期和时间
  2. 错误的级别或严重性
  3. 导致错误的IP地址
  4. 错误信息本身

Apache常用功能

apache日志访问量都比较大,建议配置access_log

LogFormat “%h %l %u %t \”%r\” %>s %b common

CustomLog|/usr/bin/rotatelogs /usr/local/apache/logs/access_log 86400 common

/usr/bin/rotatelogs

rotatelogsApacheApache

如果/usr/bin/rotatelogs不存在,建议检查apache/bin目录下是否存在

作者 admin

百度广告效果展示