apache访问日志请求处理分布分析包括状态码、路径、ip、耗时及user-agent分布:2xx为主表健康,4xx/5xx提示客户端或服务端问题;路径统计定位热点与异常;%d字段分析性能瓶颈;ip和ua识别爬虫或攻击。

Apache 访问日志中的请求处理分布,主要指不同响应状态码(如 200、404、500)、不同请求路径、不同客户端 IP 或不同耗时区间的请求占比情况。分析这些分布能快速识别服务健康度、异常流量和性能瓶颈。
看状态码分布,判断服务整体健康状况
状态码是请求结果的直接反馈,高频出现的非 2xx 状态往往意味着问题:
-
2xx(尤其是 200)代表成功,占比应占主体; -
3xx反映重定向行为,突然增多可能说明配置变更或跳转链异常; -
4xx(如 404、403)多为客户端问题,404 集中在某类 URL 可能是链接失效或爬虫扫目录; -
5xx(如 500、502、504)属于服务器端错误,需立即关注,尤其当 502/504 频发,常指向后端服务不可用或网关超时。
常用命令快速统计:
awk '{print $9}' /var/log/apache2/access.log | sort | uniq -c | sort -rn
按请求路径统计热门与异常资源
观察哪些 URL 被频繁访问或反复报错,可定位业务热点或攻击入口:
- 统计访问最多的前 10 个路径:
awk '{match($7, /^"[^"]+/); path=substr($7, RSTART+1, RLENGTH-1); print path}' /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -10 - 筛出所有返回 404 的路径并去重:
awk '$9==404 {match($7, /^"[^"]+/); path=substr($7, RSTART+1, RLENGTH-1); print path}' /var/log/apache2/access.log | sort -u
分析请求耗时分布(需日志含 %D 字段)
若日志已启用 %D(微秒级处理时间),可划分耗时区间评估性能:
- 耗时
- 100ms–1s:需关注慢接口;
1s:可能存在数据库查询阻塞、外部依赖延迟等问题。
Apache Superset Dashboard and SQL Exploration Skill下载Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
示例分段统计(假设第12字段为 %D):
awk '$12 = 100000 && $12 = 1000000 {c++} END {print "Fast:" a, "Medium:" b, "Slow:" c}' /var/log/apache2/access.log
结合 IP 和 User-Agent 看请求来源特征
同一 IP 短时间内大量请求可能是爬虫或攻击;特定 User-Agent 高频出错,可能指向某类客户端兼容性问题:
- 查看请求量 Top 5 的 IP:
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -5 - 统计含 “python-requests” 或 “sqlmap” 的 UA(提示自动化工具):
awk -F'"' '$6 ~ /python-requests|sqlmap|nmap|wget/ {print $6}' /var/log/apache2/access.log | sort | uniq -c
不复杂但容易忽略










