關於access_log 日志文件以及ip、uv和pv的定義


  • accesslog是apache或者nginx等web service生成的日志,對應於網頁的每一次請求,包含有大量的信息,分析好accesslog可以對網站的運行情況有一個整體的認識,在出現問題的情況下,也可以通過對accesslog的數據分析結果,大致定位出問題所在。負責網站的運維、架構相關的工程師需要對accesslog非常熟悉,策略效果相關的工程師也可以通過對accesslog的分析,得到用戶的行為數據。
  • 同時分析accesslog的日志也可以估算出用戶訪問量,高峰訪問時間段,區域訪問數據等,為性能測試和服務器擴展提供很好的數據參考

accesslog的組成

  • 一條典型的accesslog
101.226.166.254 - - [21/Oct/2013:20:34:28 +0800] " GET /movie_cat.php?year=2013 HTTP/1.1" 200 5209 "http://www.baidu.com" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider" 
下面我們來說說這一行記錄的意思:
  • 101.226.166.254:(用戶IP)
  • [21/Oct/2013:20:34:28 +0800]:(訪問時間)
  • GET:http請求方式,有GET和POST兩種
  • /movie_cat.php?year=2013:當前訪問的網頁是動態網頁,movie_cat.php即請求的后台接口,year=2013為具體接口的參數
  • 200:服務狀態,200表示正常,常見的還有,301永久重定向、4XX表示請求出錯、5XX服務器內部錯誤
  • 5209:傳送字節數為5209,單位為byte
  • "http://www.baidu.com":refer:即當前頁面的上一個網頁
  • "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider": agent字段:通常用來記錄操作系統、瀏覽器版本、瀏覽器內核等信息
數據統計及分析
  • 接口請求頻次:分接口、按天和小時分別統計。了解網站的運行情況,每個接口的請求頻次,用戶的行為習慣等。
  • 響應時間:一天的平均響應時間、分接口的平均響應時間、分接口按小時統計平均響應時間。響應時間過長的請求可能說明服務性能上存在缺陷,就需要對相應的接口進行優化了。
  • 異常分析:狀態碼非200的請求、響應時間超過一定域值的請求。大量的404不利用SEO,應該盡量避免。
  • 具體參數統計:對於動態頁面,一個接口通常帶有多個參數,其中某個或者某幾個參數特別重要,可以進一步細化,產生接口對應的參數的統計結果
  • ip來源的統計:可以統計出網頁訪問的ip來源,進一步通過ip定位,可以產生網站按地域的訪問情況,同時對ip的統計,也可以對一些可能的攻擊或者黑客行為進行識別。
  • 蜘蛛抓取情況分析:搜索引擎的蜘蛛通常會設置agent字段,通過分析agent字段,可以得到網站一天被百度、谷歌等搜索引擎抓取的次數,以及哪些網頁經常被spider爬過,這也是SEO的基礎。

accesslog的shell 腳本分析

  • 查看80端口的tcp連接
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l 
  • 當前WEB服務器中聯接次數最多的ip地址:
netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -n -r 231 ::ffff:127.0.0.1:8095 23 ::ffff:192.168.50.201:5432 2 ::ffff:192.168.50.203:80 1 servers) 1 ::ffff:192.168.50.56:43314 1 ::ffff:192.168.50.21:2996 1 ::ffff:192.168.50.21:2989 1 ::ffff:192.168.50.200:8060 1 ::ffff:192.168.50.12:1300 1 ::ffff:192.168.50.12:1299 1 ::ffff:192.168.50.12:1298 1 ::ffff:127.0.0.1:57933 1 Address 1 192.168.50.41:65310 1 192.168.50.41:64949 1 192.168.50.41:49653 
  • 查看日志中訪問次數最多的前10個IP
cat access_log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less 14085 121.207.252.122 13753 218.66.36.119 11069 220.162.237.6 1188 59.63.158.118 1025 ::1 728 220.231.141.28 655 114.80.126.139 397 117.25.55.100 374 222.76.112.211 348 120.6.214.70 
  • 查看日志中出現100次以上的IP
cat access_log |cut -d ' ' -f 1 |sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr |less 14085 121.207.252.122 13753 218.66.36.119 11069 220.162.237.6 1188 59.63.158.118 1025 ::1 728 220.231.141.28 655 114.80.126.139 397 117.25.55.100 374 222.76.112.211 348 120.6.214.70 252 58.211.82.150 252 159.226.126.21 206 121.204.57.94 192 59.61.111.58 186 218.85.73.40 145 221.231.139.30 134 121.14.148.220 123 222.246.128.220 122 61.147.123.46 119 121.204.105.58 107 116.9.75.237 105 118.123.5.173 ..... 
  • 查看某一天的訪問量
cat access_log|grep '12/Nov/2012'|grep "******.htm"|wc|awk '{print $1}'|uniq 
  • 查看訪問時間超過30ms的url列表
cat access_log|awk ‘($NF > 30){print $7}’|sort -n|uniq -c|sort -nr|head -20 
  • 列出響應時間超過60m的url列表並統計出現次數
cat access_log |awk ‘($NF > 60 && $7~/\.php/){print $7}’|sort -n|uniq -c|sort -nr|head -100 
  • 統計/index.[html]頁面的訪問uv
grep "/index.html" access.log | cut –d “ ” –f 4| sort | uniq | wc –l 
  • PV
grep "/index.html" access.log | wc -l 

 

ip、uv和pv的定義

  • IP(獨立IP): 即Internet Protocol,指獨立IP數。00:00-24:00內相同IP地址只被計算一次。
  • PV(訪問量): 即Page View, 即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。
  • UV(獨立訪客):即Unique Visitor,訪問您網站的一台電腦客戶端為一個訪客。00:00-24:00內相同的客戶端只被計算一次。

ip,pv,uv的區別

  • IP(獨立IP):某IP地址的計算機訪問網站的次數。這種統計方式很容易實現,具有真實性。所以是衡量網站流量的重要指標。
  • PV(訪問量):PV反映的是瀏覽某網站的頁面數,所以每刷新一次也算一次。就是說PV與來訪者的數量成正比,但PV並不是頁面的來訪者數量,而是網站被訪問的頁面數量。
  • UV(獨立訪客):可以理解成訪問某網站的電腦的數量。網站判斷來訪電腦的身份是通過來訪電腦的cookies實現的。如果更換了IP后但不清除cookies,再訪問相同網站,該網站的統計中UV數是不變的。

舉例以說明:

  • 甲乙丙三人某台通過ADSL的電腦,訪問了“goto52”這個網站,並且每人各瀏覽了2個頁面,那么網站的流量統計是:
    • IP(獨立IP):1
    • PV(訪問量):6(3人乘以2個頁面)
    • UV(獨立訪客):1
  • 若三人都是更換了IP(ADSL重新撥號)后各瀏覽了2個頁面,則
    • IP(獨立IP):3
    • PV(訪問量):6
    • UV(獨立訪客):1
    • 所以,IP(獨立IP)反映的是網絡地址對象的數量,UV(獨立訪客)反映的是實際使用者的數量,每個UV相對於每個ip更准確地對應一個實際的瀏覽者。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM