通过对Nginx访问日志进行分析即可。

    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
 
function  define()
{
     ori_log_path= "/var/log/nginx/abc.access.log"
     tmp_log_path= "/var/log/nginx/5min_abc.access.log"
     date_stamp=` date  -d  "-5min"  +%Y:%H:%M:%S`
     day_stamp=` date  +%d`
}
 
function  gather()
{
     awk  -F  '[/ "\[]'  -vnstamp="$date_stamp " -vdstamp=" $day_stamp"  '$7>=nstamp && $5==dstamp'  ${ori_log_path} > ${tmp_log_path}
     log_num=` cat  ${tmp_log_path} |  wc  -l`
     request_time=` awk  '{print $(NF-1)}'  ${tmp_log_path} |  awk  '{sum+=$1}END{print sum}' `
     ave_request_time=` echo  awk  "{print ${request_time}/${log_num}}"  `
     rm  -f  /var/log/nginx/5min_abc .access.log
}
 
function  output()
{
     echo  "abc aver request time is ${ave_request_time}"
     echo  "abc request total is ${log_num}"
}
 
function  main()
{
     define
     gather
     output
}
 
main


    脚本很简单,今天需要用,就写出来记录在这里了。就是锁定最近5分钟的访问日志,通过整理其内容,获取到日志条目数和相应时间的总数,计算即可。

    我这里的日志格式,倒数第二列是相应时间。


本文出自 “菜鸟东” 博客,请务必保留此出处http://radish.blog.51cto.com/5944322/1732229