全部產品
Search
文件中心

CDN:快速分析離線訪問日誌

更新時間:Jun 05, 2026

獲得離線記錄檔後,您可以使用命令列工具來快速解析記錄檔,提取訪問量TOP10的IP地址、User-Agent和Referer資訊。本文為您介紹如何在Linux環境中,使用命令列工具分析CDN的離線訪問日誌。

前提條件

已下載離線日誌,具體請參見快速入門

使用說明

  • 日誌命名規則:加速網域名稱_年_月_日_開始時間_結束時間[擴充欄位].gz,擴充欄位以底線(_)開頭。例如aliyundoc.com_2018_10_30_000000_010000_xx.gz

    說明

    擴充欄位可能不存在,例如aliyundoc.com_2018_10_30_000000_010000.gz

  • 日誌樣本

    [9/Jun/2015:01:58:09 +0800] 10.10.10.10 - 1542 "-" "GET http://www.aliyun.com/index.html" 200 191 2830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)" "text/html"

解析日誌

收集和準備日誌資料

  1. 快速入門,可得到aliyundoc.com_2018_10_30_000000_010000.gz的記錄檔。

  2. 上傳記錄檔至本地Linux系統伺服器。

  3. 登入本地Linux系統伺服器,執行如下命令,解壓記錄檔。

    gzip -d aliyundoc.com_2018_10_30_000000_010000.gz

    解壓後得到一個檔案名稱為aliyundoc.com_2018_10_30_000000_010000的記錄檔。

識別和過濾異常行為

檢查請求量

您可以通過分析離線日誌資料中的IP請求次數來識別異常請求量的情況。通常請求量異常會具有如下幾個特徵:

  • 異常高的請求量:對單一源IP的訪問頻次進行深度審查,若檢測到某IP地址在特定時段內發起的請求量顯著偏離常態值,此情況高度疑似為流量盜用行為。

  • 短時間內大量請求:突然的流量峰值或者異常的周期性請求模式。

    統計訪問前十IP地址。

    cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -10
    說明
    • awk '{print $3}': 提取記錄檔的第3列,即IP地址。(列之間使用空格隔開)。

    • sort: 排序IP地址。

    • uniq -c: 統計每個IP地址的出現次數。

    • sort -nr: 按統計次數進行降序排列。

    • head -n 10: 擷取出現次數最多的前10個IP地址。

    • [$Log_Txt]:替換對應的記錄檔名稱,例如aliyundoc.com_xxxxxxx

使用者代理程式分析

您可以通過分析離線日誌資料中的請求User-Agent來識別異常請求量的情況。通常請求User-Agent異常會有如下幾個特徵:

  • 異常或偽造的User-Agent:很多盜刷工具會使用預設或偽造的User-Agent,可以通過篩選不常見和可疑的或為空白User-Agent進行分析。

    提取和統計User-Agent。

     grep -o '"Mozilla[^"]*' [$Log_Txt] | cut -d'"' -f2 | sort | uniq -c | sort -nr | head -n 10

    可通過排除常見的User-Agent來篩選可疑的User-Agent。

    grep -v -E "Firefox|Chrome|Safari|Edge" [$Log_Txt]

    統計User-Agent為空白的行數,即訪問次數。

    awk '!/Mozilla/' [$Log_Txt] | wc -l
    說明

    grep -o:只輸出匹配的內容。

    grep -v -E:顯示合格字元。

    wc -l :統計數量。

請求模式分析

您可以通過分析離線日誌資料中的URL請求量來識別異常請求量的情況。通常URL請求異常會具有如下幾個特徵:

  • URL相似性高:盜刷流量通常會請求大量類似或相同的URL,可以通過分析URL模式發現異常請求。

  • 高比例訪問特定資源類型:重點分析被頻繁訪問的資源(如圖片、CSS、JS等),如果某些特定資源被異常大量訪問,也可能是盜刷流量。

    統計訪問前十的url。

    grep -oP '"https?://[^"]+"' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10

響應碼分析

您可以通過分析離線日誌資料中的請求狀態代碼來識別異常請求量的情況。通常請求狀態代碼異常會具有下幾個特徵:

  • 高比例的4xx或5xx響應:如果某一IP地址產生大量的4xx或5xx響應碼,可能表明該地址在進行惡意爬取嘗試。

    統計不同狀態代碼出現的次數。

    awk '{print $9}' [$Log_Txt] | sort | uniq -c | sort -nr

    統計狀態代碼為400前十IP。

    grep ' 400 ' [$Log_Txt] | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10

Referer分析

您可以通過分析離線日誌資料中的Referer欄位來識別異常流量來源。當網域名稱出現異常大流量時,Referer分析有助於判斷流量是否來自正常引用還是盜鏈或攻擊行為。通常Referer異常會具有如下幾個特徵:

  • 空Referer請求佔比過高:大量空Referer請求可能意味著直接存取或工具盜刷。正常情況下,圖片、視頻等靜態資源的請求通常攜帶來源頁面的Referer,如果空Referer請求消耗的流量佔比明顯偏高,需要重點排查。

    統計訪問前十Referer。

    awk '{print $6}' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10

    統計空Referer請求數量。

    awk '$6=="\"-\"" {count++} END {print count}' [$Log_Txt]

    統計空Referer請求中訪問量前十的IP地址。

    awk '$6=="\"-\"" {print $3}' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10
    說明
    • $6:日誌中的第6個欄位,對應Referer值。空Referer在日誌中表現為"-"

    • 如果空Referer請求產生了大量流量,建議結合CDN的Referer防盜鏈功能配置黑白名單,限制空Referer的訪問。

  • 異常Referer來源集中:如果排名靠前的Referer不屬於您自身的業務網域名稱,可能存在其他網站盜鏈您的資源。

    過濾指定Referer的請求並統計對應IP。

    grep 'example.com' [$Log_Txt] | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10
    說明

    example.com替換為實際可疑的Referer網域名稱。通過此命令可以確認哪些IP在使用該Referer盜鏈您的資源。