統計5分鐘內Nginx訪問量及平均相應時間

    通過對Nginx訪問日誌進行分析即可。

   

#!/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分鐘的訪問日誌,通過整理其內容,獲取到日誌條目數和相應時間的總數,計算即可。

    我這裏的日誌格式,倒數第二列是相應時間。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章