awk分析日志,统计ip、状态码、域名,详细示例【超实用】

一、第一步,先确认日志格式
1、日志格式示例如下,各参数的含义在此暂不做解释,以下配置在nginx.conf中定义;

nginx日志格式

2、具体nginx日志示例如下

nginx日志示例

注意日志中的列与日志格式中的列的对应关系;由于空格的存在,并不完全是一 一对应;
如:日志中的第一列是ip,对应$remote_addr;四、五两列是时间对应[$time_local],第二列是“-”,第三列也是“-”对应$remote_user(信息为空则为“-”),第六列是状态码对应$status,第七列是$host,等等

二、第二步,进入主题,开始分析,简单分析某一列的信息
  1. 统计访问次数据前10的ip,配合使用sort排序
    在这里插入图片描述
[root@better~day /usr/local/nginx/logs]# awk '{sum[$1]++}END{for(ip in sum) print ip, sum[ip]}' access_1.log | sort -rn -k 2|head
100.97.90.67 2380
100.97.90.71 2375
100.97.90.84 2373
100.97.90.78 2363
100.97.90.89 2351
100.97.90.64 2344
100.97.90.75 2332
100.97.90.104 2329
100.97.90.96 2325
100.97.90.77 2325

awk ‘{sum[$1]++}END{for(ip in sum) print ip, sum[ip]}’ access_1.log | sort -rn -k 2|head
在此简要说明以下sort命令的参数,-r 逆序,从大到小,-n 已数值作比较,可以连写为-rn;
-k 2 根据第二列进行排序,第二列为sum[ip],即单个ip的访问量;

  1. for、if嵌套,统计访问量高于某个临界值的ip,例如大于2350
[root@better~day /usr/local/nginx/logs]# awk '{sum[$1]++}END{for(ip in sum)if(sum[ip]>2350) print ip, sum[ip]}' access_1.log | sort -rn -k 2
100.97.90.67 2380
100.97.90.71 2375
100.97.90.84 2373
100.97.90.78 2363
100.97.90.89 2351
  1. 统计各状态码的次数
    在这里插入图片描述
[root@better~day /usr/local/nginx/logs]# awk '{sum[$6]++}END{for(status in sum)if(sum[status]>2300) print status, sum[status]}' access_1.log | sort -rn -k 2
200 324475
404 24623
302 16738
304 2836
三、多列综合分析
  1. 统计状态码为200、访问量最大的ip前5名(2列)
[root@better~day /usr/local/nginx/logs]# awk '{if($6=="200")sum[$1,$6]++}END{for(ip_num in sum)print ip_num,sum[ip_num]}' access_1.log |sort -rn -k 2|head -5
100.97.90.71 200 2052
100.97.90.67 200 2047
100.97.90.84 200 2034
100.97.90.78 200 2012
100.97.90.99 200 2009
  1. 其它更多列同时分析时,与上类似,sum[$1$2$3]++等等,sum[$1,$6](有逗号)与sum[$1$6](无逗号)的区别,在于打印的结果是否有空格。
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值