awk分析nginx日志
作者:@skyflask
转载本文请注明出处:https://www.cnblogs.com/skyflask/p/16873162.html
目录
nginx日志字段说明
根据访问ip进行统计
统计nginx的响应状态码
根据ua统计
根据时间统计,统计每分钟的访问量、每秒钟的访问量
nginx日志过滤
cat a.txt |awk -F '|' '{if(length($9)==0 && $4!="InsertRsult") $9=0;else if($4=="InsertRsult") $9=111} {print $4,$5,$6,$9,$12,$14}'
求和
1 | cat /data/home/user00/mtail/after_count_KVLogReport .log| grep 2022-12-25_10| grep 29022| awk '{print $6}' | awk '{sum += $1};END {print sum}' |
nginx日志字段说明
127.0.0.1 - - [31/Aug/2018:16:11:16 +0800] "GET /50x.html HTTP/1.1" 200 537 "-" "curl/7.29.0"
访问ip、访问时间、请求方式、请求url、响应状态码、响应body体大小、ua
根据访问ip进行统计
cat access.log | awk '{count[$1]++}END{for(ip in count){print ip,count[ip]}}'
cat access.log | awk '{count[$1]++}END{for(ip in count){print ip"\t"count[ip]}}'|sort -rnk 2
统计nginx的响应状态码
cat access.log|awk '{count[$9]++}END{for(ip in count){print ip,count[ip]}}' #各个状态码数量
cat access.log|awk '{count[$9]++}END{for(status in count){print status,count[status]/NR*100"%"}}' #比例统计
cat access.log|awk '{count[$9]++}END{for(status in count){print status"\t"int(count[status]/NR*100)"%"}}' #比例统计保留整数
根据ua统计
cat access.log|awk -F'"' '{print $(NF-1)}'
cat access.log|awk -F'"' '{count[$(NF-1)]++}END{for(ua in count){print ua,count[ua]}}'
根据时间统计,统计每分钟的访问量、每秒钟的访问量
cat access.log |awk '{print $4}'|awk -F':' '{print $1":"$2":"$3}'|awk '{count[$1]++}END{for(time in count){print time,count[time]}}' #统计每分钟的请求数
cat access.log|awk '{count[$4]++}END{ for(time in count){print time,count[time]} }' #每秒钟请求,并发
nginx日志过滤
cat access.log|awk '$9~/^2/' #状态码,正常请求
cat access.log|awk '$9~/^5/' #状态码,处理异常
cat access.log |awk -F'"' '$(NF-1) ~ /iPhone/' #过滤含有iphone的ua
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?