温馨提示×

怎么统计日志访问次数

小樊
40
2026-08-17 11:10:09
栏目: 编程语言

统计日志访问次数,常见做法取决于日志格式统计维度(IP、URL、状态码、时间段等)。下面按最常见场景给你一套实用方法,从简单到进阶。


一、统计「访问次数最多的 IP」(最常见)

示例日志(Nginx access log)

192.168.1.10 - - [10/Oct/2024:10:00:01 +0800] "GET /index.html HTTP/1.1" 200
192.168.1.11 - - [10/Oct/2024:10:00:02 +0800] "GET /index.html HTTP/1.1" 200
192.168.1.10 - - [10/Oct/2024:10:00:03 +0800] "GET /api HTTP/1.1" 200

统计访问次数最多的前 10 个 IP

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

解释:

  • $1:取第一列(IP)
  • uniq -c:统计次数
  • sort -nr:按访问次数倒序

二、统计某个 URL 的访问次数

统计访问最多的 URL

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

$7 通常是 URL(视日志格式可能不同)


三、统计某个时间段的访问次数

按小时统计

awk '{print $4}' access.log | cut -d: -f1-2 | uniq -c

按分钟统计

awk '{print $4}' access.log | cut -d: -f1-3 | uniq -c

四、统计 HTTP 状态码访问次数

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

常见状态码:

  • 200:成功
  • 404:未找到
  • 500:服务器错误

五、统计「独立访客数(UV)」

awk '{print $1}' access.log | sort -u | wc -l

六、统计某 IP 的访问次数

grep "192.168.1.10" access.log | wc -l

七、使用 goaccess(强烈推荐,可视化)

安装

yum install goaccess -y
# 或
apt install goaccess -y

实时分析

goaccess access.log -c

生成 HTML 报告

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

✅ 可统计:

  • 访问 IP
  • URL
  • 时间分布
  • 状态码
  • 操作系统 / 浏览器

八、如果是其他日志类型

日志类型 建议
Apache 与 Nginx 类似
应用日志 grep + awk
大日志 awk / goaccess
超大规模 ELK / ClickHouse

九、我可以直接帮你写命令

你可以直接发我:

  • ✅ 日志示例(脱敏)
  • ✅ 想统计什么(IP / URL / 时间段 / 异常)

我可以直接给你一条可用的命令

0