全部博文(150)
分类: 系统运维
2017-04-12 12:18:08
按照要求统计某一时段内nginx日志中各服务的http总请求数、成功数和失败数
#!/bin/awk -f #分类按秒统计nginx日志中request/mts/query20/query30/rvs/rs/mts等等的http总请求数、成功数、错误数 # BEGIN{ #name变量从shell脚本中获取 nginx[name]=0; nginx_suc[name]=0; mts[name]=0; mts_suc[name]=0; query20[name]=0; query20_suc[name]=0; query30[name]=0; query30_suc[name]=0; rvs[name]=0; rvs_suc[name]=0; rs[name]=0; rs_suc[name]=0; rtei[name]=0; rtei_suc[name]=0; #debug #name="03/Nov/2012:09:00:01"; #print name,argv[1],argv[2] } { #access.log #第七列为用户请求连接 #统计nginx当前秒的总请求数 nginx[name]++ #统计nginx当前秒的成功总请求数 if($9<400) { nginx_suc[name]++ } #计算mts的当前秒的请求次数 if(substr($7,2,8)=="MTServer") { #counter_rs_all数组存放对应rvs数组时间段的RouterServer的请求次数 mts[name]++; #debug #print name; #print rs[name],counter_rs_all[name]; } #计算mts的当前秒的成功请求次数 if(substr($7,2,8)=="MTServer" && ($9<400)) { mts_suc[name]++; #debug #print name; #print rs[name],counter_rs_suc[name]; } #计算query2.0总数 if(substr($7,2,14)=="QueryServer2.0") { query20[name]++; #print name,query20[name]; } #计算query20成功总数 if(substr($7,2,14)=="QueryServer2.0" && ($9<400)) { query20_suc[name]++; #debug #print name,query20[name]; } #计算query3.0总请求次数 if(substr($7,2,14)=="QueryServer3.0") { query30[name]++; #debug #print name,query30[name]; } #计算query30成功次数 if(substr($7,2,14)=="QueryServer3.0" && ($9<400)) { query30_suc[name]++; #debug #print name,query30_suc[name]; } #计算rvs总数 if (substr($7,2,11)=="RVServer3.0") { rvs[name]++; #print name,rvs[name]; } #计算rvs成功总数 if (substr($7,2,11)=="RVServer3.0" && ($9<400)) { rvs_suc[name]++; #debug #print name,rvs_suc[name]; } #计算rs总请求次数 if(substr($7,2,12)=="RouteServer4") { rs[name]++; #debug #print name,rs[name]; } #计算rs成功次数 if(substr($7,2,12)=="RouteServer4" && ($9<400)) { rs_suc[name]++; #debug #print name,rs_suc[name]; } #计算rtei总请求次数 if(substr($7,2,10)=="RTEIServer") { rtei[name]++; #debug #print name,rtei[name]; } #计算rtei成功次数 if(substr($7,2,10)=="RTEIServer" && ($9<400)) { rtei_suc[name]++; #debug #print name,rtei_suc[name]; } #计算advert总请求次数 if(substr($7,2,14)=="navidog2Advert") { advert[name]++; #debug #print name,advert[name]; } #计算advert成功次数 if(substr($7,2,14)=="navidog2Advert" && ($9<400)) { advert_suc[name]++; #debug #print name,advert_suc[name]; } #计算navidog2Goods总请求次数 if(substr($7,2,13)=="navidog2Goods") { goods[name]++; #debug #print name,goods[name]; } #计算navidog2Goods成功次数 if(substr($7,2,13)=="navidog2Goods" && ($9<400)) { goods_suc[name]++; #debug #print name,goods_suc[name]; } #计算http 400次数 if ($9==400) { http400++; #debug #print http400; } #计算VoiceInfoServer请求次数 if (substr($7,2,15)=="VoiceInfoServer") { voiceinfo[name]++; #debug #print name,voiceinfo[name]; } #计算VoiceInfoServer请求成功次数 if (substr($7,2,15)=="VoiceInfoServer" && ($9<400)) { voiceinfo_suc[name]++; #debug #print name,voiceinfo_suc[name]; } } END{ #打印统计结果, print name,nginx[name]+0,nginx_suc[name]+0,mts[name]+0,mts_suc[name]+0,query20[name]+0,query20_suc[name]+0,query30[name]+0,query30 _suc[name]+0,rvs[name]+0,rvs_suc[name]+0,rs[name]+0,rs_suc[name]+0,rtei[name]+0,rtei_suc[name]+0,advert[name]+0,advert_suc[name]+0,goods[n ame]+0,goods_suc[name]+0,http400+0,voiceinfo[name]+0,voiceinfo_suc[name]+0 }