全部產品
Search
文件中心

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

更新時間:Jul 24, 2024

獲得離線記錄檔後,您可以使用命令列工具來快速解析記錄檔,提取訪問量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