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

你好!
我是井上,Beyond Shikoku 办公室的波斯猫。
作为一名基础设施工程师,我每天都会遇到系统故障,因此经常会接触到访问日志。
这次,我想简单解释一下如何解读 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 = 服务器端发生错误
概括
能够查看访问日志将大大提高您的基础设施工程技能!
由于我每天都要处理各种警报,所以当Web服务器负载突然增加时,我总是会查看访问日志。
查看访问日志还能让我了解是否存在恶意访问尝试。
我还会仔细研究访问日志,眼睛都离不开它们!(`・ω・´)
在博客上写下这些内容,也加深了我对这方面的理解。
我将继续经历反复试验的过程,
撰写博客文章,分享我最喜欢的命令以及我个人想要更好地了解的事情。
另外,虽然我们这次解释了如何读取 Apache 访问日志,但另一位成员也写了一篇关于如何读取 nginx 访问日志的博客文章,所以也请大家看看!
每天都在成长,每天都在进步。
我必须每天都提升自己!
感谢您阅读到最后。
▼ 我们的云/服务器运行监控服务(7x24小时/365天)点击此处了解
18
