ログデータをリアルタイムでクエリおよび分析することで、ネットワークアクティビティを把握し、トラフィックの異常を特定できます。この機能により、セキュリティ監視が強化され、インシデント対応が改善されます。本トピックでは、ログ分析に使用するクエリ文および分析文の記述方法と、その結果の表示および解釈方法について説明します。
文の構文
クエリ文および分析文
ログ分析用の文は、縦棒 (|) で区切られたクエリ文と分析文で構成されます。
query statement|analytic statementクエリ文は Simple Log Service の構文を使用して、指定された条件を満たすログを検索します。単体でも使用可能です。キーワード、数値、値の範囲、スペース、またはアスタリスク (*) を含めることができます。スペースまたはアスタリスク (*) は、フィルター条件を適用しないことを示します。
インデックスの構成方法に応じて、クエリは全文検索またはフィールド検索に分類されます。詳細については、「クエリ構文および関数」をご参照ください。
分析文は、クエリ結果または完全データセットに基づいて統計情報を計算および生成します。クエリ文と共に使用する必要があります。分析文が空の場合、クエリ結果のみが返され、分析は実行されません。分析文の構文および関数の詳細については、「クエリと分析の概要」をご参照ください。
一般的なクエリ文
本セクションでは、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 packetNAT ファイアウォールのトラフィックをクエリし、ソース 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インターネット境界ファイアウォールのインバウンドレイヤー 4 接続について、接続数の降順で上位 10 件のソース IP を一覧表示します。
log_type:internet_log and direction:"in" | select src_ip, count(*) as cnt group by src_ip 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
操作手順
Cloud Firewall コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択し、ログクエリ タブをクリックします。
(オプション)デフォルトでは、ログクエリ ページを開いた際に、システムが自動的にクエリを実行して結果を表示します。ページ右上隅の
アイコンをクリックし、クエリ タブでこの機能を無効にするか、クエリ時間を設定します。検索ボックスにクエリ文および分析文を入力します。
クエリ文 は、ログデータの表示、検索、フィルターに使用します。時間範囲、リクエストタイプ、キーワードなどの特定の条件を指定して、必要なデータをフィルターできます。クエリ文は単体でも使用可能です。構文の詳細については、「クエリ構文および特徴」をご参照ください。
分析文 は、ログデータに対してフィルター、変換、統計分析、集約などの操作を実行するために使用します。たとえば、ある期間におけるデータの平均値を計算したり、前年比や前月比の結果を取得したりできます。分析文は、
query statement|analytic statementの形式でクエリ文と共に使用する必要があります。構文の詳細については、「集約関数」をご参照ください。
次の 3 つの方法のいずれかで、ログの クエリ/分析 の時間範囲を設定します。分析文で時間範囲が設定されている場合、クエリおよび分析結果はその時間範囲に基づきます。
ページ上部の時間範囲ピッカーで、15 分 などの時間範囲を選択します。
分析文 で、
__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())
Query/Analysis をクリックして、クエリおよび分析結果を表示します。詳細については、「クエリおよび分析結果の表示」をご参照ください。
クエリおよび分析結果の表示
ヒストグラムおよび生ログモジュールに、クエリおよび分析の結果が表示されます。
分析文で limit パラメーターを設定しない場合、デフォルトで 100 件のエントリが返されます。より多くのエントリを返すには、limit パラメーターを手動で設定してください。
本セクションでは、ヒストグラムおよび生ログに表示されるデータについて説明します。その他の機能については、「ログクエリおよび分析のクイックスタート」をご参照ください。
ヒストグラム
ヒストグラムには、クエリされたログの時間分布が表示されます。

ポインターを緑色のデータブロックに重ねると、その時間範囲およびログヒット数が表示されます。
緑色のデータブロックをダブルクリックすると、より細かい時間の粒度でログの分布を表示できます。指定された時間範囲のクエリ結果は、Rawデータ タブにも表示されます。
生ログ
Raw Logs タブには、ログのクエリおよび分析結果が表示されます。
No. | 説明 |
① | ログの表示形式、ソート順、その他の設定を変更します。 |
② |
|
③ |
|
④ | ログの表示フィールド、インデックスフィールド、システムフィールドを表示します。
|
⑤ |
|
⑥ | ログの詳細を表示します。ログフィールドの詳細な説明については、「ログフィールド」をご参照ください。
|
よくある質問
従量課金の Cloud Firewall で、請求書に表示されるログ使用量がコンソールの表示よりも多いのはなぜですか?
この相違は予想されるものであり、課金単位および計算方法の違いによるものです。
: Cloud Firewall ログ分析 コンソールには、ログが実際に使用しているストレージ容量が表示されます。たとえば、1 TB と表示される場合があります。
課金: 従量課金の Cloud Firewall では、ログ分析の課金単位は TB/時間 です。システムは、実際のストレージ容量に 1 日の時間数(24)を乗算して、課金対象の合計使用量を計算します。
例
コンソールに実際のログストレージ容量が 1 TB と表示されている場合、1 日あたりの課金対象ストレージ使用量は次のように計算されます:1 TB × 24 時間 = 24 TB。