Apache 的日志格式通常分为 访问日志(access log) 和 错误日志(error log)。最常见的是访问日志,它的“格式”由 LogFormat 指令定义。下面我用通俗方式给你讲怎么看。
常见位置:
/var/log/httpd/access_log/var/log/httpd/error_log/var/log/apache2/access.log/var/log/apache2/error.log查看命令示例:
tail -f /var/log/apache2/access.log
默认 Apache 常用的是 combined 格式,一行大概长这样:
192.168.1.10 - - [12/Jan/2026:10:25:33 +0800] "GET /index.html HTTP/1.1" 200 2326 "https://example.com/" "Mozilla/5.0 ..."
逐段解释:
| 内容 | 含义 |
|---|---|
192.168.1.10 |
客户端 IP |
- |
远程日志名(通常为 -) |
- |
认证用户(未登录为 -) |
[12/Jan/2026:10:25:33 +0800] |
访问时间(时区) |
"GET /index.html HTTP/1.1" |
请求方法、路径、协议 |
200 |
HTTP 状态码 |
2326 |
返回字节数 |
"https://example.com/" |
Referer(来源页) |
"Mozilla/5.0 ..." |
User-Agent(浏览器/客户端) |
在 httpd.conf 或 apache2.conf 里常见:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
常用变量含义:
%h:客户端 IP%l:远程登录名(几乎总是 -)%u:认证用户%t:时间%r:请求行(方法+URL+协议)%>s:状态码%b:响应大小%{Referer}i:来源%{User-Agent}i:客户端信息示例:
[Mon Jan 12 10:26:01.123456 2026] [core:error] [pid 1234] [client 192.168.1.10:55555] AH00124: Request exceeded the limit
解释:
# 看访问最多的 IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
# 看 404 请求
grep " 404 " access.log
# 看某 IP 的访问
grep "192.168.1.10" access.log
如果你愿意,可以把一段真实日志贴出来,我可以直接帮你逐条解读;或者告诉我你是 查问题 / 做统计 / 写分析脚本,我可以按场景讲。