访问日志分析
粘一段 Nginx 或 Apache 访问日志,自动统计请求数、独立 IP、传输量与 4xx/5xx 数量,并给出状态码分布、路径与 IP 榜单、按小时分布和错误请求明细,浏览器本地计算不联网。
0请求数
0独立 IP
04xx/5xx
0传输字节
认得哪些日志格式
标准 combined 与 common 都认:取方括号里的时间、引号里的请求行(方法 + 路径 + 协议)、后面的状态码与字节数。
带 vhost 前缀、前面多几列的自定义格式也能解 —— IP 取行首第一个字段,状态码和字节数从请求行后面那对数字取。解析不了的行会计数并跳过,不会算进统计里。
几个容易看错的地方
统计按日志里的原始字节数字段算,也就是响应体加上响应头,不是「实际传输量」(后者要减掉代理和压缩)。字段是 <code>-</code> 时按 0 算。
路径统计去掉了查询串,所以 <code>/a?x=1</code> 和 <code>/a?y=2</code> 会并成一条 <code>/a</code>;想分开看就把排序键换成完整请求行。
按小时那栏
直接取时间里的时数字段,不做时区换算 —— 日志里的时间通常已经是你服务器配置的那个时区。
ISO 格式的 <code>2026-10-09T13:55:36+08:00</code> 也认,但只有 24 小时周期,超过一天的跨度要按天自己分。
常见问题
为什么请求数比日志行数少?
有行没解析出来。提示里会写跳过几行,一般是格式不标准或中间夹了报错输出。逐行贴进来试一下就知道卡在哪。
能看出是谁在刷吗?
IP 榜按请求数排序,能看出量级;但一行里除了 IP 没有别的身份信息。要定位得更准得自己加 User-Agent 榜 —— 本页不解析 UA。
日志很大会不会卡?
十万行级别没问题,都是纯字符串扫描。要处理 GB 级日志就别往网页里贴了,这一页一次读全部内容。