成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于shell統(tǒng)計nginx訪問日志

IT那活兒 / 1465人閱讀
基于shell統(tǒng)計nginx訪問日志

在日常的web應(yīng)用使用中,通常會對訪問信息進行收集記錄,進行統(tǒng)計分析,以提高和改進應(yīng)用建設(shè)。目前主流的數(shù)據(jù)收集方式基本都是基于javascript。當(dāng)然,在日志比較小的情況下,也可以通過shell命令做一些簡單的分析。下面以Nginx的AccessLog為例,介紹通過shell的awk命令統(tǒng)計應(yīng)用的訪問信息。


[
awk介紹
]


awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在對數(shù)據(jù)分析生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進行各種分析處理。


使用方法:awk{pattern + action} {filenames}


[
常用利用shell統(tǒng)計日志命令
]


1、根據(jù)訪問IP統(tǒng)計UV

IP:獨立IP數(shù),是指獨立瀏覽了頁面的不同IP,即統(tǒng)計不同的IP瀏覽用戶數(shù)量。同一IP不管訪問了幾個頁面,獨立IP數(shù)均為1;不同的IP瀏覽頁面,計數(shù)會加1。


UV(UniqueVisitor):獨立訪客,統(tǒng)計訪問某站點的用戶數(shù);


awk {print $1} access.log | sort | uniq -c | wc -l


2、根據(jù)訪問URL統(tǒng)計PV

PV(PageView):訪問量,即頁面瀏覽量或點擊量,衡量用戶訪問的網(wǎng)頁數(shù)量;在一定統(tǒng)計周期內(nèi)用戶每打開或刷新一個頁面就記錄1次,多次打開或刷新同一頁面則瀏覽量累計。


awk {print $7} access.log | wc -l


3、統(tǒng)計訪問最多的URL

根據(jù)訪問最多的URL來判斷哪些業(yè)務(wù)比較繁忙;


awk {print $7} access.log | sort | uniq -c | sort -n -k 1 -r | more


4、統(tǒng)計訪問最頻繁的IP

根據(jù)訪問IP來判斷哪些IP操作最多;


awk {print $1} access.log | sort | uniq -c | sort -n -k 1 -r | more


5、根據(jù)時間段統(tǒng)計查看日志

具體使用sed或者grep都可以,主要是編寫正則表達式;


sed:

cat  access.log| sed -n /1/Sep/2020:[01-23]/p | more


grep:

grep 1/Sep/2020:[01-23] access.log |more


6、統(tǒng)計當(dāng)日的pv和uv

因為是統(tǒng)計當(dāng)日的pv和uv,所以在編寫命令之前了解一下nginx的日志格式。日志的默認(rèn)格式如下:

默認(rèn)輸出的月份使用英文簡寫。


pv:

cataccess.log | sed -n /`date "+%d/%b/%Y"`/p | awk {print $7} | sort | wc -l


uv:

cataccess.log | sed -n /`date "+%d/%b/%Y"`/p |awk {print $1} | sort|uniq -c | wc -l


如果使用以上這兩個命令發(fā)現(xiàn)統(tǒng)計不出來任何數(shù)據(jù)時,就要檢查一下,系統(tǒng)的語言變量LANG是否配置成中文,如果是則需要配置成英文。


使用以下命令配置成英文:

exportLANG="en_US.UTF-8"

這時在執(zhí)行pv和uv命令就可以統(tǒng)計出來了。


7、獲取最耗時的請求時間、url

下面是獲取最耗時的前十個請求,如果想獲取全部則去掉:head-10

cat access.log | awk {print $4,$7,$NF} | awk -F " {print $1,$2,$3} | sort -k3 -rn | head -10


8、獲取每分鐘的請求數(shù)量

cat access.log  | awk {print substr($4,14,5)} | uniq -c | awk {print $2","$1} 

可以輸出到csv格式文件中

cat access.log  | awk {print substr($4,14,5)} | uniq -c | awk {print $2","$1} > access.csv


9、查看某個時間段之間的ip訪問個數(shù)

例如查看10點到19點的訪問ip數(shù)


grep "2020:1[0-9]" access.log | awk {ips[$1]+=1} END{for(ip in ips) print ips[ip],ip} | sort -nr | wc -l


查看10點到19點之間的ip訪問數(shù)>=200的ip


grep 2020:1[0-19] access.log | awk {ips[$1]+=1}END{for(ip in ips) if(ips[ip]>=200) print ips[ip],ip} | sort -nr


[
總結(jié)
]


上面介紹了關(guān)于Nginx日志統(tǒng)計分析的一些常用命令,包括IP相關(guān)統(tǒng)計、頁面訪問統(tǒng)計、性能分析等相關(guān)命令。Nginx的統(tǒng)計分析命令還有很多,這里只是拋磚引玉,希望對大家的學(xué)習(xí)或者工作能帶來一定的幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130145.html

相關(guān)文章

  • shell在手分析服務(wù)器日志不愁?

    摘要:自己的小網(wǎng)站跑在阿里云的上面偶爾也去分析分析自己網(wǎng)站服務(wù)器日志看看網(wǎng)站的訪問量。然后統(tǒng)計最終返回的數(shù)字就是當(dāng)前所有端口的已建立連接的總數(shù)。 自己的小網(wǎng)站跑在阿里云的ECS上面,偶爾也去分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問量??纯从袥]有黑闊搞破壞!于是收集,整理一些服務(wù)器日志分析命令,大家可以試試! 1、查看有多少個IP訪問: awk {print $1} log_file|sor...

    fyber 評論0 收藏0
  • 十分鐘解決爬蟲問題!超輕量級反爬蟲方案

    摘要:爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。本文將描述一種盡量簡單的反爬蟲方案,可以在十幾分鐘內(nèi)解決部分簡單的爬蟲問題,緩解惡意攻擊或者是系統(tǒng)超負(fù)荷運行的狀況至于復(fù)雜的爬蟲以及更精準(zhǔn)的防御,需要另外討論。 showImg(https://segmentfault.com/img/bVDYV4?w=800&h=568); 爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。爬蟲在情報獲取、虛假流量、動態(tài)...

    LeanCloud 評論0 收藏0
  • BMPlatform:一個在mac上部署nginx,tornado,django,php以及mysq

    摘要:項目地址部署的方案都在腳本里頭,說明如下使用方法版本簡單介紹是一個利用轉(zhuǎn)發(fā)操作系統(tǒng)中部署的基于框架和框架以及一個的服務(wù)。個服務(wù)是部署在環(huán)境中,通過和進行發(fā)送和接收消息。在前臺以及整個主要利用去操作。 項目地址:https://github.com/yuyangit/BMProject 部署的方案都在腳本里頭,說明如下: BMPlatform使用方法 版本 v0.2 1.簡單介紹...

    ernest.wang 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<