Web 訪問日誌分析

用途

  1. 記錄訪問服務器的遠程主機 IP 地址,可以得知瀏覽者來自何處
  2. 記錄瀏覽者訪問 web 資源,可以瞭解網站哪些部分最受歡迎
  3. 記錄瀏覽者使用瀏覽器,可以根據大多數瀏覽者使用瀏覽器對站點進行優化
  4. 記錄瀏覽者訪問時間

訪問日誌位置

1.Apache
在 httpd.conf 和引用的*.conf文件中查找 CustomLog "logs/access.log" combined
說明:

a.CustomLog 訪問日誌配置指令
b.logs/access.log 訪問日誌記錄文件
c.combined 日誌格式

2.Nginx
在 nginx.conf 或引用的 *.conf 文件中查找 access_log logs/access.log main
說明:

a.access_log 訪問日誌配置指令
b.logs/access.log 訪問日誌記錄文件
c.main 日誌格式

訪問日誌格式

1、Apache

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

配置說明

2、nginx

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" "$http_x_forwarded_for"';

配置說明
變量說明

3、通用日誌格式 common

127.0.0.1 - - [14/May/2017:12:45:29 +0800] "GET /index.html HTTP/1.1" 200 4286
遠程主機IP            請求時間         時區  方法    資源      協議     狀態碼 發送字節

4、組合日誌格式 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字符           瀏覽器信息

5、日誌狀態碼

2XX:

200: 請求成功
201: 創建成功
202: 接受請求
204: 無內容

3XX:

301: 永遠重定向
302: 臨時重定向
303: 臨時重定向(HTTP1.1 同302)
307: 臨時重定向(HTTP1.1 POST方法)

4XX:

400: 錯誤請求
401: 訪問拒絕
403: 訪問禁止
404: 未找到
405: 請求方法錯誤

5XX:

500: 服務器內部錯誤
503: 服務不可用
505: 網關超時

日誌統計

1、查看訪問 IP 地址

cat access.log|awk '{print $1}'
cat access.log|awk '{print $1}'|sort

2、查看每個 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

3、統計總訪問 IP 數量

cat access.log|awk '{print $1}'|sort|uniq -c|wc -l

4、訪問指定時間後的日誌

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

5、訪問指定資源的日誌

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

6、統計總流量

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}'

7、狀態碼統計

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

作者:kk
首發鏈接:https://www.jianshu.com/p/01aa4785f915

更多詳情51Reboot教育

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章