在日常的web應用使用中,通常會對訪問信息進行收集記錄,進行統計分析,以提高和改進應用建設。目前主流的數據收集方式基本都是基于javascript。當然,在日志比較小的情況下,也可以通過shell命令做一些簡單的分析。下面以Nginx的AccessLog為例,介紹通過shell的awk命令統計應用的訪問信息。
awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在對數據分析生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。
使用方法:awk{pattern + action} {filenames}
IP:獨立IP數,是指獨立瀏覽了頁面的不同IP,即統計不同的IP瀏覽用戶數量。同一IP不管訪問了幾個頁面,獨立IP數均為1;不同的IP瀏覽頁面,計數會加1。
UV(UniqueVisitor):獨立訪客,統計訪問某站點的用戶數;
awk {print $1} access.log | sort | uniq -c | wc -l
PV(PageView):訪問量,即頁面瀏覽量或點擊量,衡量用戶訪問的網頁數量;在一定統計周期內用戶每打開或刷新一個頁面就記錄1次,多次打開或刷新同一頁面則瀏覽量累計。
awk {print $7} access.log | wc -l
根據訪問最多的URL來判斷哪些業務比較繁忙;
awk {print $7} access.log | sort | uniq -c | sort -n -k 1 -r | more
根據訪問IP來判斷哪些IP操作最多;
awk {print $1} access.log | sort | uniq -c | sort -n -k 1 -r | more
具體使用sed或者grep都可以,主要是編寫正則表達式;
sed:
cat access.log| sed -n /1/Sep/2020:[01-23]/p | more
grep:
grep 1/Sep/2020:[01-23] access.log |more
因為是統計當日的pv和uv,所以在編寫命令之前了解一下nginx的日志格式。日志的默認格式如下:
默認輸出的月份使用英文簡寫。
pv:
cataccess.log | sed -n /`date "+%d/%b/%Y"`/p | awk {print $7} | sort | wc -l
uv:
cataccess.log | sed -n /`date "+%d/%b/%Y"`/p |awk {print $1} | sort|uniq -c | wc -l
如果使用以上這兩個命令發現統計不出來任何數據時,就要檢查一下,系統的語言變量LANG是否配置成中文,如果是則需要配置成英文。
使用以下命令配置成英文:
exportLANG="en_US.UTF-8"
這時在執行pv和uv命令就可以統計出來了。
下面是獲取最耗時的前十個請求,如果想獲取全部則去掉:head-10
cat access.log | awk {print $4,$7,$NF} | awk -F " {print $1,$2,$3} | sort -k3 -rn | head -10
cat access.log | awk {print substr($4,14,5)} | uniq -c | awk {print $2","$1}
可以輸出到csv格式文件中
cat access.log | awk {print substr($4,14,5)} | uniq -c | awk {print $2","$1} > access.csv
例如查看10點到19點的訪問ip數
grep "2020:1[0-9]" access.log | awk {ips[$1]+=1} END{for(ip in ips) print ips[ip],ip} | sort -nr | wc -l
查看10點到19點之間的ip訪問數>=200的ip
grep 2020:1[0-19] access.log | awk {ips[$1]+=1}END{for(ip in ips) if(ips[ip]>=200) print ips[ip],ip} | sort -nr
上面介紹了關于Nginx日志統計分析的一些常用命令,包括IP相關統計、頁面訪問統計、性能分析等相關命令。Nginx的統計分析命令還有很多,這里只是拋磚引玉,希望對大家的學習或者工作能帶來一定的幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130145.html
摘要:自己的小網站跑在阿里云的上面偶爾也去分析分析自己網站服務器日志看看網站的訪問量。然后統計最終返回的數字就是當前所有端口的已建立連接的總數。 自己的小網站跑在阿里云的ECS上面,偶爾也去分析分析自己網站服務器日志,看看網站的訪問量。看看有沒有黑闊搞破壞!于是收集,整理一些服務器日志分析命令,大家可以試試! 1、查看有多少個IP訪問: awk {print $1} log_file|sor...
摘要:爬蟲和反爬蟲日益成為每家公司的標配系統。本文將描述一種盡量簡單的反爬蟲方案,可以在十幾分鐘內解決部分簡單的爬蟲問題,緩解惡意攻擊或者是系統超負荷運行的狀況至于復雜的爬蟲以及更精準的防御,需要另外討論。 showImg(https://segmentfault.com/img/bVDYV4?w=800&h=568); 爬蟲和反爬蟲日益成為每家公司的標配系統。爬蟲在情報獲取、虛假流量、動態...
摘要:項目地址部署的方案都在腳本里頭,說明如下使用方法版本簡單介紹是一個利用轉發操作系統中部署的基于框架和框架以及一個的服務。個服務是部署在環境中,通過和進行發送和接收消息。在前臺以及整個主要利用去操作。 項目地址:https://github.com/yuyangit/BMProject 部署的方案都在腳本里頭,說明如下: BMPlatform使用方法 版本 v0.2 1.簡單介紹...
摘要:項目地址部署的方案都在腳本里頭,說明如下使用方法版本簡單介紹是一個利用轉發操作系統中部署的基于框架和框架以及一個的服務。個服務是部署在環境中,通過和進行發送和接收消息。在前臺以及整個主要利用去操作。 項目地址:https://github.com/yuyangit/BMProject 部署的方案都在腳本里頭,說明如下: BMPlatform使用方法 版本 v0.2 1.簡單介紹...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20