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

Cloud Firewall:ログのクエリと分析

最終更新日:Jun 16, 2026

ログデータをリアルタイムでクエリおよび分析することは、ネットワークアクティビティを把握し、トラフィックの異常を特定するのに役立ちます。この機能は、セキュリティ監視を強化し、インシデント対応を向上させます。このトピックでは、ログ分析のためのクエリステートメントと分析ステートメントの使用方法、および結果の表示方法と見方について説明します。

ステートメントの構文

クエリステートメントと分析ステートメント

ログ分析のステートメントは、クエリステートメントと分析ステートメントで構成され、縦棒 (|) で区切られています。

query statement | analytic statement
  • クエリステートメントは、Simple Log Service の構文を使用して、指定された条件を満たすログを検索します。クエリステートメントは独立して使用できます。クエリステートメントには、キーワード、数値、値の範囲、スペース、またはアスタリスク (*) を含めることができます。スペースまたはアスタリスク (*) は、フィルター条件が適用されないことを示します。

    インデックスの設定方法によって、クエリは全文検索とフィールド検索に分類されます。詳細については、「クエリ構文と機能」をご参照ください。

    全文検索

    キーワードを二重引用符 ("") で囲むと、そのキーワードを含むログを検索できます。また、複数のキーワードをスペースまたは and で区切ると、指定されたすべてのキーワードを含むログを検索できます。

    • 複数キーワードのクエリ

      www.aliyun.compass の両方を含むログを検索します。

      www.aliyun.com pass

      または

      www.aliyun.com and pass
    • 条件付きクエリ

      www.aliyun.com を含み、かつ pass または tcp のいずれかを含むログを検索します。

      www.aliyun.com and (pass or tcp)
    • プレフィックスクエリ

      www.aliyun.com を含み、tcp_ で始まるログを検索します。

      www.aliyun.com and tcp_*
      説明

      アスタリスク (*) は、プレフィックス検索のサフィックスとしてのみ使用できます。*_not_establish のように、アスタリスクをプレフィックスとして使用することはサポートしていません。

    フィールド検索

    フィールド名と値を指定してデータをクエリします。数値フィールドの場合、field:value または field >= value の形式で比較演算子を使用できます。また、andor などの論理演算子を使用して複合クエリを作成したり、フィールド検索と全文検索を組み合わせたりすることもできます。

    Cloud Firewall のログ分析でインデックス作成がサポートされているフィールドについては、「インデックス付きフィールド」をご参照ください。

    • 複数フィールドのクエリ

      送信元 IP 192.XX.XX.22 から宛先 IP アドレス 192.XX.XX.54 へのリクエストのアクセスログをクエリします。

      src_ip: 192.XX.XX.22 and dst_ip: 192.XX.XX.54
    • フィールドの存在によるクエリ

      • cloud_instance_id フィールドを含むログをクエリします。

        cloud_instance_id: *
      • cloud_instance_id フィールドを含まないログをクエリします。

        not cloud_instance_id: *
  • 分析ステートメントは、クエリ結果または完全なデータセットから統計を計算して生成します。クエリステートメントと共に使用する必要があります。分析ステートメントが空の場合、クエリ結果のみが返され、分析は実行されません。分析ステートメントの構文と機能の詳細については、「クエリと分析の概要」をご参照ください。

一般的なクエリステートメント

このセクションでは、Cloud Firewall ログの一般的なクエリ構文と例を示します。

トラフィック量のクエリ

  • インターネットから内部アセット 1.2.*.* へのネットワークアクセスレコードをクエリし、インバウンドの総トラフィック量と総パケット数を計算します。

    log_type:internet_log and direction:"in" and dst_ip:1.2.*.* | select sum(in_packet_bytes) as flow, sum(in_packet_count) as packet
  • NAT ファイアウォールのトラフィックをクエリし、結果を送信元 IP、宛先 IP、宛先ポートでグループ化し、インバウンドとアウトバウンドの合計トラフィック量で上位 10 のアセットを分析します。

    log_type:nat_firewall_log | select src_ip, dst_ip, dst_port, sum(in_packet_bytes) as in_bytes, sum(out_packet_bytes) as out_bytes, sum(total_packet_bytes) as total_bytes group by src_ip, dst_ip, dst_port order by total_bytes desc limit 10

アクセス制御

  • アクセス制御ポリシーに一致する、インターネットから内部アセットへのアクセスのトラフィックログをクエリします。

    log_type:internet_log and direction:"in" and not acl_rule_id:00000000-0000-0000-0000-000000000000

    not acl_rule_id:00000000-0000-0000-0000-000000000000 という条件は、アクセス制御ポリシーに一致したログをフィルタリングします。acl_rule_id がすべてゼロの場合は、ポリシーに一致しなかったことを示します。

  • アクセス制御ポリシーによってブロックされた、内部アセットからインターネットへのアウトバウンドアクセスのトラフィックログをクエリし、上位 10 の宛先 IP アドレスと宛先ポートの分布を分析します。

    log_type:internet_log and direction:out and not acl_rule_id:00000000-0000-0000-0000-000000000000 and rule_result:drop | select dst_ip, dst_port, count(*) as cnt group by dst_ip, dst_port order by cnt desc limit 10
  • 宛先ポートが 443、パケット数が 3 より大きい (完全な TCP 3 ウェイハンドシェイクを示す)、かつドメイン名が特定されていない、内部アセットからインターネットへのアウトバウンドアクセスのトラフィックログをクエリします。結果を宛先 IP アドレスセグメントとアプリケーションでグループ化し、上位 10 の送信元 IP、宛先 IP、およびアプリケーションを分析します。

    log_type:internet_log and direction:out and dst_port:443 and total_packet_count>3 and domain:""| select array_agg(distinct src_ip) as srcip, array_agg(distinct dst_ip) as dstip, slice(split(dst_ip,'.' ,4),1,3) as dstip_c, app_name, COUNT(1) as cnt GROUP by dstip_c,app_name order by cnt desc limit 10

攻撃防御

  • 攻撃防御ポリシーに一致する、インターネットから内部アセットへのアクセスのトラフィックログをクエリします。

    log_type:internet_log and direction:"in" and not ips_rule_id:00000000-0000-0000-0000-000000000000

    not ips_rule_id:00000000-0000-0000-0000-000000000000 という条件は、攻撃防御ポリシーに一致したログをフィルタリングします。ips_rule_id がすべてゼロの場合は、ポリシーに一致しなかったことを示します。

  • 攻撃防御ポリシーに一致する、内部アセットからインターネットへのアウトバウンドアクセスのトラフィックログをクエリし、IP アドレス、ポート、アプリケーション、ドメイン、IPS ポリシーの結果などの情報を表示します。

    log_type:internet_log and direction:out and not ips_rule_id:00000000-0000-0000-0000-000000000000 | select src_ip, dst_ip, dst_port,app_name, domain,ips_rule_id, ips_rule_name, rule_result

手順

  1. Cloud Firewall コンソール にログインします。

  2. ナビゲーションペインで、レスポンス検出 > ログ分析 を選択し、ログクエリ タブをクリックします。

  3. (オプション) デフォルトでは、ログクエリ ページを開くと、システムは自動的にクエリを実行して結果を表示します。ページの右上隅にある image アイコンをクリックします。クエリ タブで、この機能を無効にするか、クエリ時間を設定します。

  4. 検索ボックスに、クエリステートメントと分析ステートメントを入力します。

    • クエリステートメントは、ログデータの表示、検索、フィルタリングに使用します。クエリステートメントに時間範囲、リクエストタイプ、キーワードなどの特定の条件を指定して、目的のデータをフィルタリングできます。クエリステートメントは単独で使用できます。構文の詳細については、「クエリ構文と機能」をご参照ください。

    • 分析ステートメントは、フィルタリング、変換、統計分析、集計など、ログデータに対する操作を実行するために使用します。たとえば、一定期間のデータの平均値を計算したり、前年比および前月比の結果を取得したりできます。分析ステートメントは、query statement | analytic statement の形式でクエリステートメントと一緒に使用する必要があります。構文の詳細については、「集計関数」をご参照ください。

  5. 次の 3 つの方法のいずれかで、ログの クエリ/分析の時間範囲を設定します。分析ステートメントで時間範囲が設定されている場合、クエリと分析の結果にはその時間範囲が適用されます。

    説明

    デフォルトでは、クエリ結果は最大 100 行まで返されます。より多くのデータを返す場合は、LIMIT 句を使用してください。詳細については、「LIMIT 句」をご参照ください。

    • ページ上部の時間範囲選択ツールで、[15 分] などの時間範囲を選択します。image

    • [分析文] 内で、__time__ フィールドを使用して時間範囲を指定します。例:

      * | SELECT * FROM log WHERE __time__ > 1731297600 AND __time__ < 1731310038
    • [分析文] 内で時間を指定する際は、from_unixtime 関数 または to_unixtime 関数 を使用して時間形式を変換します。例:

      • * | SELECT * FROM log WHERE from_unixtime(__time__) > from_unixtime(1731297600) AND from_unixtime(__time__) < now()
      • * | SELECT * FROM log WHERE __time__ > to_unixtime(date_parse('2024-10-19 15:46:05', '%Y-%m-%d %H:%i:%s')) AND __time__ < to_unixtime(now())
  6. [Query/Analysis] をクリックして、クエリと分析の結果を表示します。詳細については、「クエリと分析の結果の表示」をご参照ください。

クエリと分析の結果の表示

ヒストグラムと生ログのモジュールに、クエリと分析の結果が表示されます。

説明
  • 分析ステートメントで limit パラメーターを設定しない場合、デフォルトで 100 エントリが返されます。より多くのエントリを返すには、手動で limit パラメーターを設定してください。

  • このセクションでは、ヒストグラムと生ログに表示されるデータについて説明します。その他の機能については、「ログのクエリと分析のクイックスタート」をご参照ください。

ヒストグラム

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

image

  • 緑色のデータブロックにポインターを合わせると、その時間範囲とログのヒット数が表示されます。

  • 緑色のデータブロックをダブルクリックすると、より細かい時間粒度でログの分布を表示できます。指定した時間範囲のクエリ結果もRawデータ タブに表示されます。

生ログ

[Raw Logs] タブには、ログのクエリと分析の結果が表示されます。

番号

説明

ログの表示形式、ソート順、その他の設定を変更します。

image アイコンをクリックしてログをローカルコンピューターにダウンロードするか、ダウンロード履歴を表示します。詳細については、「ログのエクスポート」をご参照ください。

  • image アイコンをクリックし、[JSON Configuration] を選択して、JSON の展開タイプとレベルを設定します。

  • image アイコンをクリックし、[Event Configuration] を選択します。これは視覚的で使いやすい生ログのドリルダウン機能で、より詳細なログ情報を取得するのに役立ちます。詳細については、「イベント設定」をご参照ください。

ログの表示フィールド、インデックス付きフィールド、およびシステムフィールドを表示します。

  • [Indexed Fields] セクションで、フィールドの横にある image アイコンをクリックして、表示フィールドに追加します。フィールドは右側のログ詳細に表示されます。

  • [Display Fields] セクションで、フィールドの横にある image アイコンをクリックして、表示フィールドから削除します。フィールドは右側のログ詳細に表示されなくなります。

    説明

    [Display Fields] を追加しない場合、右側のログ詳細には、システムが設定したデフォルトのフィールドが表示されます。

  • フィールドの横にある image アイコンをクリックして、その 基本的な分布状況統計メトリック、およびその他の情報を表示します。詳細については、「フィールドの設定」をご参照ください。

  • [Display Fields] を設定した後、image アイコンをクリックして、表示フィールドのリストをビューとして保存します。こうすることで、ビューをすばやく切り替えて、目的のデータを表示できます。

  • image アイコンをクリックし、[Tag Settings] を選択して、フィールドをシステムタグとして設定します。タグは右側のログ詳細の上に表示されます。

  • image アイコンをクリックし、[Alias] 機能を有効にして、フィールド名をエイリアスに置き換えます。エイリアスのないフィールドは、元の名前のまま表示されます。フィールドエイリアスの設定手順については、「インデックスの作成」をご参照ください。

ログの詳細を表示します。ログフィールドの詳細な説明については、「ログフィールド」をご参照ください。

  • image アイコンをクリックして、ログの内容をコピーします。

  • image アイコンをクリックして SLS Copilot を使用し、ログの内容に基づいて情報を要約したり、エラーを検出したり、その他のタスクを実行したりします。

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

関連ドキュメント