通過查看Nginx的并發(fā)連接,我們可以更清除的知道網(wǎng)站的負(fù)載情況。Nginx并發(fā)查看有兩種方法(之所以這么說,是因?yàn)楣P者只知道兩種),一種是通過web界面,一種是通過命令,web查看要比命令查看顯示的結(jié)果精確一些。下面介紹這兩種查看方法
No1、通過瀏覽器查看
? ? 通過web界面查看時(shí)Nginx需要開啟status模塊,也就是安裝Nginx時(shí)加上? ? ? ? --with-http_stub_status_module? 然后配置Nginx.conf,在server點(diǎn)里面加入如下內(nèi)容
location /status {
stub_status on;
access_log /usr/local/nginx/logs/status.log;
auth_basic "NginxStatus"; }
解析:
Active connections? ? //當(dāng)前 Nginx 正處理的活動(dòng)連接數(shù)。
server accepts handledrequests //總共處理了8 個(gè)連接 , 成功創(chuàng)建 8 次握手,總共處理了500個(gè)請(qǐng)求。
Reading //nginx 讀取到客戶端的 Header 信息數(shù)。
Writing //nginx 返回給客戶端的 Header 信息數(shù)。
Waiting //開啟 keep-alive 的情況下,這個(gè)值等于 active - (reading + writing),意思就是 Nginx 已經(jīng)處理完正在等候下一次請(qǐng)求指令的駐留連接
No2、通過命令查看
#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
解析:
CLOSED? //無連接是活動(dòng)的或正在進(jìn)行
LISTEN? //服務(wù)器在等待進(jìn)入呼叫
SYN_RECV? //一個(gè)連接請(qǐng)求已經(jīng)到達(dá),等待確認(rèn)
SYN_SENT? //應(yīng)用已經(jīng)開始,打開一個(gè)連接
ESTABLISHED? //正常數(shù)據(jù)傳輸狀態(tài)/當(dāng)前并發(fā)連接數(shù)
FIN_WAIT1? //應(yīng)用說它已經(jīng)完成
FIN_WAIT2? //另一邊已同意釋放
ITMED_WAIT? //等待所有分組死掉
CLOSING? //兩邊同時(shí)嘗試關(guān)閉
TIME_WAIT? //另一邊已初始化一個(gè)釋放
LAST_ACK? //等待所有分組死掉
nginx訪問量統(tǒng)計(jì)
1.根據(jù)訪問IP統(tǒng)計(jì)UV
awk '{print $1}'? access.log|sort | uniq -c |wc -l
2.統(tǒng)計(jì)訪問URL統(tǒng)計(jì)PV
awk '{print $7}' access.log|wc -l
3.查詢?cè)L問最頻繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
4.查詢?cè)L問最頻繁的IP
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
5.根據(jù)時(shí)間段統(tǒng)計(jì)查看日志
cat? access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more
查找訪問頻率最高的 URL 和次數(shù):
cat access.log | awk -F ‘^A’ ‘{print $10}’ | sort | uniq -c
查找當(dāng)前日志文件 500 錯(cuò)誤的訪問:
cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’
查找當(dāng)前日志文件 500 錯(cuò)誤的數(shù)量:
cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | wc -l
查找某一分鐘內(nèi) 500 錯(cuò)誤訪問的數(shù)量:
cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | grep ’09:00’ | wc-l
查找耗時(shí)超過 1s 的慢請(qǐng)求:
tail -f access.log | awk -F ‘^A’ ‘{if($6》1) print $0}’
假如只想查看某些位:
tail -f access.log | awk -F ‘^A’ ‘{if($6》1) print $3″|”$4}’
查找 502 錯(cuò)誤最多的 URL:
cat access.log | awk -F ‘^A’ ‘{if($5==502) print $11}’ | sort | uniq -c
查找 200 空白頁
cat access.log | awk -F ‘^A’ ‘{if($5==200 && $8 《 100) print $3″|”$4″|”$11″|”$6}’
查看實(shí)時(shí)日志數(shù)據(jù)流
tail -f access.log | cat -e
或者
tail -f access.log | tr ‘^A’ ‘|’
sed -n '/04\/Dec\/2015:07:30:53/,/04\/Dec\/2015:08:30:55/'p access.log | more? 查看一段時(shí)間的日志
sed -n '/08\/Dec\/2015:15:48:01/,/08\/Dec\/2015:15:55:59/p' access.log > new.log
運(yùn)維QQ交流群:171586999