命令行下Apache日志统计举例
Apache日志統(tǒng)計(jì)舉例
加些來了解一下如何統(tǒng)計(jì)Apache的訪問日志,一般可以用tail命令來實(shí)時查看日志文件變化,但是各種的應(yīng)用系統(tǒng)中的日志會非常復(fù)雜,一堆長度超過你瀏覽極限的日志出現(xiàn)在你眼前時,你會覺得非常無奈,怎么辦呢?這時可以用grep、sed、awk和sort等篩選工具幫助你解決這個問題。下面總結(jié)了幾個常見分析方法。
(1)查看IP($1代表IP)
#cataccess_log | awk '{print $1}'
(2)對IP排序
#cataccess_log | awk '{print $1}'|sort
(3)打印每一重復(fù)行出現(xiàn)的次數(shù),“uniq -c”表示標(biāo)記出重復(fù)數(shù)量。
#cataccess_log | awk '{print $1}'|sort|uniq -c
(4)排序并統(tǒng)計(jì)行數(shù)
#cataccess_log | awk '{print $1}'|sort|uniq -c|sort -rn|wc -l
(5)顯示訪問前10位的IP地址,便于查找***源
#cat access_log|awk '{print $1}'|sort|uniq-c|sort -nr|head -10
注意awk '{print$1',它表示取日志的第一段,如果換成別的日志,其IP地址在第3段那么就要改變相應(yīng)數(shù)值。
(6)顯示指定時間以后的日志($4代表時間)
#cat access_log |awk'$4>="[23/Jul/2012:01:00:01"' access_log
推薦大家在排錯時,同時打開多個終端,比如在一個窗口中顯示錯誤日志,在另一個窗口中顯示訪問日志,這樣就能夠隨時獲知網(wǎng)站上發(fā)生的情況。
(7)找出訪問量最大的IP,并封掉(對排錯很有幫助)
#cat access_log |awk '{print $1}'|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 '{print $1}'|sort|uniq -c|sort -nr |head -10
(8)找出Apache日志中,下載最多的幾個exe文件(下載類網(wǎng)站常用,這里以.exe擴(kuò)展名舉例)
[root@localhost httpd]# cataccess_log |awk '($7 ~/.exe/){print $10 "" $1 ""$4""$7}' |sort -n |uniq -c |sort -nr |head -10
??? 2 - 192.168.150.1[25/Jul/2012:05:46:05/test.exe
1 -192.168.150.152[25/Jul/2012:05:46:47/test.exe
?
使用如下命令:
#cat access_log |awk `($10 >10000000&& $7 ~/.exe/) {print $7}` |sort –n|uniq –c|sort –nr|head -10
這條命令經(jīng)過增加一個>10000000的條件判斷內(nèi)容就可以顯示出大于10MB的exe文件,并統(tǒng)計(jì)對應(yīng)文件發(fā)生次數(shù),這條命令對于網(wǎng)站日常分析是非常有幫助的,大家可以靈活使用。
?
?(12)用goaccess工具分析
GoAccess是一款開源、實(shí)時,運(yùn)行在命令行終端下的web日志分析工具。該工具提供快速、多樣的HTTP狀態(tài)統(tǒng)計(jì),如果你覺得以上管道、腳本麻煩的話,請用這個工具試試吧。
Debian Linux安裝:
#ape-get install goaccess
#goaccess -f /var/log/apache2/access.log
運(yùn)行效果如下:
?輕按下箭頭,我們看看goaccess給我們呈現(xiàn)更多的統(tǒng)計(jì)數(shù)據(jù)吧,細(xì)心的讀者發(fā)現(xiàn)BW N /A 帶寬怎么沒統(tǒng)計(jì)出來?下面我們在加一個 -b 參數(shù)試試吧,如下圖所示。
注意:以上工具和技巧同樣適用于Nginx、Squid的訪問日志。
Apache日志分析實(shí)戰(zhàn)案例:
1.Apache Segmentaion Fault故障處理案例分析 http://chenguang.blog.51cto.com/350944/1384907
?
總結(jié)
以上是生活随笔為你收集整理的命令行下Apache日志统计举例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript匿名函数与托付
- 下一篇: 【新年巨献】计算机类国际英文EI(JA)