系統(tǒng)運(yùn)維
運(yùn)維工作是一個(gè)比較復(fù)雜的工作,有時(shí)候面對(duì)上萬(wàn)條的日志,如何作分析?難道一條條的分析?
創(chuàng)新互聯(lián)專注于蚌山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供蚌山營(yíng)銷型網(wǎng)站建設(shè),蚌山網(wǎng)站制作、蚌山網(wǎng)頁(yè)設(shè)計(jì)、蚌山網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造蚌山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供蚌山網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
聰明的人會(huì)選擇腳本,這就是為什么現(xiàn)在提倡自動(dòng)化運(yùn)維的原因吧,廢話不多說(shuō),直接上腳本。
vim /data/scripts/log_analysis.sh
#!/bin/bash
###############################################
# Desc :nginx日志分析腳本 #
# Author : Bertram #
# Date : 2019-12-21 #
# Copyright : Personal belongs #
###############################################
public(){
echo
read -p 請(qǐng)輸入要分析的訪問(wèn)日志: 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
#輸出日志訪問(wèn)量排名前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}\'`
#獲取起始與截止時(shí)間
echo 訪問(wèn)起始時(shí)間: $start_time ; 截止時(shí)間: $end_time
#獲取總行數(shù)與大小
echo 共訪問(wèn) $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
#獲取訪問(wèn)來(lái)源最多的url
cat $log_file | awk \'{print $13}\' | sort | uniq -c | sort -rn | head -${top_num} > $top_src_url_file
#獲取請(qǐng)求最多的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 +-+-+-+-+-+- 下面是分析內(nèi)容 +-+-+-+-+-+-
#獲取最活躍IP
printf 最活躍的前${top_num}個(gè)訪問(wèn)IP: \\n
cat $top_ip_file
echo
#獲取訪問(wèn)來(lái)源最多的url
printf 訪問(wèn)來(lái)源最多的前${top_num}個(gè)url: \\n
cat $top_src_url_file
echo
#獲取請(qǐng)求最多的url
printf 請(qǐng)求最多的前${top_num}個(gè)url: \\n
cat $top_dest_url_file
echo
#獲取返回最多的狀態(tài)碼
printf 返回最多的前${top_num}個(gè)狀態(tài)碼: \\n
cat $top_code_file
echo
printf
#獲取返回最多的終端號(hào)
printf 返回最多的前${top_num}個(gè)終端號(hào): \\n
cat $top_terminal_file
echo
printf printf 返回最多的前${top_num}個(gè)IP所屬城市(查詢時(shí)間有點(diǎn)慢,耐心等待?。? \\n
echo \'\'
printf %-15s %-15s %-30s\\n 訪問(wè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
實(shí)現(xiàn)功能:
1、分析訪問(wèn)排名前N的ip地址;
2、分析訪問(wèn)排名前N的url;
3、分析訪問(wèn)排名前N的目標(biāo)url;
4、分析訪問(wèn)排名前N的終端類型;
5、自動(dòng)匹配排名前N的ip的歸屬地。
注意:日志文件和分析腳本放在一個(gè)目錄即可;日志文件輸入絕對(duì)路徑。用法:
網(wǎng)站題目:Nginx日志分析腳本
本文URL:http://m.rwnh.cn/article20/cjhijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)