通过对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