首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
软件
运维软件
办公软件
书籍资源
技术陪跑营
重要信息
首页 运维教程系统服务【linux】apache的访问日志详解及演练

【linux】apache的访问日志详解及演练

文章目录

前言
一. apache日志分类
二. apache的日志格式详解
1. 输出最近的一段访问日志
2. 日志的字段所代表的内容如下:
3. apache访问日志配置文件参数详解
三. 配置修改实战
总结

前言

遇到问题我们一般需要看日志,服务日志和系统日志,但是apache有个访问日志,这个日志是用来做啥的,我们今天一起来探讨下。

一. apache日志分类

apache的配置文件httpd.conf里定义了访问日志的路径,以及错误日志的路径。 如果是SSL服务的话也可能存在ssl_acess_log日志,当然还有ssl_error_log 和 ssl_request_log都是与SSL相关的。
在这里插入图片描述

[root@xinsz08 logs]# ls
access_log  error_log  httpd.pid  ssl_request_log

二. apache的日志格式详解

1. 输出最近的一段访问日志

[root@xinsz08 logs]# tail access_log 
203.208.60.97 - - [28/Jul/2020:16:23:04 +0800] "GET / HTTP/1.1" 200 8818
46.229.168.141 - - [28/Jul/2020:16:24:28 +0800] "GET /home.php?ac=favorite&formhash=5dc27e6e&handlekey=favoriteforum&id=51&mod=spacecp&type=forum HTTP/1.1" 200 1215
216.244.66.249 - - [28/Jul/2020:16:24:33 +0800] "GET /home.php?mod=space&uid=815&do=share&view=me&from=space&type=link HTTP/1.1" 200 12752
154.211.129.218 - - [28/Jul/2020:16:25:38 +0800] "POST /uc_server/index.php HTTP/1.1" 200 2
47.92.7.83 - - [28/Jul/2020:16:25:58 +0800] "GET / HTTP/1.1" 200 9228
46.229.168.154 - - [28/Jul/2020:16:26:17 +0800] "GET /home.php?ac=pm&daterange=2&handlekey=showmsg_5&mod=spacecp&op=showmsg&pid=2036&pmid=0&tid=1745&touid=5 HTTP/1.1" 200 4476
46.229.168.144 - - [28/Jul/2020:16:26:25 +0800] "GET /forum.php?goto=lastpost&mod=redirect&tid=145 HTTP/1.1" 302 20
46.229.168.143 - - [28/Jul/2020:16:26:30 +0800] "GET /forum.php?mod=viewthread&tid=145 HTTP/1.1" 200 9617
47.106.201.78 - - [28/Jul/2020:16:26:46 +0800] "GET / HTTP/1.1" 200 9229
47.103.47.81 - - [28/Jul/2020:16:26:59 +0800] "GET / HTTP/1.1" 200 9227

访问日志记录了所有对web服务器的访问活动:
47.103.47.81 – – [28/Jul/2020:16:26:59 +0800] “GET / HTTP/1.1” 200 9227

2. 日志的字段所代表的内容如下:

  1. 远程主机IP:表明访问网站的是谁 (47.103.47.81)
  2. 空白(E-mail):为了避免用户的邮箱被垃圾邮件骚扰,第二项就用“-”取代了

  3. 空白(登录名):用于记录浏览者进行身份验证时提供的名字。

    下图是上节课我们做的基于域名认证的截图,可以看到IP后面- – 的第二个-是gaosh:
    在这里插入图片描述

  4. 时间:用方括号包围,而且采用“公用日志格式”或者“标准英文格式”。 时间信息最后的“+0800”表示服务器所处时区位于UTC之后的8小时。

  5. 方法+资源+协议:服务器收到的是一个什么样的请求。该项信息的典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 资源 协议”。 METHOD: GET、POST、HEAD、…… RESOURCE: /、index.html、/default/index.php、……(请求的文件) PROTOCOL: HTTP+版本号
  6. 状态代码:请求是否成功,或者遇到了什么样的错误。大多数时候,这项值是200,它表示服务器已经成功地响应浏览器的请求,一切正常。
  7. 发送字节数:表示发送给客户端的总字节数。它告诉我们传输是否被打断(该数值是否和文件的大小相同)。把日志记录中的这些值加起来就可以得知服务器在一天、一周或者一月内发送了多少数据

3. apache访问日志配置文件参数详解

apache中的日志格式分为:普通型和复合型,默认是普通型

apache访问日志格式主要有两个参数:
– logFormat
在这里插入图片描述
CustomLog
在这里插入图片描述
两者的意思是:
LogFormat指令:定义格式并为格式指定一个名字,以后我们就可以直接引用这个名字。
CustomLog指令:设置日志文件,并指明日志文件所用的格式

详细的参数
参数|含义

%h|远程主机
%l(小写的L)|远端登录名
%u|远程用户名
|%t|登录时间或者请求时间
%r|请求的第一行
%>s|状态
%b|传送字节数数
%{Referer}i|请求来源
%{User-agent}i|客户端浏览器提供的浏览器识别信息

apache文档中给出的日志格式串变量及其含义:

 %a: 远程IP地址  
 %A: 本地IP地址  
 %B: 已发送的字节数,不包含HTTP头  
 %b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。  
  %{FOOBAR}e: 环境变量FOOBAR的内容  
  %f: 文件名字  
  %h: 远程主机  
  %H 请求的协议  
  %Foobar}i: Foobar的内容,发送给服务器的请求的标头行。  
  %l: 远程登录名字(来自identd,如提供的话)  
  %m: 请求的方法  
  %{Foobar}n: 来自另外一个模块的注解“Foobar”的内容  
  %{Foobar}o: Foobar的内容,应答的标头行  
  %p: 服务器响应请求时使用的端口  
  %P: 响应请求的子进程ID。  
  %q: 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)  
  %r: 请求的第一行  
  %s: 状态。对于进行内部重定向的请求,这是指*原来*请求的状态。如果用%...>s,则是指后来的请求。  
  %t: 以公共日志时间格式表示的时间(或称为标准英文格式)  
 %{format}t: 以指定格式format表示的时间  
  %T: 为响应请求而耗费的时间,以秒计  
  %u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)  
  %U: 用户所请求的URL路径  
  %v: 响应请求的服务器的ServerName  
  %V: 依照UseCanonicalName设置得到的服务器名字

三. 配置修改实战

配置文件中修改:只保留时间,请求第一行,状态,请求来源
在这里插入图片描述
修改完后,重启apache
[root@gaosh-1 ~]# service httpd restart

查看日志的后十行:
在这里插入图片描述
我们再把请求来源改成高胜寒的日志格式几个字:
在这里插入图片描述

重启,访问测试,查看输出:

在这里插入图片描述

总结

我们很少去修改日志格式,但是有时候如果想要相应的参数,比如在渗透测试或者一些安全领域想要获取更详细的信息,这个时候是可以修改日志格式来达到自己想要的结果。

本文链接:http://www.geekyunwei.com/920.html

网友评论comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 公众号《极客运维之家》
扫二维码
扫二维码
返回顶部