22人参与 • 2025-05-14 • Redis
tail -f /var/log/nginx/access.log # 实时查看访问日志 tail -f /var/log/nginx/error.log # 实时查看错误日志
# 统计各类状态码数量 awk '{print $9}' access.log | sort | uniq -c | sort -nr # 统计 404 错误的 url grep ' 404 ' access.log | awk '{print $7}' | sort | uniq -c | sort -nr # 统计 500 错误的 ip 和时间 grep ' 500 ' access.log | awk '{print $1, $4}'
# 统计访问最多的前 10 个 url awk '{print $7}' access.log | sort | uniq -c | sort -nr | head -10 # 统计大流量消耗的资源 awk '{print $7, $10}' access.log | sort -k2 -nr | head -10
# 统计访问 ip 数量 awk '{print $1}' access.log | sort | uniq | wc -l # 统计访问最频繁的前 10 个 ip awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 # 查看特定 ip 的详细访问记录 grep '192.168.1.100' access.log
# 提取响应时间字段(需日志包含 $request_time) awk '{print $nf}' access.log | sort -n | tail -10 # 最慢的 10 个请求 # 计算平均响应时间 awk '{sum+=$nf} end {print "average:", sum/nr}' access.log # 查找响应时间超过 1 秒的请求 awk '$nf > 1 {print $4, $7, $nf}' access.log
# 按小时统计访问量 awk '{print substr($4, 14, 2)}' access.log | sort | uniq -c # 统计特定时间段的访问(如 10:00-11:00) grep ' \[01/jan/2025:10:' access.log | wc -l
# 统计不同浏览器/爬虫的访问量 awk '{print $12}' access.log | sort | uniq -c | sort -nr # 查找爬虫访问记录 grep -i 'bot|spider' access.log
# 统计不同 http 方法的使用频率 grep -op '^\s+ \k\s+' access.log | sort | uniq -c
# 统计外部链接来源 grep -v '"-"' access.log | awk '{print $11}' | sort | uniq -c | sort -nr
# 找出访问量最大且响应最慢的 10 个 url awk '{print $7, $nf}' access.log | sort -k2 -nr | head -10 | sort -k1 # 分析特定 ip 的行为(如查看是否是扫描器) grep '192.168.1.100' access.log | awk '{print $7}' | sort | uniq -c
# 按分钟统计请求数和流量 awk '{split($4, a, ":"); minute=a[2]":"a[3]; count[minute]++; bytes[minute]+=$10} end {for(m in count) print m, count[m], bytes[m]}' access.log | sort
以上命令假设 nginx 日志采用默认的 combined 格式:
log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
如果使用自定义格式,需相应调整命令中的字段索引。
对于超大日志文件,可先使用 grep/sed 过滤再分析:
grep '2025:05:14' access.log | awk '{print $7}' | sort | uniq -c
定期归档旧日志并压缩,减少分析范围。
考虑使用 elk stack 或 graylog 进行实时日志分析和可视化。
通过这些命令,你可以快速定位性能瓶颈、安全威胁和用户行为模式,提高系统运维效率。
到此这篇关于nginx中常见日志分析命令合集的文章就介绍到这了,更多相关nginx日志分析命令内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论