Webアクセスログ分析

3964 ワード

用途
  • アクセスサーバのリモートホストIPアドレスを記録し、閲覧者がどこから来たかを知ることができる
  • .
  • 閲覧者がwebリソースにアクセスしたことを記録し、サイトのどの部分が最も人気があるかを知ることができます.
  • は、閲覧者がブラウザを使用することを記録し、多くの閲覧者がブラウザを使用してサイトを最適化することができる
  • を記録する.
  • 閲覧者アクセス時間
  • を記録する.
    アクセスログの場所
  • Apacheはhttpd.confと引用の*.confファイルで検索CustomLog "logs/access.log" combined説明:
     a.CustomLog         
     b.logs/access.log         
     c.combined     
    
  • Nginxはnginxにある.confまたは参照の*.confファイルで検索access_log logs/access.log main説明:
     a.access_log         
     b.logs/access.log         
     c.main     
    
  • アクセスログ形式
  • Apache
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
     LogFormat "%h %l %u %t \"%r\" %>s %b" common
    
    構成説明
  • nginx
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                   '$status $body_bytes_sent "$http_referer" '
                   '"$http_user_agent" "$http_x_forwarded_for"';
    
    構成説明変数説明
  • 汎用ログフォーマットcommon
     127.0.0.1 - - [14/May/2017:12:45:29 +0800] "GET /index.html HTTP/1.1" 200 4286
         IP                                                                 
    
  • コンビネーションログフォーマットcombined
     127.0.0.1 - - [14/May/2017:12:51:13 +0800] "GET /index.html HTTP/1.1" 200 4286 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"
         IP                                                              referer                  
    
  • ログステータスコード2 XX:
     200:     
     201:     
     202:     
     204:    
    
    3 XX:
     301:      
     302:      
     303:      (HTTP1.1  302)
     307:      (HTTP1.1 POST  )
    
    4 XX:
     400:     
     401:     
     403:     
     404:    
     405:       
    
    5 XX:
     500:        
     503:      
     505:     
    
  • ログ統計
  • アクセスIPアドレス
     cat access.log|awk '{print $1}'
     cat access.log|awk '{print $1}'|sort
    
  • を表示する
  • IPアドレスあたりのアクセス数を表示する
     cat access.log|awk '{print $1}'|sort|uniq -c
     cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr
     cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10
    
  • 統計総アクセスIP数
     cat access.log|awk '{print $1}'|sort|uniq -c|wc -l
    
  • 指定時間後のログ
     cat access.log|awk '$4>"[23/Aug/2014:23:58:00"'
     cat access.log|awk '($4>"[23/Aug/2014:23:58:00"){print $1}'
     cat access.log|awk '($4>"[23/Aug/2014:23:58:00"){print $1}'|sort|uniq -c|sort -nr
    
  • へのアクセス
  • 指定されたリソースにアクセスするログ
     cat access.log|awk '$7 ~/.html$/'
     cat access.log|awk '($7 ~/.html$/){print $1 " " $7 " " $9}'
     cat access.log|awk '($7 ~/.js$/){print $10 " " $7}'|sort|uniq -c|sort -nr|head -10
     cat access.log|awk '($10 > 10000 && $7 ~/.js$/){print $10 " " $7}'|sort|uniq -c|sort -nr|head -10
    
  • 統計総流量
     cat access.log|awk '{sum+=$10}END{print sum}'
     cat access.log|awk '($7 ~/.css$/){sum+=$10}END{print sum}'
     grep "04/May/2017" access.log|awk '($7 ~/.css$/){sum+=$10}END{print sum}'
    
  • ステータスコード統計
     cat access.log|awk '{print $9}' |sort|uniq -c|sort -nr
     cat access.log|awk '($9 ~/^400$/)' | wc -l
     cat access.log | awk '($4 ~/^\[04\/May\/2017/){print $9}'|sort|uniq -c|sort -nr
     cat access.log | awk '$9 ~/400/ && $4 ~/^\[04\/May\/2017/'|wc -l
     grep "04/May/2017" access.log | awk '{print $9}'|sort|uniq -c|sort -nr