加些來了解一下如何統計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...