日志一天几十万行不知道看什么?盯住这几类记录就够

来源:互联网 时间:2026-09-29

日 IP 上万的站,access.log 一天几十万行很正常。全看一遍不可能,逐行翻也没有意义。网站日志怎么看才有效率?答案是先做减法:用几条命令把值得看的记录筛出来,剩下的正常流量不用管。下面这四类记录是第一优先级。

一、先筛 5xx,服务端错误最要命

正常流量的状态码以 200 和 304 为主,只要出现 5xx,就说明有访客真的没拿到页面。5xx 里 500 是程序报错,502 是后端进程没活着或者被重启了,504 是后端处理太慢超过超时。筛出来之后按 URL 聚合一下,能立刻看出是整站都挂还是某个页面出问题。下面这条命令先列出所有 5xx 记录,再看它们集中在哪些页面上。要改的是日志路径,跑完如果一个 URL 反复 502,去看对应的后端进程是不是被 OOM 杀过。

# 筛选 5xx 记录,并按 URL 聚合看集中在哪

grep -E ' 5[0-9][0-9] ' /var/log/nginx/access.log | tail -50

grep -E ' 5[0-9][0-9] ' /var/log/nginx/access.log \

| awk '{print $7}' | sort | uniq -c | sort -rn | head -20

二、再聚合 IP,看谁在刷

正常访客的访问量是分散的,一旦某个 IP 在日志里出现上千次,基本就是采集、压测或者攻击。统计每个 IP 的请求次数,取前二十名,再挑其中最可疑的几个反查它们请求了哪些地址、用的什么客户端标识。如果它专挑接口地址、请求间隔还极规律,那就是明显的机器行为,可以直接在防火墙或 nginx 里封掉。

# 请求量最大的 20 个 IP

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

# 追查某个可疑 IP 具体在请求什么

grep '^203.0.113.5 ' /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head

三、盯住 404 集中的路径

404 分两类,处理方式完全不同。一类是自己造成的死链,比如改了栏目结构、删了文章却没有做跳转,这类 404 会伤到用户体验和已有排名,要尽快补 301 或者恢复内容。另一类是被扫描器探测的路径,比如后台登录页、配置文件、数据库管理工具的地址,这类不是你的问题,但也提醒你这些路径不能暴露。把 404 的请求路径聚合一下,正常内容路径归到第一类,可疑路径归到第二类,前者去修,后者去挡。

# 统计 404 最集中的请求路径

grep ' 404 ' /var/log/nginx/access.log \

| awk '{print $7}' | sort | uniq -c | sort -rn | head -20

四、把命令固化成日报脚本

每天手动敲这几条命令容易漏,写成一个脚本挂到定时任务里,早上把结果发到邮箱,扫一眼就够。下面这段脚本输出四段:状态码分布、Top IP、Top URL、404 集中路径。要改的是日志路径和输出文件位置,跑完看结果,哪一项数字比平时大了一截,就去对应那一节深挖。

#!/bin/bash

# 日志日报:每天跑一次,把可疑记录汇总出来

LOG="/var/log/nginx/access.log"

OUT="/tmp/log_daily.txt"

{

echo "== 状态码分布 =="; awk '{print $9}' "$LOG" | sort | uniq -c | sort -rn | head

echo "== Top IP ==";     awk '{print $1}' "$LOG" | sort | uniq -c | sort -rn | head

echo "== Top URL ==";    awk '{print $7}' "$LOG" | sort | uniq -c | sort -rn | head

echo "== 404 集中路径 =="; grep ' 404 ' "$LOG" | awk '{print $7}' | sort | uniq -c | sort -rn | head

} > "$OUT"

echo "日报已生成:$OUT

几十万行日志里真正需要你动手的,往往就是这四类记录里的几十条。把它筛出来,日志才从负担变成工具。

相关阅读:

《网站日志怎么看?access.log 关键字段与异常识别》

《网站访问速度测试方法:多节点测速与瓶颈判定》

《nginx配置改完就报错?先看这几个高频出错位置》

相关文章

标签:

A5创业网 版权所有