Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1729163
  • 博文数量: 150
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 2480
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 11:39
文章分类

全部博文(150)

文章存档

2019年(4)

2018年(36)

2017年(53)

2016年(7)

2015年(3)

2014年(3)

2013年(27)

2012年(2)

2011年(1)

2006年(1)

2005年(13)

分类: 系统运维

2017-04-12 12:18:08

1、目标

按照要求统计某一时段内nginx日志中各服务的http总请求数、成功数和失败数

2、脚本说明

  • 服务名称由name变量给出,shell脚本调用给出name变量的值
  • 统计周期,可以为某一时刻,可以为秒、分、小时、天,由调用shell给出

3、awk脚本内容

#!/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
   } 
阅读(9284) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~