Linux下apache日志分析與狀態(tài)查看方法
假設(shè)apache日志格式為:
118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)”
問(wèn)題1:在apachelog中找出訪(fǎng)問(wèn)次數(shù)最多的10個(gè)IP。
awk '{print $1}' apache_log |sort |uniq -c|sort -nr|head -n 10
awk 首先將每條日志中的IP抓出來(lái),如日志格式被自定義過(guò),可以 -F 定義分隔符和 print指定列;
sort進(jìn)行初次排序,為的使相同的記錄排列到一起;
upiq -c 合并重復(fù)的行,并記錄重復(fù)次數(shù)。
head進(jìn)行前十名篩選;
sort -nr按照數(shù)字進(jìn)行倒敘排序。
我參考的命令是:
顯示10條最常用的命令
sed -e "s/| //n/g" ~/.bash_history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head
問(wèn)題2:在apache日志中找出訪(fǎng)問(wèn)次數(shù)最多的幾個(gè)分鐘。
awk '{print $4}' access_log |cut -c 14-18|sort|uniq -c|sort -nr|head
awk 用空格分出來(lái)的第四列是[09/Jan/2010:00:59:59;
cut -c 提取14到18個(gè)字符
剩下的內(nèi)容和問(wèn)題1類(lèi)似。
問(wèn)題3:在apache日志中找到訪(fǎng)問(wèn)最多的頁(yè)面:
awk '{print $11}' apache_log |sed 's/^.*cn/(.*/)/"http://1/g'|sort |uniq -c|sort -rn|head
類(lèi)似問(wèn)題1和2,唯一特殊是用sed的替換功能將”http://www.a.cn/common/index.php”替換成括號(hào)內(nèi)的內(nèi)容:”http://www.a.cn(/common/index.php)”
問(wèn)題4:在apache日志中找出訪(fǎng)問(wèn)次數(shù)最多(負(fù)載最重)的幾個(gè)時(shí)間段(以分鐘為單位),然后在看看這些時(shí)間哪幾個(gè)IP訪(fǎng)問(wèn)的最多?
1,查看apache進(jìn)程:
ps aux | grep httpd | grep -v grep | wc -l
2,查看80端口的tcp連接:
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
3,通過(guò)日志查看當(dāng)天ip連接數(shù),過(guò)濾重復(fù):
cat access_log | grep "19/May/2011" | awk '{print $2}' | sort | uniq -c | sort -nr
4,當(dāng)天ip連接數(shù)最高的ip都在干些什么(原來(lái)是蜘蛛):
cat access_log | grep "19/May/2011:00" | grep "61.135.166.230" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10
5,當(dāng)天訪(fǎng)問(wèn)頁(yè)面排前10的url:
cat access_log | grep "19/May/2010:00" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10
6,用tcpdump嗅探80端口的訪(fǎng)問(wèn)看看誰(shuí)最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr
接著從日志里查看該ip在干嘛:
cat access_log | grep 220.181.38.183| awk '{print $1"/t"$8}' | sort | uniq -c | sort -nr | less
7,查看某一時(shí)間段的ip連接數(shù):
grep "2006:0[7-8]" www20110519.log | awk '{print $2}' | sort | uniq -c| sort -nr | wc -l
8,當(dāng)前WEB服務(wù)器中聯(lián)接次數(shù)最多的20條ip地址:
netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -n -r | head -n 20
9,查看日志中訪(fǎng)問(wèn)次數(shù)最多的前10個(gè)IP
cat access_log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less
10,查看日志中出現(xiàn)100次以上的IP
cat access_log |cut -d ' ' -f 1 |sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr |less
11,查看最近訪(fǎng)問(wèn)量最高的文件
cat access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less
12,查看日志中訪(fǎng)問(wèn)超過(guò)100次的頁(yè)面
cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less
13,列出傳輸時(shí)間超過(guò) 30 秒的文件
cat access_log|awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20
14,列出最最耗時(shí)的頁(yè)面(超過(guò)60秒的)的以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)
cat access_log |awk '($NF > 60 && $7~//.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
相關(guān)文章
CentOS 6.6安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
這篇文章主要介紹了CentOS 6.6服務(wù)器下安裝配置LAMP服務(wù)器的方法,考慮到apache處理php的性能可以選擇apache,如果靜態(tài)頁(yè)面可以安裝nginx2016-10-10
WAMPserver配置方法(允許外部訪(fǎng)問(wèn)、phpmyadmin設(shè)置為輸入用戶(hù)名密碼才可登錄等)
這篇文章主要介紹了WAMPserver配置(允許外部訪(fǎng)問(wèn)、phpmyadmin設(shè)置為輸入用戶(hù)名密碼才可登錄等),需要的朋友可以參考下2015-02-02
Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的實(shí)現(xiàn)方法
下面小編就為大家分享一篇Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
linux?和?dockerfile?中配置環(huán)境變量的方式總結(jié)
要熟悉?dockerfile?配置?linux?的知識(shí)不能少,所以本文將給大家總結(jié)?linux?與?dockerfile?中各種環(huán)境變量,需要的朋友可以參考下2023-07-07
Linux下查詢(xún)外網(wǎng)IP的幾種方法總結(jié)
這篇文章主要介紹了Linux下查詢(xún)外網(wǎng)IP的幾種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-03-03
VMware虛擬機(jī)安裝Centos操作系統(tǒng)的教程
這篇文章主要為大家詳細(xì)介紹了VMware虛擬機(jī)安裝Centos操作系統(tǒng)的教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

