すべてのプロダクト
Search
ドキュメントセンター

CDN:オフラインログの分析

最終更新日:Jul 15, 2026

コマンドラインツールを使用してオフラインログファイルを解析し、リクエスト数が上位 10 件の IP アドレス、ユーザーエージェント、リファラーなどの情報を抽出できます。このトピックでは、Linux 環境でコマンドラインツールを使用して CDN オフラインアクセスログを分析する方法について説明します。

ログデータの収集と準備

  1. ログファイル aliyundoc.com_2018_10_30_000000_010000.gz を取得するには、「クイックスタート」をご参照ください。

  2. ログファイルをローカルの Linux サーバーにアップロードします。

    ログエントリのサンプル:

    [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"
  3. ローカルの Linux サーバーにログインし、次のコマンドを実行してログファイルを解凍します。

    gzip -d aliyundoc.com_2018_10_30_000000_010000.gz

    解凍により、aliyundoc.com_2018_10_30_000000_010000 という名前のログファイルが作成されます。

    ログファイルの命名規則:高速化ドメイン名_年_月_日_開始時刻_終了時刻 [拡張フィールド].gz。拡張フィールドはアンダースコア (_) で始まります。例: aliyundoc.com_2018_10_30_000000_010000_xx.gz

    説明

    特定のログファイルには拡張フィールドが含まれない場合があります。例: aliyundoc.com_2018_10_30_000000_010000.gz

異常な動作の特定とフィルタリング

リクエスト数の確認

オフラインアクセスログデータ内の IP アドレスのリクエスト数を分析して、異常なリクエスト数を特定できます。異常なリクエスト数には、通常、次のような特徴があります。

  • 異常に多いリクエスト数:単一の送信元 IP アドレスからのアクセス頻度を詳細に確認します。特定の期間内に、リクエスト数がベースラインから大きく逸脱した IP アドレスが検出された場合、トラフィックスクレイピングが強く疑われます。

  • 短期間での大量のリクエスト:突然のトラフィックスパイクや、異常で周期的なリクエストパターン。

    リクエスト数の多い上位 10 件の IP アドレスを一覧表示します。

    cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -n 10
    説明
    • awk '{print $3}':ログファイルの 3 列目 (IP アドレス) を抽出します。列はスペースで区切られています。

    • sort:IP アドレスをソートします。

    • uniq -c:各 IP アドレスの出現回数をカウントします。

    • sort -nr:結果をカウント数の降順でソートします。

    • head -n 10:リクエスト数が最も多い上位 10 件の IP アドレスを取得します。

    • [$Log_Txt]:ログファイルの名前 (例: aliyundoc.com_xxxxxxx) に置き換えてください。

ユーザーエージェント分析

オフラインアクセスログ内のユーザーエージェントを分析して、異常なリクエストを特定します。異常なユーザーエージェントには、通常、次のような特徴があります。

  • 異常または偽装されたユーザーエージェント:多くのスクレイピングツールは、デフォルトまたは偽装されたユーザーエージェントを使用します。一般的でない、疑わしい、または空のユーザーエージェントをフィルタリングすることで、これらを検出できます。

    ユーザーエージェントを抽出してカウントします。

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

    一般的なユーザーエージェントをフィルタリングして、疑わしいものを特定できます。

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

    「Mozilla」を含まないユーザーエージェントを持つリクエストの数をカウントします。

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

    grep -o:マッチした内容のみを出力します。

    grep -v -E:マッチングを反転させ、指定されたパターンに一致しない行を表示します。

    wc -l:行数をカウントします。

リクエストパターン分析

オフラインアクセスログ内のリクエスト URL を分析して、異常なリクエストパターンを特定します。異常な URL リクエストには、通常、次のような特徴があります。

  • URL の類似性が高い:トラフィックスクレイピングでは、類似または同一の URL に対する大量のリクエストが発生することがよくあります。URL パターンを分析することで、これらの異常なリクエストを検出できます。

  • 特定のリソースタイプに対するリクエスト率が高い:画像、CSS、 JS ファイルなどの特定のリソースに対するリクエスト数が異常に多い場合、トラフィックスクレイピングを示している可能性があります。

    リクエスト数の多い上位 10 件の 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 ステータスコードを生成した上位 10 件の IP アドレスを一覧表示します。

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

リファラー分析

オフラインアクセスログ内の Referer フィールドを分析することで、異常なトラフィックの送信元を特定できます。高速化ドメイン名で異常なトラフィックの急増が発生した場合、リファラー分析により、トラフィックが正当な送信元、ホットリンク、または悪意のある攻撃からのものかどうかを判断できます。異常なリファラー値には、通常、次のような特徴があります。

  • 空のリファラーを持つリクエストの割合が高い:空のリファラーを持つリクエストが大量にある場合、直接アクセスまたはツールによるスクレイピングを示している可能性があります。通常の状況では、画像や動画などの静的リソースへのリクエストには、通常、送信元ページからのリファラーが含まれています。空のリファラーを持つリクエストからのトラフィックが著しく多い場合は、これらのリクエストを調査する必要があります。

    リクエスト数の多い上位 10 件のリファラーを一覧表示します。

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

    空のリファラーを持つリクエストをカウントします。

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

    空のリファラーを持つリクエストについて、リクエスト数の多い上位 10 件の IP アドレスを一覧表示します。

    awk '$6=="\"-\"" {print $3}' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10
    説明
    • $6 は、ログエントリの 6 番目のフィールドを指し、リファラー値に対応します。空のリファラーは、ログでは "-" として表されます。

    • 空のリファラーを持つリクエストが大量のトラフィックを生成する場合は、CDN のリファラーベースのホットリンク防止機能を使用して、許可リストまたは拒否リストを設定し、空のリファラーを持つリクエストからのアクセスを制限することを推奨します。

  • 上位のリファラーが自身のドメインに属していない場合、他のサイトがリソースをホットリンクしている可能性があります。

    特定のリファラーからのリクエストをフィルタリングし、対応する IP アドレスをカウントします。

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

    example.com を疑わしいリファラードメインに置き換えてください。このコマンドは、そのリファラーを使用してリソースをホットリンクしている IP アドレスを特定します。