溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ubuntu系統(tǒng)中怎么統(tǒng)計HTTP請求數(shù)

發(fā)布時間:2021-09-03 11:24:00 來源:億速云 閱讀:96 作者:chen 欄目:系統(tǒng)運維

本篇內容介紹了“Ubuntu系統(tǒng)中怎么統(tǒng)計HTTP請求數(shù)”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

安裝
tcpdump的安裝還是比較討厭的...
1.網(wǎng)上下載獲得libpcap和tcpdump
http://www.tcpdump.org/
2.安裝c編譯所需包:

代碼如下:

apt-get install build-essential


3.安裝 libpcap的前置:

代碼如下:

apt-get install flex,apt-get install bison


4.安裝libpcap。
tcpdump的使用必須有這庫。

代碼如下:


tar  xvfz libpcap-1.2.1.tar.gz     //解壓


進入解壓之后的文件目錄   運行

代碼如下:


./configure      //生成makefile文件
make              //進行編譯
make install   //安裝  


庫文件默認安裝在目錄  /usr/lib,頭文件默認安裝在  /usr/include
5.安裝tcpdump

代碼如下:


tar  xvfz tcpdump.4.2.1.tar.gz     //解壓


進入解壓之后的文件目錄   運行

代碼如下:


./configure      //生成makefile文件
make              //進行編譯
make install   //安裝   庫文件默認安裝在目錄  /usr/lib,頭文件默認安裝在  /usr/include


測試是否成功安裝:命令行輸入 tcpdump有網(wǎng)絡信息顯示??!
6.可能遇到的問題:

代碼如下:


#tcpdump
#tcpdump: no suitable device found


原因:網(wǎng)絡監(jiān)聽需要root權限,切換到root用戶下就可以正常使用了。

借助tcpdump統(tǒng)計http請求
這里所說的統(tǒng)計http請求,是指統(tǒng)計QPS(每秒請求數(shù)),統(tǒng)計前十條被訪問最多的url。一般做這樣的統(tǒng)計時,我們經(jīng)常會使用網(wǎng)站訪問日志來統(tǒng)計。當我們來到一個陌生的服務器環(huán)境,需要立即統(tǒng)計當前前十條被訪問最多的url,來初步確定是否存在攻擊行為,使用tcpdump則簡單得多,因為我們不需要關心網(wǎng)站日志在哪,不需要考慮網(wǎng)站日志有沒有開啟之類的問題,直接用tcpdump捕捉當前的http包,再進一步過濾,就會得出我們想要的統(tǒng)計。此功能已集成到EZHTTP,下面是效果圖:
Ubuntu系統(tǒng)中怎么統(tǒng)計HTTP請求數(shù)

下面介紹其統(tǒng)計方法。
1、捕捉10秒的數(shù)據(jù)包。

代碼如下:


tcpdump -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x504f -w /tmp/tcp.cap -s 512 2>&1 &
sleep 10
kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`


此命令表示監(jiān)控網(wǎng)卡eth0,捕捉tcp,且21-22字節(jié)字符為GE或者PO,表示匹配GET或者POST請求的數(shù)據(jù)包,并寫到/tmp/tcp.cap文件。
2、這時候我們得到最新10秒的二進制數(shù)據(jù)包文件,我們下一步就是通過strings命令來找出GET/POST的url以及Host。

代碼如下:


strings /tmp/tcp.cap | grep -E "GET /|POST /|Host:" | grep --no-group-separator -B 1 "Host:" | grep --no-group-separator -A 1 -E "GET /|POST /" | awk '{url=$2;getline;host=$2;printf ("%s\n",host""url)}' > url.txt


此命令是本文的關鍵,通過strings顯示二進制文件tcp.cap所有可打印字符,然后通過grep和awk過濾出http請求,并把拼接得到的url(包括域名+uri)寫進一個文件url.txt。
3、這時我們拿到了近10秒鐘所有的訪問url,接下來的統(tǒng)計就容易得出,比如:
統(tǒng)計QPS:

代碼如下:


(( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / 10 ))


排除靜態(tài)文件統(tǒng)計前10訪問url:

代碼如下:


grep -v -i -E "\.(gif|png|jpg|jpeg|ico|js|swf|css)" /tmp/url.txt | sort | uniq -c | sort -nr | head -n 10

“Ubuntu系統(tǒng)中怎么統(tǒng)計HTTP請求數(shù)”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI