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

Web Application Firewall:ログ検索

最終更新日:Sep 12, 2026

WAF で保護されたドメイン名のログ収集を有効にすると、ログ検索機能を使用して、収集したログデータをリアルタイムでクエリおよび分析できます。これらの結果から、グラフの生成、アラートの作成、その他のアクションを実行できます。

前提条件

  • Log Service for WAF を有効化していること。詳細については、「WAF 向け Log Service の使用開始」をご参照ください。

  • WAF で保護されたドメイン名のログ収集を有効化していること。詳細については、「Log Service の使用」をご参照ください。

ログのクエリと分析

  1. WAFコンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスがデプロイされているリソースグループとリージョンを選択します。 リージョンは、中国本土または中国本土以外です。

  2. 左側のナビゲーションウィンドウで、[セキュリティ操作] > [Log Service] を選択します。

  3. ドメイン名のドロップダウンリストからドメイン名を選択し、ステータス スイッチをオンにします。

    ドメイン名のドロップダウンリスト (図の ①) には、WAF で保護されたドメイン名のみが含まれます。まだドメイン名を WAF に追加していない場合は、先に追加してください。詳細については、「チュートリアル」をご参照ください。

  4. ログ照会 タブで、検索文と分析文を使用して WAF のログデータをクエリおよび分析します。

    1. 検索ボックス (図の ①) に検索文を入力します。

      検索文では、Log Service 固有の構文を使用します。構文の詳細については、「検索構文と関数」をご参照ください。検索文では、クエリフィールドとして WAF のログフィールドを使用できます。サポートされているフィールドのリストについては、「WAF ログフィールド」をご参照ください。

      検索構文に慣れていない場合は、詳細検索 を使用します。検索ボックスの上にある 詳細検索 を展開し、検索条件を設定してから、検索 をクリックします。条件に一致する検索文が自動的に生成されます。次の表に、利用可能な検索条件を示します。

      検索条件

      説明

      IP

      クライアントの IP アドレス。

      リクエスト ID

      WAF がクライアントリクエスト用に生成する一意の ID です。WAF は、ブロックページまたはスライダー CAPTCHA チャレンジを返すときにこの ID を提供します。この ID を使用して問題をトラブルシューティングできます。

      ルール ID

      リクエストがトリガーした WAF 保護ルールの ID です。ルール ID は、セキュリティレポート ページまたは システム管理 > 保護ルールグループ ページで確認できます。

      [サーバーレスポンスコード]

      オリジンサーバーが返した HTTP ステータスコードです。

      [WAFより返されるステータスコード]

      WAF がクライアントに返す HTTP ステータスコードです。

      [保護機能]

      リクエストが一致した WAF 保護ルールのタイプです。WAF 保護モジュールと各モジュールのルールの設定方法の詳細については、「概要」をご参照ください。

    2. クエリ結果に対して統計分析を実行するには、検索ボックス (図の ①) の検索文の後に分析文を追加します。特定の条件を満たすログのみをクエリする場合は、この手順をスキップしてください。

      分析文と検索文をパイプ (|) で区切ります。分析文では、標準の SQL-92 構文を使用します。分析文の詳細については、「ログのクエリと分析の概要」をご参照ください。

    3. タイムピッカー (図の ②) を使用して、ログクエリの時間範囲を指定します。

    4. [検索と分析] (図の ③) をクリックします。

      クエリと分析の結果 (クエリに一致した WAF ログ) がページの下部に表示されます。結果には、ログ分布ヒストグラム、Rawログ、グラフ が含まれます。結果に基づいて、クイック分析を実行したり、グラフを生成したり、アラートを作成したりできます。詳細については、「クエリと分析結果の管理」および「アラートの作成」をご参照ください。

    ログのクエリと分析のその他の例については、「クエリと分析の例」をご参照ください。

クエリと分析結果の管理

Log Service for WAF は、クエリと分析の結果をログヒストグラム、生ログ、グラフとして表示します。アラートを作成したり、クイッククエリを実行したりすることもできます。

  • ログヒストグラム

    ログヒストグラムには、クエリしたログの時間分布が表示されます。

    • 緑色のバーにカーソルを合わせると、対応する時間範囲と一致したログの数が表示されます。

    • 緑色のバーをクリックすると、より詳細な時間分布が表示されます。Rawログ タブも更新され、選択した時間範囲の結果が表示されます。

  • 生ログ

    Rawログ タブで、ログクエリの詳細な結果を表示できます。

    • クイック分析

      别名 アイコンをクリックして、キーまたはエイリアスを表示するかを選択します。 インデックスを作成するときにエイリアスを設定できます。 たとえば、host が host_name のエイリアスである場合、[フィールドエイリアスを表示] を選択すると、クイック分析リストに host が表示されます。

      説明

      フィールドにエイリアスがない場合、[フィールドエイリアスを表示] を選択しても、そのキーがクイック分析リストに表示されます。

      詳細については、「フィールド設定」をご参照ください。

    • ログ詳細の表示

      • テーブル をクリックすると、ログが表形式で表示されます。

      • Raw Data をクリックすると、生ログが表示されます。

        • 复制 アイコンをクリックしてログをコピーします。

        • tag详情 アイコンをクリックしてタグの詳細を表示します。

      • ラップ をクリックして、ログ表示の折り返しを切り替えます。

      • 時間 をクリックすると、ログが時系列で表示されます。

      • Download logs アイコンをクリックして、ログをローカルコンピューターにダウンロードします。Cloud Shell を使用するか、コマンドラインツールを使用して、ログを直接ダウンロードできます。詳細については、「ログのダウンロード」をご参照ください。

      • 设置 アイコンをクリックして、[タグ設定]、[列設定]、[JSON 設定]、イベントの設定 を設定します。

  • グラフ

    グラフ タブでは、クエリと分析結果を可視化したグラフを表示できます。このタブで対応するグラフを表示するには、検索ボックスに SQL-92 分析文を入力する必要があります。

    • グラフタイプの切り替え:別のグラフタイプを選択して、分析結果を表示します。さまざまなグラフタイプの詳細については、「グラフ」をご参照ください。

    • グラフのプレビュー:グラフタイプを切り替えた後、表示をプレビューできます。

      ダッシュボードに追加 をクリックして、現在のグラフをダッシュボードに追加します。ログのダウンロード をクリックして、ログをローカルコンピューターにダウンロードします。このページのログをダウンロードします。、Cloud Shell でダウンロード、または コマンドラインツールからすべてのログをダウンロードする。 を選択できます。詳細については、「ログのダウンロード」をご参照ください。

    • グラフ設定の変更

      操作

      説明

      一般設定

      グラフのグローバル設定を行います。たとえば、配色を選択すると、グラフ全体でその配色が使用されます。

      フィールド設定

      単一のクエリの結果または結果内の単一の列に対して、個別の表示設定を行います。たとえば、特定のクエリ結果を選択し、グラフの対応する部分にのみ配色を適用できます。

      インタラクションの設定

      単一のクエリ結果またはクエリ結果内の単一の列に対して、より詳細な分析を行うためのインタラクションを設定します。

  • LogReduce

    LogReduce タブで LogReduce の有効化 をクリックして、ログ収集中に類似ログをクラスタリングします。詳細については、「LogReduce」をご参照ください。

アラートの作成

現在の検索文と分析文に基づいてアラートを作成できます。アラートを作成すると、Log Service は定期的にクエリ結果を評価します。結果が指定されたトリガー条件を満たす場合、Log Service が通知を送信します。これにより、サービスステータスをリアルタイムで監視できます。

クエリと分析のページで、新規アラームに保存 > [新規アラート] を選択して、クエリ結果に基づいてアラートを作成します。詳細については、「アラートの設定」をご参照ください。

クエリと分析の例

  • 異なる WAF 保護モジュールがブロックした攻撃リクエストの数を 15 分間隔で分析します。結果には、時間 (time) のほか、WAF ルールエンジン (wafmodule)、IP アドレスブラックリストとカスタムアクセスコントロールリスト (ACL) ポリシー (aclmodule)、HTTP フラッド攻撃対策 (httpfloodmodule) の各モジュールがブロックしたリクエストの数が表示されます。

    * |
    SELECT
      time_series(__time__, '15m', '%H:%i', '0') as time,
      COUNT_if(final_plugin = 'waf') as "wafmodule",
      COUNT_if(final_plugin = 'acl') as "aclmodule",
      COUNT_if(final_plugin = 'cc') as "httpfloodmodule"
    GROUP by
      time
    ORDER by
      time
  • 最終的なアクションをトリガーした保護モジュールタイプ (final_plugin) の分布を分析します。結果には、ヒット数 (times)、リクエスト先のドメイン名 (host)、および最終的な保護モジュール (final_plugin) が表示されます。

    * |
    SELECT
      count(*) as times,
      host,
      final_plugin
    GROUP by
      host,
      final_plugin
    ORDER by
      times desc
  • 秒間クエリ数 (QPS) を 15 分間隔で分析します。結果には、時間 (time) と QPS が表示されます。

    * |
    SELECT
      time_series(__time__, '15m', '%H:%i', '0') as time,
      count(*) / 900 as QPS
    GROUP by
      time
    ORDER by
      time
  • HTTP フラッド攻撃の標的になることが多いドメイン名を検索します。結果には、ブロックされたリクエストの数 (times) とリクエスト先のドメイン名 (host) が表示されます。

    * and final_plugin: 'cc' |
    SELECT
      count(*) as times,
      host
    GROUP by
      host
    ORDER by
      times desc
  • Web サイトリクエストログの詳細を 1 秒間隔で分析します。結果には、時間 (time)、リクエスト先のドメイン名 (host)、リクエストパス (request_path)、リクエストメソッド (request_method)、WAF 応答ステータスコード (status)、オリジンサーバー応答ステータスコード (upstream_status)、およびクエリ文字列 (querystring) が表示されます。

    * |
    SELECT
      date_format(date_trunc('second', __time__), '%H:%i:%s') as time,
      host,
      request_path,
      request_method,
      status,
      upstream_status,
      querystring
    LIMIT
      10
  • Web サイト (your_domain_name) への最新の攻撃リクエストレコードを 10 件クエリします。結果には、リクエスト時刻 (time)、実際のクライアント IP (real_client_ip)、およびクライアントタイプ (http_user_agent) が表示されます。

    matched_host: your_domain_name
    and final_action: block |
    SELECT
      time,
      real_client_ip,
      http_user_agent
    ORDER by
      time desc
    LIMIT
      10
  • Web サイト (your_domain_name) への攻撃リクエストが WAF にブロックされてから経過した日数 (days_passed) を分析します。この値は小数点第 1 位で四捨五入されます。

    matched_host: your_domain_name
    and final_action: block |
    SELECT
      time,
      round((to_unixtime(now())-__time__) / 86400, 1) as "days_passed",
      real_client_ip,
      http_user_agent
    ORDER by
      time desc
    LIMIT
      10
  • Web サイト (your_domain_name) への攻撃リクエストの日次傾向を分析します。

    matched_host: your_domain_name
    and final_action: block |
    SELECT
      date_trunc('day', __time__) as dt,
      count(1) as PV
    GROUP by
      dt
    ORDER by
      dt

    date_trunc 関数は、タイムスタンプを日単位でグループ化するために使用されます。この関数の詳細については、「日付および時刻関数」をご参照ください。

  • Web サイト (your_domain_name) への攻撃リクエストの送信元国 (country) の分布を分析します。

    matched_host: your_domain_name
    and final_action: block |
    SELECT
      ip_to_country(
        if(real_client_ip = '-', remote_addr, real_client_ip)
      ) as country,
      count(1) as "Number of attacks"
    GROUP by
      country

    WAF ログでは、real_client_ip フィールドは実際のクライアント IP を表します。ユーザーのプロキシサーバー経由でのアクセスや、リクエストヘッダー内の IP フィールドが正しくないなどの理由で実際のクライアント IP を取得できず、real_client_ip の値が - になる場合は、リモートアドレスを表す remote_addr フィールドを実際のクライアント IP として使用できます。

  • Web サイト (your_domain_name) への攻撃リクエストの送信元省 (province) の分布を分析します。

    matched_host: your_domain_name
    and final_action: block |
    SELECT
      ip_to_province(
        if(real_client_ip = '-', remote_addr, real_client_ip)
      ) as province,
      count(1) as "Number of attacks"
    GROUP by
      province

    ip_to_province 関数は、実際のクライアント IP の省情報を取得します。この関数の詳細については、「IP 関数」をご参照ください。