用SED AWK來分析NGINX日誌!

2021-08-31 14:23:02 字數 2018 閱讀 8879

2010-01-28 16:40:30

標籤:sed

nginx

awk

原始出處 、作者資訊和本宣告。否則將追究法律責任。

前幾天寫了篇文章是用awk 來過濾nginx 日誌裡面的特定值,但是光過濾出來了不行,還得要用啊,開發同事給我提出了新要求。讓我統計 9:30~13:30 和13:30~17:30的這兩個時間段每個小時的動態請求數,還有上面兩個時間段裡的 「

action=***xx」這個值的

種類和每種

action的數量~~~

說起來複雜其實做起來挺簡單的,只要理清思路就好了!讓我們先來解決第乙個問題,每小時的動態請求數,我再看下nginx日誌的格式

因為我們的動態請求都是通過php來完成的,所以我只要過濾出包含

.php的行就可以了,時間段的選取可以交給 

sed來做,數量統計用 

uniq -c ,好了開工吧!

sed -n "/2010:13:30:00/,/2010:17:30:00/"p access_2010011605.log | awk -f: '/'.'php/' |uniq -c

168576 13

301975 14

285616 15

299248 16

154377 17

下面我們再看看

09:30~13:30這段時間的 每種 action 的總和。

用awk來過濾nginx日誌中的特定值》已經寫好了,生成檔案的格式為

202.113.30.144        25/jan/2010:13:42:07        cuid=181188    action=compound    

124.227.66.162        25/jan/2010:13:42:07        cuid=355287    action=plantinfo    

124.240.39.49        25/jan/2010:13:42:07        action=researchlayer    cuid=496990    

121.236.118.126        25/jan/2010:13:42:07        cuid=509590    action=oreinfo   

我們就根據這個格式來統計,上面我已經生成好了這個檔案名字叫 action.new

sed -n "/2010:09:30:00/,/2010:13:30:00/"p action.new |awk ' else if($4~/^action/)}' |sort |uniq -c |sort -nr

533271 action=plinfo

132742 action=friendpet

101258 action=info

98091 action=oinfo

84749 action=winfo

71751 action=result

71558 action=quest

63471 action=cquest

60886 action=qinfo

58112 action=bag

.....略

在這裡感謝下小i 同學的幫助

好了,把這幾個結果交給開發的同事讓他們去分析了。呵呵,希望這篇文章對朋友們有幫助~~~ o(∩_∩)o~

本文出自 「story的天空」 部落格,請務必保留此出處

用nginx來做負載均衡

以前用apache來做負載均衡比較繁瑣,又因為apache本身就是乙個web server,耗去沒有必要 的資源 也用apache tomcat整合分別來做靜態頁和jsp的server 最近看到很多 都在用 nginx,所以也小試牛刀了一把。為了防止複製session比較麻煩的方式 耗系統資源 我們...

用GOACCESS分析NGINX日誌

參考url 安裝goaccess 現在centos,好像可以直接安裝了 yum install glib2 glib2 devel geoip devel ncurses devel zlib zlib devel yum install goaccess 好像直接執行會有問題,最好在自己使用者主目...

用Nginx 和 uWSGI 來部署Django

週末趁著加班空閒,找了乙個舊機器,裝了個ubuntu13.04,以後就可以用它來做我在公司的git以及web伺服器,順便在它上面編譯一下android原始碼,哈哈,很爽。先說web系統,最進一直在搗鼓django,之前用apache2 apache2 python mod搭了乙個簡易版本的伺服器,用...