Nginx日志分析腳本

系統(tǒng)運維

運維工作是一個比較復雜的工作,有時候面對上萬條的日志,如何作分析?難道一條條的分析?
聰明的人會選擇腳本,這就是為什么現(xiàn)在提倡自動化運維的原因吧,廢話不多說,直接上腳本。

創(chuàng)新互聯(lián)專注于蚌山網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供蚌山營銷型網(wǎng)站建設,蚌山網(wǎng)站制作、蚌山網(wǎng)頁設計、蚌山網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務,打造蚌山網(wǎng)絡公司原創(chuàng)品牌,更為您提供蚌山網(wǎng)站排名全網(wǎng)營銷落地服務。
vim /data/scripts/log_analysis.sh
#!/bin/bash
###############################################
#    Desc        :nginx日志分析腳本                                    #
#    Author      : Bertram                                                       #
#    Date        : 2019-12-21                                                  #
#    Copyright   : Personal belongs                                      #
###############################################
public(){
    echo 
    read -p 請輸入要分析的訪問日志:  log_file
    echo  if [ ! -f $log_file ];then
        echo 未找到: ${log_file}
        exit 1
    fi  

    if [ ! -s $log_file ];then
        echo ${log_file}是空文件
        exit 1
    fi

    #輸出日志訪問量排名前top_num條數(shù)據(jù),可自定義 
    top_num=5
    input_file=`echo $log_file | awk -F \'/\' \'{print $(NF)}\'`
    analyze_dir=/home/Bertram/`date +%F`
    top_ip_file=$analyze_dir/ngx_log_top_ip_${input_file}.txt
    top_src_url_file=$analyze_dir/ngx_log_top_src_url_${input_file}.txt
    top_dest_url_file=$analyze_dir/ngx_log_top_dest_url_${input_file}.txt
    top_code_file=$analyze_dir/ngx_log_top_code_${input_file}.txt
    top_terminal_file=$analyze_dir/ngx_log_top_terminal_${input_file}.txt

    mkdir -p $analyze_dir
    start_time=`head -1 $log_file | awk \'{print $4}\'|cut -d [ -f2`
    end_time=`tail -1 $log_file | awk \'{print $4}\'|cut -d [ -f2`
    total_nums=`wc -l $log_file | awk \'{print $1}\'`
    size=`du -sh $log_file | awk \'{print $1}\'`

    #獲取起始與截止時間
    echo 訪問起始時間: $start_time ; 截止時間: $end_time
    #獲取總行數(shù)與大小
    echo  共訪問 $total_nums 次 ; 日志大小: $size
    #獲取最活躍IP
    ##cat $log_file | awk \'{print $1}\' | sort | uniq -c | sort -rn | head -${top_num} > $top_ip_file
    awk \'{ips[$1]++} END{for (i in ips){print ips[i],i}}\' $log_file | sort | uniq -c | sort -k1 -nr| head -${top_num} > $top_ip_file
    #獲取訪問來源最多的url
    cat $log_file | awk \'{print $13}\' | sort | uniq -c | sort -rn | head -${top_num} > $top_src_url_file
    #獲取請求最多的url
    cat $log_file | awk \'{print $8}\' | sort | uniq -c | sort -rn | head -${top_num} > $top_dest_url_file
    #獲取返回最多的狀態(tài)碼
    cat $log_file | awk \'{print $11}\'| sort | uniq -c | sort -rn | head -${top_num} > $top_code_file
    #獲取返回最多的終端類型
    cat $log_file | awk \'{print $14}\'| sort | uniq -c | sort -rn | head -${top_num} > $top_terminal_file
    }

    simple(){
    echo +-+-+-+-+-+- 下面是分析內容 +-+-+-+-+-+-
    #獲取最活躍IP
    printf 最活躍的前${top_num}個訪問IP: \\n
    cat $top_ip_file
    echo 
    #獲取訪問來源最多的url
    printf 訪問來源最多的前${top_num}個url: \\n
    cat $top_src_url_file
    echo 
    #獲取請求最多的url
    printf 請求最多的前${top_num}個url: \\n
    cat $top_dest_url_file
    echo 
    #獲取返回最多的狀態(tài)碼
    printf 返回最多的前${top_num}個狀態(tài)碼: \\n
    cat $top_code_file
    echo 
    printf 
    #獲取返回最多的終端號
    printf 返回最多的前${top_num}個終端號: \\n
    cat $top_terminal_file
    echo 
    printf  printf 返回最多的前${top_num}個IP所屬城市(查詢時間有點慢,耐心等待?。? \\n
    echo \'\'
    printf %-15s %-15s %-30s\\n 訪問次數(shù)   IP地址       歸屬地
    echo \'-----------------------------------------------\'
    a=0
    cat $analyze_dir/ngx_log_top_ip_${input_file}.txt | while read line
    do
    ip=$(echo $line | cut -d \'\' -f2)
    count=$(echo $line | cut -d \'\' -f1)
        printf %-10s %-15s %-30s\\n $count $ip $(curl -s http://freeapi.ipip.net/$(echo $line | cut -d \'\' -f2) | awk -F \'\\\' {\'print $2--$4--$6\'})
    echo \'-----------------------------------------------\'
    let a=a+1
    done
    echo 
    printf 
}

case $1 in
    help)
        echo 
        echo -e $Usage: $0 enter a log file \\n                 ;;
    *)
     public
     simple
        ;;
esac
exit 0

實現(xiàn)功能:
1、分析訪問排名前N的ip地址;
2、分析訪問排名前N的url;
3、分析訪問排名前N的目標url;
4、分析訪問排名前N的終端類型;
5、自動匹配排名前N的ip的歸屬地。
注意:日志文件和分析腳本放在一個目錄即可;日志文件輸入絕對路徑。

用法:

網(wǎng)站題目:Nginx日志分析腳本
本文URL:http://muchs.cn/article20/cjhijo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、網(wǎng)站收錄品牌網(wǎng)站設計、移動網(wǎng)站建設、網(wǎng)站建設、網(wǎng)站內鏈

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設