コマンドラインツールを使用してオフラインログファイルを解析し、リクエスト数、ユーザーエージェント、リファラーごとの上位 10 件の IP アドレスなどの情報を抽出できます。このトピックでは、Linux 環境でコマンドラインツールを使用して CDN のオフラインアクセスログを分析する方法について説明します。
ログデータの収集と準備
クイックスタート を参照して、ログファイル
aliyundoc.com_2018_10_30_000000_010000.gzを取得します。ログファイルをローカルの 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"ローカルの 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 -nr400 ステータスコードを生成した上位 10 件の IP アドレスを一覧表示します。
grep ' 400 ' [$Log_Txt] | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10