Web Application Firewall (WAF) の保護対象でログ収集を有効にすると、ログデータをクエリおよび分析し、その結果を使用してグラフの生成、アラートの作成などを行うことができます。
前提条件
WAF のログサービスが有効になっていること。詳細については、「ログサービスの有効化または無効化」をご参照ください。
保護対象が存在すること (お客様の Web ビジネスがすでに WAF と統合されていること)。詳細については、「概要」をご参照ください。
WAF の保護対象でログ配信が有効になっていること。詳細については、「ログ配信ステータスの管理」をご参照ください。
ログのクエリと分析
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスがデプロイされているリソースグループとリージョンを選択します。 中国本土または中国本土以外を選択します。
左側のナビゲーションペインで、 を選択します。
SLS ページの左上で、照会したいログの保護対象を選択します。
重要保護対象オブジェクトでは、ログ収集が有効になっている必要があります (ステータス スイッチがオン)。そうでない場合、WAF は該当オブジェクトのログデータを収集できません。選択した保護対象オブジェクトでログ収集が有効になっていない場合、現在のページでそのオブジェクトを検索して名前をクリックし、ステータス スイッチをオンにしてログ収集を有効にします。
Log Query タブで、クエリおよび分析ステートメントを使用して WAF ログデータをクエリおよび分析します。
クエリエディターにクエリ文を入力します。
クエリ文は Alibaba Cloud Simple Log Service (SLS) 固有の構文を使用します。詳細については、「検索構文と関数」をご参照ください。クエリ文では、WAF ログのフィールドをクエリフィールドとして使用できます。サポートされているフィールドの一覧については、「ログフィールド」をご参照ください。
クエリ構文に慣れていない場合は、Advanced Search を使用することをお勧めします。Advanced Search を展開し、検索条件を設定して、Search をクリックします。一致するクエリステートメントがクエリエディターに自動的に生成されます。次の表では、高度な検索で使用できる検索条件について説明します。
検索条件
説明
[IP]
リクエストを送信したクライアントの IP アドレス。
[Request ID]
WAF がクライアントリクエストに対して生成する一意の識別子。WAF は、ブロックページまたはスライダー CAPTCHA レスポンスを返すときにこの ID を提供します。このリクエスト ID を使用して、問題を分析およびトラブルシューティングできます。
[Rule ID]
一致した WAF 保護ルールの ID です。ルール ID は、[保護ルール] ページ、または セキュリティレポート ページの一致レコードおよび統計から確認できます。詳細については、「セキュリティレポート」をご参照ください。
[Status Code Returned from Origin Server]
WAF が転送したリクエストに対してオリジンサーバーが返す HTTP ステータスコード。
[Status Code Returned from WAF]
WAF がクライアントに返す HTTP ステータスコード。
[保護モジュール]
一致した WAF 保護モジュール。WAF 保護モジュールとそのルールの設定方法の詳細については、「保護設定の概要」をご参照ください。
クエリ結果を計算または分析するには、クエリエディターの既存のクエリ文の後に分析文を追加します。特定の基準を満たすログをクエリするだけでよい場合は、このステップをスキップできます。
パイプ文字 (|) を使用して、クエリ文と分析文を区切ります。分析文は標準の SQL-92 構文を使用します。詳細については、「ログのクエリと分析の概要」をご参照ください。
タイムピッカーを使用して、クエリ対象のログの時間範囲を設定します。
検索と分析 をクリックします。
ページの下部には、ログ分布ヒストグラムと Rawデータ、グラフ、LogReduce の各タブを含む、クエリと分析の結果 (クエリ条件に一致する WAF ログ) が表示されます。これらの結果を使用して、迅速な分析、グラフの生成、アラートの設定などを行うことができます。詳細については、「クエリ & 分析ページ」をご参照ください。
一般的なクエリ例
次の例は、WAF ログの一般的なクエリおよび分析シナリオを示しています。時間範囲はコンソール上部のタイムピッカーを使用して設定します。クエリ文に時間フィルター条件を含める必要はありません。
次の例のドメイン名、IP アドレス、その他の値は、実際の値に置き換えてください。
アクセス数の上位 10 件の IP のクエリ:
host:example.com |SELECT real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10アクセス数の上位 10 件の URL のクエリ:
host:example.com |SELECT request_path,COUNT(*) as c group by request_path order by c desc limit 10特定の IP によってアクセスされた URL のクエリ (ドメインが CC 攻撃を受けている場合、ターゲットとなるエンドポイントは通常集中しています):
host:example.com and real_client_ip:1.2.3.4 |SELECT request_path,COUNT(*) as c group by request_path order by c desc limit 10特定のエンドポイントにアクセスしている上位 10 件の IP のクエリ (攻撃中、悪意のある IP は通常上位にランク付けされます):
host:example.com and request_path: "/login.php" |SELECT real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10ステータスコードのクエリ (異常なステータスコードを使用して、ビジネスが正常に実行されているかどうかを確認します):
host:example.com|select status, upstream_status,COUNT(*) as c GROUP by status, upstream_status order by c desc limit 10CC 保護モジュールにヒットした IP の検索:
host:example.com and final_plugin:cc |select real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10
クエリ結果のエクスポート
クエリを実行した後、Rawデータ タブで ログのダウンロード をクリックすると、現在のクエリ結果の生ログデータを CSV ファイルとしてエクスポートできます。
グラフ タブでは、データテーブルの直接ダウンロードはサポートされていません。
大規模なログ分析に関する推奨事項
WAF ログデータの量が多い場合 (例えば、100 万件を超えるレコードなど)、ローカルで処理するためにすべての生ログをエクスポートすることはお勧めしません。代わりに、Log Query ページの SQL 分析機能を使用してクラウド上で集計計算を実行し、結果のみをダウンロードすることをお勧めします。
たとえば、各保護ルールのヒット数をカウントする場合:
* | SELECT matched_host, final_action, COUNT(*) as c GROUP BY matched_host, final_action ORDER BY c DESC LIMIT 1000特定の時間範囲内の各ドメインのリクエスト量をカウントする場合:
* | SELECT host, COUNT(*) as pv GROUP BY host ORDER BY pv DESC LIMIT 100GROUP BY、COUNT、SUM などの SQL 集計関数を使用して、クラウド上で計算を実行します。これにより、大規模なデータセットの分析効率が大幅に向上し、すべての生ログをエクスポートする際に発生する可能性のあるタイムアウトやファイルサイズの超過による問題を回避できます。
クエリと分析 ページ
ページの概要
ヒストグラム

緑色のデータブロックにカーソルを合わせると、その時間範囲とログヒット数が表示されます。
緑色のデータブロックをダブルクリックすると、より細かい時間の粒度でログの分布を確認できます。指定した時間範囲のクエリ結果は、[Rawデータ] タブに表示されます。
生ログ
ログの詳細

[テーブル] または [Raw Data] をクリックして、ログの表示形式を切り替えます。
:ログをコンピューターにダウンロードします。詳細については、「ログのダウンロード」をご参照ください。
> JSON 設定項目:JSON ログの表示タイプとレベルを設定します。
> イベント設定項目:生ログに対してイベントを構成します。
:ログ内容をコピーします。
:SLS Copilot を使用して、ログ内容に基づき情報を要約し、エラーを検出します。
:特定のログのコンテキスト情報を元のファイル内で表示します。この機能は、Logtail によって収集されたログでのみ利用可能です。詳細については、「コンテキストクエリ」をご参照ください。
:ログ内容をリアルタイムで監視し、重要なログ情報を抽出します。LiveTail 機能は、Logtail によって収集されたログでのみサポートされています。詳細については、「LiveTail」をご参照ください。
表示フィールド

[表示フィールド] セクションで、フィールド横の
アイコンをクリックすると、そのフィールドが [表示フィールド] セクションから削除され、右側のログ情報に表示されなくなります。
:ビューをお気に入りに保存します。エリア 5 で表示するフィールドを指定した後、そのビューをお気に入りに保存できます。エリア 4 上部のドロップダウンリストからビューを選択できます。
> タグ設定項目:フィールドをシステムタグとして設定します。
> エイリアス:この機能を有効化すると、フィールド名がエイリアスに置き換えられます。エイリアスが指定されていないフィールドは、元の名前のまま表示されます。フィールドエイリアスの設定方法については、「インデックスの作成」をご参照ください。
インデックスフィールド

[インデックスフィールド] セクションで、フィールド横の
アイコンをクリックすると、そのフィールドが [表示フィールド] セクションに追加され、右側のログ情報に表示されるようになります。
:フィールドの [基本的な分布状況] および [統計メトリック] を表示します。詳細については、「フィールド設定項目」をご参照ください。
グラフ
グラフは、クエリおよび分析文に基づいて Simple Log Service がレンダリングした結果を表示します。Simple Log Service は、テーブル、折れ線グラフ、縦棒グラフなど、さまざまなチャートタイプを提供しています。詳細については、「統計チャート」をご参照ください。クエリおよび分析文を実行すると、[グラフ] タブで可視化されたクエリおよび分析結果を確認できます。
このタブのその他の機能:
ダッシュボードに追加:Simple Log Service が提供するダッシュボードは、リアルタイムのデータ分析ボードです。[ダッシュボードに追加] をクリックすると、クエリおよび分析結果をチャートとしてダッシュボードに保存できます。詳細については、「可視化の概要」をご参照ください。
スケジュールされた SQL として保存:Simple Log Service は、定期的にデータを分析し、集計データを保存したり、データをプロジェクションまたはフィルターしたりするためのスケジュール済み SQL 機能を提供しています。詳細については、「スケジュール済み SQL」をご参照ください。
インタラクションの発生:この重要なデータ分析機能により、データディメンションの階層や分析の粒度を変更して、より詳細な情報を取得できます。詳細については、「ダッシュボードにインタラクションを追加してドリルダウン分析を実行」をご参照ください。
LogReduce
[LogReduce] タブで、[LogReduce の有効化] をクリックすると、収集中に高度に類似したログを集約できます。詳細については、「LogReduce」をご参照ください。
SQL 拡張機能
右上隅の
アイコンをクリックして、単一会話で専用 SQL を有効化します。SQL を使用して大量のデータを分析する際、Simple Log Service (SLS) は指定された時間範囲内のすべてのログを 1 回のクエリで分析できない場合があります。専用 SQL を有効化することで、コンピューティングリソースを追加し、1 回のクエリで分析可能なデータ量を増やすことができます。専用 SQL をデフォルトで有効化する方法については、「高性能かつ完全正確なクエリと分析 (専用 SQL)」をご参照ください。
アラート機能
右上隅の
アイコンをクリックして、[新規アラームに保存] を選択すると、クエリおよび分析結果に基づいてアラートルールを作成できます。詳細については、「アラート機能のクイックスタート」をご参照ください。
保存された検索
右上隅の
アイコンをクリックして、現在のクエリおよび分析文を [クイック検索として保存] します。保存された操作を使用して、クエリおよび分析操作を迅速に実行できます。詳細については、「クイック検索」をご参照ください。
共有
右上隅の
アイコンをクリックして、現在のページの URL をコピーし、共有します。詳細については、「コンソールページの埋め込みと共有」をご参照ください。
> ログのダウンロード