统计访问 /api/login 的总次数

XMSDN

Linux统计接口访问量的三种实用方法

在日常的运维和开发工作中,监控Web服务的流量是至关重要的一环,特别是当你的后端是微服务架构,或者前端调用后端API时,了解某个具体接口被调用了多少次,对于性能调优、容量规划以及排查故障都非常有帮助。

在Linux环境下,最直接、最高效的方式就是通过Web服务器日志来统计,本文将介绍三种基于Linux命令行统计接口访问量的实用方法,适用于Nginx、Apache等主流Web服务器。

统计访问 /api/login 的总次数

使用 grep 和 wc 统计(最基础)

这是最简单的方法,适用于日志格式清晰,且只需要统计总次数的场景。

定位日志文件 通常Nginx的日志位于 /var/log/nginx//var/log/httpd/ 目录下。

使用 grep 筛选特定接口 假设我们要统计登录接口 /api/login 的访问量,可以使用 grep 命令提取包含该URL的日志行。

使用 wc 统计行数 wc -l 命令用于统计文件中的行数,在日志统计中,每一行通常代表一次请求。

命令示例:


进阶:按时间范围统计 上面的命令统计的是所有时间(可能包含历史数据),为了获取最近一小时的访问量,我们可以结合 sedawk 过滤时间戳。

# 统计最近一小时(假设日志时间格式为 [2023/10/27 10:00:00])
grep "api/login" /var/log/nginx/access.log | sed -n '/2023\/10\/27 10:00:00/,/2023\/10\/27 11:00:00/p' | wc -l

使用 awk 进行精确字段分析(推荐)

grep 只能做简单的匹配,而 awk 是Linux强大的文本处理工具,它允许你按“字段”操作,Web服务器日志通常以空格分隔,其中包含请求方法、URL、状态码等信息。

场景: 假设我们需要统计某个接口的 成功访问量(状态码为200)。

命令示例:

awk '$7 == "/api/user/info" && $9 == 200 {count++} END {print count}' /var/log/nginx/access.log

命令解析:

  • $7:代表日志中的第7列,通常对应URL字段(取决于日志配置,nginx默认配置中 $request 在第7列)。
  • $9:代表日志中的第9列,通常对应HTTP状态码。
  • END {print count}:在处理完所有行后,输出最终的计数结果。

更复杂的场景:统计包含参数的接口 如果接口URL是 /api/search?q=apple,且日志记录的是完整URL,直接用 grep 最方便,但如果日志记录的是 /api/search,而你只想统计带参数的请求,可以使用正则匹配:

awk '$7 ~ /api\/search/ && $9 == 200 {count++} END {print count}' /var/log/nginx/access.log

实时监控接口流量(动态统计)

如果你不想等待日志轮转,而是

💡 温馨提示

📌 阅读须知 Rules & Notice

本站坚持免费分享,致力于为大家提供实用、优质的内容与资源。

🔗欢迎大家收藏与转发,转载请保留本站链接,请勿私自去除版权信息。

📚所有外部整理资源,仅作学习交流使用,请勿用于各类商业用途。

🤝网络相聚本是缘分,希望大家文明交流,理性浏览。

🛠️若发现内容有误或涉及侵权,我们将第一时间处理整改。

💖 感谢每一位朋友的陪伴与支持

✨ 用心分享,一路同行 ✨

目录[+]