オフラインログファイルを取得したら、コマンドラインインターフェイス (CLI) を使用してログファイルを解析し、訪問の上位10個のIPアドレス、User-Agentヘッダー、およびRefererヘッダーを抽出できます。 このトピックでは、CLIを使用してLinux環境でAlibaba Cloud CDNのオフラインログを分析する方法について説明します。
前提条件
オフラインログがダウンロードされます。 詳細については、「オフラインログのダウンロード」をご参照ください。
使用上の注意
ログファイルの命名規則: Accelerated domain name_year_month_day_start time_end time[extension field].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 (互換; AhrefsBot/5.0; http://example.com/robot/)" "text/html"
解析ログ
ログデータの収集と準備
圧縮ログファイル
aliyundoc.com_2018_10_30_000000_010000.gzをダウンロードします。 詳細については、「オフラインログのダウンロード」をご参照ください。ログファイルをローカルLinuxサーバーにアップロードします。
ローカルLinuxサーバーにログインし、次のコマンドを実行してログファイルを解凍します。
gzip -d aliyundoc.com_2018_10_30_000000_010000.gzログファイルを解凍すると、
aliyundoc.com_2018_10_30_000000_010000ファイルが表示されます。
異常な動作を特定してフィルタリングする
チェックリクエスト
オフラインログデータのIPアドレスからのリクエスト数を分析することで、異常なリクエストを特定できます。 ほとんどの場合、異常なリクエストには次の特性があります。
異常な大量のリクエスト: 単一の送信元IPアドレスのアクセス頻度を分析できます。 特定の期間内のIPアドレスからの要求の数が正常値から大きく逸脱した場合、データ送信の不正使用が発生した可能性があります。
短時間で多数のリクエスト: 突然のトラフィックの急増または異常な定期的なリクエストが存在するかどうかを確認できます。
最も多くのリクエストを開始した上位10個の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: 結果をcountの降順でソートします。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 | クローム | サファリ | エッジ" [$Log_Txt]User-Agentヘッダーが空の行数 (訪問数) をカウントします。
awk '!/Mozilla/' [$Log_Txt] | wc -l説明grep -o: 一致するコンテンツのみを表示します。grep -v -E: 条件を満たす文字を表示します。wc -l: 訪問数をカウントします。
リクエストモードの分析
オフラインログデータ内のリクエストURLの数を分析することで、異常なリクエストを特定できます。 ほとんどの場合、異常なリクエストURLには次の特性があります。
高いURL類似性: ほとんどの場合、データ送信の悪用には、多数の類似または同一のURLが含まれます。 URLを分析して、異常なリクエストを特定できます。
特定の種類のリソースへのアクセスの割合が高い: 画像、CSSファイル、JavaScriptファイルなど、頻繁にアクセスするリソースを分析できます。 特定のリソースへの異常な訪問が多数ある場合、データ送信の悪用が発生している可能性があります。
訪問したURLのトップ10を数えます。
grep -oP '"https?://[^"]+ "' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10
HTTPステータスコードの分析
オフラインログデータのHTTPステータスコードを分析することで、異常なリクエストを特定できます。 ほとんどの場合、異常なリクエストのHTTPステータスコードには次の特性があります。
HTTPステータスコード4xxまたは5xxの割合が高い: 多数のHTTPステータスコード4xxまたは5xxがIPアドレスに返された場合、そのIPアドレスを使用してコンテンツをクロールできます。
各HTTPステータスコードの数を数えます。
awk '{print $9}' [$Log_Txt] | sort | uniq -c | sort -nrHTTPステータスコード400が返される上位10個のIPアドレスを収集します。
grep '400' [$Log_Txt] | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10