Debian Tomcat 访问日志的请求统计分析
一 日志位置与格式
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log" suffix=".txt"
pattern="combined" />
上述目录与配置方式适用于 Debian 上的 Tomcat 部署。二 命令行快速统计
| 统计目标 | 命令示例 | 说明 |
|---|---|---|
| 总请求数 | `zcat localhost_access_log.*.txt.gz | wc -l` |
| Top N IP | `zcat localhost_access_log.*.txt.gz | awk ‘{print $1}’ |
| Top N URL | `zcat localhost_access_log.*.txt.gz | awk ‘$7 ~ /^// {print $7}’ |
| 状态码分布 | `zcat localhost_access_log.*.txt.gz | awk ‘{print $9}’ |
| 按小时请求趋势 | `zcat localhost_access_log.*.txt.gz | awk -F: ‘{print $2}’ |
| 响应时间分布 | `zcat localhost_access_log.*.txt.gz | awk -F’"’ ‘{print $(NF-1)}’ |
| Top Referer | `zcat localhost_access_log.*.txt.gz | awk -F’"’ ‘{print $(NF-3)}’ |
| Top User-Agent | `zcat localhost_access_log.*.txt.gz | awk -F’"’ ‘{print $(NF-2)}’ |
| 指定时间窗口 | `zcat localhost_access_log.*.txt.gz | awk ‘$4 ~ /[10/Nov/2025:14/ {print $0}’ |
head -n1 查看样例行,必要时调整 awk 列号或分隔符。三 可视化与长期监控
四 日志切割与保留策略
/opt/tomcat/logs/localhost_access_log.*.txt {
daily
missingok
rotate 30
compress
delaycompress
notifempty
copytruncate
dateext
}
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="combined" rotatable="true" />
find /opt/tomcat/logs -name "localhost_access_log*.txt*" -mtime +30 -delete
以上做法可避免单文件过大、便于快速统计与合规留存。五 性能与安全建议