温馨提示×

怎么过滤Debian Apache日志

小樊
46
2026-08-12 02:11:01
栏目: 智能运维

在 Debian 上过滤 Apache 日志,常见需求有 实时过滤、按条件提取、统计、排除 等。下面按使用场景给你一套实用方法(适用于 Debian 10/11/12,Apache 2.4)。


一、Apache 日志位置(Debian 默认)

# 访问日志
/var/log/apache2/access.log
/var/log/apache2/other_vhosts_access.log

# 错误日志
/var/log/apache2/error.log

二、基础过滤(最常用)

1️⃣ 查看指定 IP 的访问记录

grep "1.2.3.4" /var/log/apache2/access.log

2️⃣ 统计访问最多的 IP

awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head

三、按时间过滤

1️⃣ 查看某一天的访问日志

grep "10/Jan/2026" /var/log/apache2/access.log

2️⃣ 查看某小时

grep "10/Jan/2026:14:" /var/log/apache2/access.log

四、按状态码过滤(非常实用)

1️⃣ 只看 404 错误

awk '$9 == 404' /var/log/apache2/access.log

或:

grep '" 404 ' /var/log/apache2/access.log

2️⃣ 只看 500 错误

grep '" 500 ' /var/log/apache2/access.log

五、按 URL / 请求路径过滤

1️⃣ 访问某个接口

grep "/api/login" /var/log/apache2/access.log

2️⃣ 只看 POST 请求

grep '"POST ' /var/log/apache2/access.log

六、排除某些内容(反向过滤)

1️⃣ 排除本机 IP

grep -v "127.0.0.1" /var/log/apache2/access.log

2️⃣ 排除静态文件(css/js/png)

grep -v -E "\.(css|js|png|jpg|gif)" /var/log/apache2/access.log

七、实时过滤(tail + grep)

tail -f /var/log/apache2/access.log | grep "404"

只监控 500 错误:

tail -f /var/log/apache2/error.log

八、使用 goaccess(强烈推荐)

安装

sudo apt install goaccess

实时分析

goaccess /var/log/apache2/access.log --log-format=COMBINED

或生成 HTML 报告:

goaccess /var/log/apache2/access.log \
  --log-format=COMBINED \
  -o /var/www/html/report.html

浏览器打开:

http://服务器IP/report.html

九、按虚拟主机过滤

Debian 默认使用:

/var/log/apache2/other_vhosts_access.log

格式:

example.com:80 1.2.3.4 - - [time] "GET / HTTP/1.1" 200 ...

过滤某个域名

grep "example.com" /var/log/apache2/other_vhosts_access.log

十、日志太大怎么办?

1️⃣ 查看压缩历史日志

zcat /var/log/apache2/access.log.1.gz | grep "404"

或:

zgrep "404" /var/log/apache2/access.log.1.gz

十一、进阶:用 awk 做复杂过滤(示例)

只看访问量 > 100 的 IP:

awk '{ip[$1]++} END {for (i in ip) if (ip[i]>100) print ip[i], i}' \
/var/log/apache2/access.log

十二、总结(常用组合)

✅ 实时看 404
✅ 统计访问 IP
✅ 排除静态资源
✅ 按时间 / 状态码 / URL 过滤
✅ 用 goaccess 可视化


如果你愿意,可以告诉我:

  • ✅ 想过滤 访问日志还是错误日志
  • ✅ 想统计 IP / 接口 / 攻击 / 爬虫
  • ✅ 是否用于 安全分析 / 性能优化

我可以给你 精准的一行命令或脚本

0