[Apache] 阅读访问日志的简易指南!*2025年2月更新

你好!
我是井上,一只来自 Beyond Co., Ltd. 四国办事处的波斯猫。
作为一名基础设施工程师,我日常排查问题时经常需要查看访问日志。
本文将简要介绍如何解读 Apache 访问日志。
点击此处了解如何阅读 Nginx 访问日志,该日志经常与 Apache 的访问日志进行比较。
什么是访问日志?
访问日志是与服务器连接的历史记录并记录诸如日期和时间、访问源的 IP 地址、请求的页面以及使用的浏览器和设备等信息。
基础设施工程师使用访问日志的一个例子是响应警报。
检查发出警报的服务器的访问日志,查看访问次数与正常情况相比是增加还是减少。如果访问次数突然增加,则表示服务器负载过重。
我们可能还会检查正在访问的页面,以确保它们确实存在。
我们来看一下 Apache 访问日志!
[root@test-aws-harukainoue httpd]# tail access_log xxx.xx.xx.xxx - - [11/Dec/2019:12:01:22 +0000] "GET / HTTP/1.0" 200 35 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3602.2 Safari/537.36"
以下摘录部分结果。
这里有一堆我不认识的字母数字字符和符号。
让我们来分析访问日志!
默认的 Apache 配置文件位于
/etc/httpd/conf/httpd.conf 如果您查看“/etc/httpd/conf/httpd.conf”文件的内容,
LogFormat "%h %l %u %t \"%r\" %t %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog "logs/access_log" combined
这说明组合格式被设置为默认格式。
日志将以这种格式显示。
| 格式字符串 | 格式的含义 | 访问日志值 | 评论 |
| %h | 远程主机的IP地址 | xxx.xx.xx.xxx | |
| %l | 连接源的用户名 | - (未设置) | 大多数情况下,此值设置为 -,但 如果服务器上存在 mod_ident 并且 IdentityCheck 指令设置为 On,则会输出一个值。 |
| %u | 远程用户 | - (未设置) | |
| %t | 访问日期和时间 | 2019/11/11 12:01 | |
| \"%r\" | 已访问的文件 | ・操作 = 获取
・HTTP = 协议 资源 = 1.0 |
反斜杠显示为“\”。 |
| %>s | 状态码 | 200(正常) | |
| %b | 资源积分转移金额 | 35 字节 | |
| "%{Referer}i" | 访问源 URL | - (未设置) | 它会输出用户是通过其他网站访问还是 |
| "%{User-Agent}i" | 您使用的是什么操作系统和浏览器? | Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/72.0.3602.2 Safari/537.36 | ・操作系统 = Linux
・浏览器 = Chrome |
简单介绍一下状态码的含义
状态码是网络服务器和网络浏览器用来传递其状态的数字(代码)。
・200 = 请求成功
・301 = 请求的页面已移至其他页面
・302 = 暂时移至其他页面
・403 = 无权查看请求的页面
・404 = 请求的页面不存在
・500 = 服务器端发生错误
概括
能够查看访问日志将大大提高您的基础设施工程技能!
每天处理警报时,如果服务器负载突然增加,我都会查看访问日志。
查看访问日志还能发现是否有恶意访问。
我也经常查看访问日志!('・ω・')
写这篇博文后,我对访问日志的理解也加深了。
继续尝试,并
撰写博客,分享我最喜欢的命令以及我个人想要了解更多的内容。
另外,虽然我们这次解释了如何读取 Apache 访问日志,但另一位成员也写了一篇关于如何读取 nginx 访问日志的博客文章,所以也请大家看看!
每天都在成长,每天都在进步。
我必须每天都更新自己!
感谢您阅读到最后。
18