命令列下Apache日誌統計舉例

2021-09-05 07:32:01 字數 2182 閱讀 6978

加些來了解一下如何統計apache的訪問日誌,一般可以用tail命令來實時檢視日誌檔案變化,但是各種的應用系統中的日誌會非常複雜,一堆長度超過你瀏覽極限的日誌出現在你眼前時,你會覺得非常無奈,怎麼辦呢?這時可以用grep、sed、awk和sort等篩選工具幫助你解決這個問題。下面總結了幾個常見分析方法。

(1)檢視ip($1代表ip)

#cataccess_log | awk ''

(2)對ip排序

#cataccess_log | awk ''|sort

(3)列印每一重複行出現的次數,「uniq -c」表示標記出重複數量。

#cataccess_log | awk ''|sort|uniq -c

(4)排序並統計行數

#cataccess_log | awk ''|sort|uniq -c|sort -rn|wc -l

(5)顯示訪問前10位的ip位址

,便於查詢***源

#cat access_log|awk ''|sort|uniq-c|sort -nr|head -10

注意awk ''|sort|uniq -c|sort -nr |more

9999192.168.150.179

11 192.168.150.1

#iptables -i input -s 192.168.150.179 -j drop

#iptables -i input -s 192.168.150.0/24 -j drop

如果將上面的shell做以下變形就可以得出訪問量top 10

#cat access_log |awk ''|sort|uniq -c|sort -nr |head -10

(8)

,這裡以.exe副檔名舉例)

使用如下命令:

#cat access_log |awk `($10 >10000000&& $7 ~/.exe/) ` |sort –n|uniq –c|sort –nr|head -10

這條命令經過增加乙個》10000000的條件判斷內容就可以顯示出大於10mb的exe檔案,並統計對應檔案發生次數,這條命令對於**日常分析是非常有幫助的,大家可以靈活使用。

(12)用goaccess工具分析

goaccess是一款開源、實時,執行在命令列終端下的web日誌分析工具。該工具提供快速、多樣的http狀態統計,如果你覺得以上管道、指令碼麻煩的話,請用這個工具試試吧。

debian linux安裝:

#ape-get install goaccess

#goaccess -f /var/log/apache2/access.log

執行效果如下:

輕按下箭頭,我們看看goaccess給我們呈現更多的統計資料吧,細心的讀者發現bw n /a 頻寬怎麼沒統計出來?下面我們在加乙個 -b 引數試試吧,如下圖所示。

注意:以上工具和技巧同樣適用於nginx、squid的訪問日誌。

apache日誌分析實戰案例:

1.apache segmentaion fault故障處理案例分析

命令列下獲取 WAN IP

2011 09 07 shuge.lee posted in cli,tips rss命令列下獲取 wan ip 如果你在 router 或者 firewall 後面,你直接查詢 inte ce 拿到可能不是 wan 的 ip 很久很久以前的乙個版本,把它們貼到 bashrc bash 專用 或者 ...

命令列下顯示進度

email zjujoe yahoo.com blog 最近看到乙個工具在命令列下顯示進度,好奇它是如何實現的,原來是列印時使用 r 引數,非常簡單,以前居然沒有接觸過!還有以0開頭的數字表示八進位制,也是最近看 才知道的 程式貼在這裡,以饗好奇者。include show progress uns...

命令列下顯示進度

zjujoe email zjujoe yahoo.com blog 最近看到乙個工具在命令列下顯示進度,好奇它是如何實現的,原來是列印時使用 r 引數,非常簡單,以前居然沒有接觸過!還有以 0開頭的數字表示八進位制,也是最近看 才知道的 程式貼在這裡,以饗好奇者。include show prog...