自己的小網(wǎng)站跑在阿里云的 ECS 上面, 偶爾也去分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問(wèn)量??纯从袥](méi)有黑客搞破壞!于是收集,整理一些服務(wù)器日志分析命令,大家可以試試!
1、查看有多少個(gè)IP訪問(wèn):

2、查看某一個(gè)頁(yè)面被訪問(wèn)的次數(shù):

3、查看每一個(gè)IP訪問(wèn)了多少個(gè)頁(yè)面:

4、將每個(gè)IP訪問(wèn)的頁(yè)面數(shù)進(jìn)行從小到大排序:

5、查看某一個(gè)IP訪問(wèn)了哪些頁(yè)面:

6、去掉搜索引擎統(tǒng)計(jì)的頁(yè)面:

7、查看2015年8月16日14時(shí)這一個(gè)小時(shí)內(nèi)有多少I(mǎi)P訪問(wèn):

8、查看訪問(wèn)前十個(gè)ip地址

uniq -c 相當(dāng)于分組統(tǒng)計(jì)并把統(tǒng)計(jì)數(shù)放在最前面


9、訪問(wèn)次數(shù)最多的10個(gè)文件或頁(yè)面

訪問(wèn)量最大的前20個(gè)ip
10、通過(guò)子域名訪問(wèn)次數(shù),依據(jù)referer來(lái)計(jì)算,稍有不準(zhǔn)

11、列出傳輸大小最大的幾個(gè)文件

12、列出輸出大于200000byte(約200kb)的頁(yè)面以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)

13、如果日志最后一列記錄的是頁(yè)面文件傳輸時(shí)間,則有列出到客戶端最耗時(shí)的頁(yè)面

14、列出最最耗時(shí)的頁(yè)面(超過(guò)60秒的)的以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)

15、列出傳輸時(shí)間超過(guò) 30 秒的文件

16、列出當(dāng)前服務(wù)器每一進(jìn)程運(yùn)行的數(shù)量,倒序排列

17、查看apache當(dāng)前并發(fā)訪問(wèn)數(shù)
對(duì)比httpd.conf中MaxClients的數(shù)字差距多少

18、可以使用如下參數(shù)查看數(shù)據(jù)

統(tǒng)計(jì)httpd進(jìn)程數(shù),連個(gè)請(qǐng)求會(huì)啟動(dòng)一個(gè)進(jìn)程,使用于Apache服務(wù)器。
表示Apache能夠處理1388個(gè)并發(fā)請(qǐng)求,這個(gè)值A(chǔ)pache可根據(jù)負(fù)載情況自動(dòng)調(diào)整

netstat -an會(huì)打印系統(tǒng)當(dāng)前網(wǎng)絡(luò)鏈接狀態(tài),而grep -i “80”是用來(lái)提取與80端口有關(guān)的連接的,wc -l進(jìn)行連接數(shù)統(tǒng)計(jì)。
最終返回的數(shù)字就是當(dāng)前所有80端口的請(qǐng)求總數(shù)

netstat -an會(huì)打印系統(tǒng)當(dāng)前網(wǎng)絡(luò)鏈接狀態(tài),而grep ESTABLISHED 提取出已建立連接的信息。然后wc -l統(tǒng)計(jì)。
最終返回的數(shù)字就是當(dāng)前所有80端口的已建立連接的總數(shù)。

可查看所有建立連接的詳細(xì)記錄
19、輸出每個(gè)ip的連接數(shù),以及總的各個(gè)狀態(tài)的連接數(shù)

20、其他的收集
分析日志文件下 2012-05-04 訪問(wèn)頁(yè)面最高 的前20個(gè) URL 并排序

查詢受訪問(wèn)頁(yè)面的URL地址中 含有 www.abc.com 網(wǎng)址的 IP 地址

獲取訪問(wèn)最高的10個(gè)IP地址 同時(shí)也可以按時(shí)間來(lái)查詢

時(shí)間段查詢?nèi)罩緯r(shí)間段的情況

分析 2015/8/15 到 2015/8/16 訪問(wèn)”/index.php?g=Member&m=Public&a=sendValidCode”的IP倒序排列

(7里面包含.php的就輸出,本句的意思是最耗時(shí)的一百個(gè)PHP頁(yè)面

列出最最耗時(shí)的頁(yè)面(超過(guò)60秒的)的以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)

統(tǒng)計(jì)網(wǎng)站流量(G)

統(tǒng)計(jì)404的連接

統(tǒng)計(jì)http status

每秒并發(fā)

帶寬統(tǒng)計(jì)

找出某天訪問(wèn)次數(shù)最多的10個(gè)IP

當(dāng)天ip連接數(shù)最高的ip都在干些什么

小時(shí)單位里ip連接數(shù)最多的10個(gè)時(shí)段

找出訪問(wèn)次數(shù)最多的幾個(gè)分鐘

取5分鐘日志

則判斷開(kāi)始時(shí)間戳與結(jié)束時(shí)間戳是否相等

#如果不相等,則取出開(kāi)始時(shí)間戳的行號(hào),與結(jié)束時(shí)間戳的行號(hào)
查看tcp的鏈接狀態(tài)

查找請(qǐng)求數(shù)前20個(gè)IP(常用于查找攻來(lái)源):

用tcpdump嗅探80端口的訪問(wèn)看看誰(shuí)最高

查找較多time_wait連接

找查較多的SYN連接

根據(jù)端口列進(jìn)程

查看了連接數(shù)和當(dāng)前的連接數(shù)

查看IP訪問(wèn)次數(shù)

Linux命令分析當(dāng)前的鏈接狀況

通過(guò)watch可以一直監(jiān)控
LAST_ACK 5 #關(guān)閉一個(gè)TCP連接需要從兩個(gè)方向上分別進(jìn)行關(guān)閉,雙方都是通過(guò)發(fā)送FIN來(lái)表示單方向數(shù)據(jù)的關(guān)閉,當(dāng)通信雙方發(fā)送了最后一個(gè)FIN的時(shí)候,發(fā)送方此時(shí)處于LAST_ACK狀態(tài),當(dāng)發(fā)送方收到對(duì)方的確認(rèn)(Fin的Ack確認(rèn))后才真正關(guān)閉整個(gè)TCP連接;
SYN_RECV 30 # 表示正在等待處理的請(qǐng)求數(shù);
ESTABLISHED 1597 # 表示正常數(shù)據(jù)傳輸狀態(tài);
FIN_WAIT1 51 # 表示server端主動(dòng)要求關(guān)閉tcp連接;
FIN_WAIT2 504 # 表示客戶端中斷連接;
TIME_WAIT 1057 # 表示處理完畢,等待超時(shí)結(jié)束的請(qǐng)求數(shù)。