温馨提示×

如何统计日志访问次数

小樊
80
2026-10-05 09:55:09
栏目: 编程语言

统计日志访问次数,通常取决于日志格式和你想统计的维度(总次数、IP 次数、URL 次数、时间段等)。下面以最常见的 Nginx / Apache 访问日志 为例,介绍几种实用方法。


一、统计总访问次数

wc -l access.log

每一行一般代表一次访问(前提是标准格式日志)


二、按 IP 统计访问次数(最常用)

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

示例输出:

10231 192.168.1.10
8840 10.0.0.5

只看前 10 个 IP:

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

三、按 URL 统计访问次数

awk '{print $7}' access.log | sort | uniq -c | sort -nr

$7 通常是请求路径(如 /index.html)


四、按时间段统计(如按小时)

awk '{print substr($4, 2, 14)}' access.log | sort | uniq -c

或按小时:

awk '{print substr($4, 2, 11)}' access.log | sort | uniq -c

五、统计特定状态码(如 404 / 500)

grep " 404 " access.log | wc -l

或:

awk '$9 == 404' access.log | wc -l

六、统计某 IP 的访问次数

grep "192.168.1.10" access.log | wc -l

七、进阶工具(适合大日志)

1. GoAccess(实时可视化)

goaccess access.log -o report.html --log-format=COMBINED

2. ELK / Loki

  • 适合生产环境
  • 可统计:
    • QPS
    • 热门接口
    • 异常分布

八、如果你用的是其他日志

  • 应用日志(Java / Python)
  • CDN 日志
  • 容器日志(Docker / K8s)

可以贴一段日志样例,我可以帮你写精确的统计命令。

你是想统计哪种日志?

0 踩