ログ、指標、トレース

このドキュメントでは、Secure Web Proxy がオペレーション データをログに記録する方法、Cloud Monitoring API 指標を使用してプロキシのパフォーマンスを分析する方法、分散トレースを使用してリクエストのライフサイクルをモニタリングする方法について説明します。

ログ

Secure Web Proxy は Cloud Logging を使用して、次の主要な領域で情報をキャプチャし、さまざまなタスクを実行します。

  • モニタリングとコンプライアンス

    • 規制へのコンプライアンスを適用し、ネットワーク セキュリティを強化して、許可された外部宛先に送信されるアウトバウンド ウェブ トラフィックを可視化します。
    • ワークロード トラフィックを制御して可視化する、価値の高いレイヤを取得する。
    • セキュリティ オペレーション センター(SOC)の効果的なモニタリングに不可欠な分析情報を取得します。
    • ログを使用してセキュリティ イベントを検出して追跡し、脅威に予防的に対応します。
  • デプロイメントと構成

    • 初期インフラストラクチャの設定、ユーザー アカウントの作成、構成の変更を追跡します。
    • 潜在的なエラーをモニタリングして、スムーズで安全なデプロイを確保します。
    • ポリシー調整の影響を把握し、保護を最適化します。

ログの種類

Secure Web Proxy は、Logging を使用して次のタイプのログをキャプチャして保存します。

  • Cloud Audit Logs: Secure Web Proxy リソースに対する管理上の変更とデータアクセスをキャプチャします。これらのログには次のものが含まれます。

  • プロキシ トランザクション ログ: Secure Web Proxy が処理する特定のウェブ リクエストの詳細をキャプチャします。これらのログは、Secure Web Proxy インスタンスのトラフィック フロー、ポリシーの適用、パフォーマンスに関する分析情報を提供します。

ログアラートを構成する

トラフィックの拒否や特定のルールの一致など、Secure Web Proxy が Logging に書き込むイベントに対するアラートを構成できます。これらのアラートを設定する一般的な手順については、ログベースのアラートを構成するをご覧ください。

Secure Web Proxy のログベースのアラートを構成するために使用できるクエリの例を次に示します。

Secure Web Proxy ポリシーによって拒否されたトラフィックのアラート

Secure Web Proxy ポリシーがリクエストを拒否したときにアラートをトリガーするには、次のクエリを使用します。

logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
resource.type="networkservices.googleapis.com/Gateway"
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.action="DENIED"

PROJECT_ID は、ターゲットGoogle Cloud プロジェクトの ID に置き換えます。

Secure Web Proxy ルールによって拒否されたトラフィックに関するアラート

次のクエリを使用して、特定の Secure Web Proxy ルール(my-specific-deny-rule など)がリクエストを拒否したときにアラートをトリガーします。

logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
resource.type="networkservices.googleapis.com/Gateway"
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.action="DENIED"
AND jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.name=~"projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/my-specific-deny-rule$"

次のように置き換えます。

  • PROJECT_ID: ターゲット Google Cloud プロジェクトの ID
  • REGION: Secure Web Proxy インスタンスのリージョン
  • POLICY_NAME: Secure Web Proxy ポリシーの名前

サービス レート制限ポリシーによってスロットリングされたトラフィックのアラート

サービス レート制限ポリシーがリクエストをスロットリングしたときにアラートをトリガーするには、次のクエリを使用します。

logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
resource.type="networkservices.googleapis.com/Gateway"
jsonPayload.rateLimitPolicyInfo.overallResult="THROTTLED"

PROJECT_ID は、ターゲットGoogle Cloud プロジェクトの ID に置き換えます。

レイテンシの高いリクエストに関するアラート

次のクエリを使用して、リクエストが特定のレイテンシ(5 秒など)を超えたときに通知を受け取ります。

logName="projects/'PROJECT_ID'/logs/networkservices.googleapis.com%2Fgateway_requests"
resource.type="networkservices.googleapis.com/Gateway"
latency >= "5s"

PROJECT_ID は、ターゲットGoogle Cloud プロジェクトの ID に置き換えます。

Cloud Logging でログを確認する

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. Google Cloud プロジェクトを選択します。

  3. プルダウン メニューを使用して、networkservices.googleapis.com/Gateway リソースまたは Secure Web Proxy インスタンスを選択します。

詳細については、ログ エクスプローラの使用をご覧ください。

ログエントリの例

Secure Web Proxy は、リクエストを処理するたびに詳細なログエントリを生成し、アクションと適用されたポリシーを追跡します。次の例は、Secure Web Proxy ログの仕組みを示しています。

許可ログエントリの例

次のログエントリは、Secure Web Proxy インスタンスが www.example.com の HTTPS トラフィックをインターセプトして検査し、宛先ウェブサイトへの続行を許可したことを示しています。ポリシー名とルール名はそれぞれ swp-policy と allow-port-443 です。

フィールド 値
enforcedGatewaySecurityPolicy
{
        "requestWasTlsIntercepted": true,
        "hostname": "www.example.com",
        "matchedRules": [
          {
            "action": "ALLOWED",
            "name": "projects/76537/locations/us-central1/gatewaySecurityPolicies/swp-policy/rules/allow-port-443"
          }
        ]
      }
httpRequest
{
        "requestMethod": "GET",
        "requestUrl": "https://www.example.com/",
        "requestSize": "41",
        "status": 200,
        "responseSize": "1446",
        "userAgent": "curl/7.74.0",
        "remoteIp": "10.128.0.12:35418",
        "serverIp": "93.184.216.34:443",
        "latency": "0.051800s",
        "protocol": "HTTP/2"
      }
resource
{
        "type": "networkservices.googleapis.com/Gateway",
        "labels": {
          "gateway_name": "multi-level-tlds",
          "network_name": "projects/76537/global/networks/default",
          "location": "us-central1",
          "resource_container": "",
          "gateway_type": "SECURE_WEB_GATEWAY"
        }
      }
timestamp "2024-02-15T16:56:19.570534Z"
severity "INFO"
logName "projects/76537/logs/networkservices.googleapis.com%2Fgateway_requests"
receiveTimestamp "2024-02-15T16:56:20.714988329Z"

拒否ログエントリの例

このログエントリは、Secure Web Proxy インスタンスが www.example.com:443 のトラフィックを検査し、Secure Web Proxy ポリシーの default_denied ルールにより HTTPS リクエストを拒否したことを示しています。

フィールド 値
enforcedGatewaySecurityPolicy
{
        "hostname": "www.example.com:443",
        "matchedRules": [
          {
            "name": "default_denied",
            "action": "DENIED"
          }
        ]
      }
httpRequest
{
        "requestMethod": "CONNECT",
        "requestSize": "122",
        "status": 403,
        "responseSize": "141",
        "userAgent": "curl/7.74.0",
        "remoteIp": "10.128.0.12:36338",
        "latency": "0.000133s",
        "protocol": "HTTP/1.1"
      }
resource
{
        "type": "networkservices.googleapis.com/Gateway",
        "labels": {
          "gateway_type": "SECURE_WEB_GATEWAY",
          "resource_container": "",
          "location": "us-central1",
          "network_name": "projects/gcp-1768/global/networks/default",
          "gateway_name": "high-latency-repro"
        }
      }
timestamp "2024-02-15T16:55:00.089727Z"
severity 「WARNING」
logName "projects/gcp-1768/logs/networkservices.googleapis.com%2Fgateway_requests"
receiveTimestamp "2024-02-15T16:55:04.456901833Z"

サービス レート制限ポリシーのログエントリの例

次のログエントリは、クライアントが rl_default_rpm_limit RateLimitBucket の RateLimitPolicy(rl-egress-policy という名前)を超えたため、Secure Web Proxy インスタンスがリクエストをスロットリングしたことを示しています。

フィールド 値
rateLimitPolicyInfo
{
          "policies": [
            {
              "name": "projects/76537/locations/us-central1/rateLimitPolicies/rl-egress-policy",
              "buckets": [
                {
                  "bucket": "rl_default_rpm_limit",
                  "key": "spiffe://projects-123.global.workload.id.goog/ns/ns1/sa/hellomcp",
                  "result": "THROTTLED"
                }
              ],
              "result": "THROTTLED",
              "details": "Default user rate limit rate exceeded client-side."
            }
          ],
          "overallResult": "THROTTLED"
        }
httpRequest
{
          "requestMethod": "POST",
          "requestUrl": "https://example.com/v1/chat/completions",
          "requestSize": "144",
          "status": 429,
          "responseSize": "85",
          "userAgent": "curl/7.74.0",
          "remoteIp": "10.128.0.12:35418",
          "serverIp": "93.184.216.34:443",
          "latency": "0.001200s",
          "protocol": "HTTP/2"
        }
resource
{
          "type": "networkservices.googleapis.com/Gateway",
          "labels": {
            "gateway_type": "SECURE_WEB_GATEWAY",
            "resource_container": "",
            "location": "us-central1",
            "network_name": "projects/76537/global/networks/default",
            "gateway_name": "egress-swp-gateway"
          }
        }
timestamp "2026-02-15T16:56:19.570534Z"
severity 「WARNING」
logName "projects/76537/logs/networkservices.googleapis.com%2Fgateway_requests"
receiveTimestamp "2026-02-15T16:56:20.714988329Z"

Cloud Trace を使用した分散トレース

Secure Web Proxy は、Trace と統合された組み込みの分散リクエスト トレースをサポートしています。

ログとトレースの相関関係

Logging に書き込まれるすべてのプロキシ トランザクション ログエントリには、 Google Cloud トレース リソース文字列を含む trace フィールドが含まれます。

<pre class="devsite-click-to-copy">
"trace": "projects/PROJECT_ID/traces/TRACE_ID"
</pre>

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • TRACE_ID: クライアントまたはトレース スパンからの 128 ビット(32 文字の 16 進数)のトレース ID。例: 4bf92f3577b34da6a3ce929d0e0e4736

このトレース ID を使用して、ログエントリを対応するトレーススパンに関連付けることができます。

  • ログからトレースへ: ログ エクスプローラで、ログエントリの trace フィールドをクリックし、[トレースの詳細を表示] を選択して、Trace でリクエストのウォーターフォール全体を開きます。
  • トレースからログへ: トレースで、[トレースの詳細] ペインの [ログを表示] をクリックして、トレースに関連付けられているすべてのプロキシ トランザクション ログを表示します。

詳細については、Trace を使用した分散トレースをご覧ください。

指標

Cloud Monitoring API の指標を使用すると、Secure Web Proxy インスタンスのパフォーマンス、健全性、使用状況をモニタリングできます。

モニタリング対象リソース

Secure Web Proxy の指標は、次のモニタリング対象リソースにエクスポートされます。

  • networkservices.googleapis.com/Gateway: Secure Web Proxy ゲートウェイ インスタンスを表します。

次の表に、networkservices.googleapis.com/Gateway で使用可能なリソースを示します。これらのリソースを使用して、モニタリング データをフィルタして集計できます。

ラベル 説明
resource_container Secure Web Proxy ゲートウェイ インスタンスに関連付けられているプロジェクトの ID。
location ゲートウェイがデプロイされているGoogle Cloud リージョン。
gateway_id Secure Web Proxy ゲートウェイ インスタンスの一意の名前。
gateway_type ゲートウェイのタイプ。SECURE_WEB_GATEWAY に設定されています。
network_name ゲートウェイに関連付けられている Virtual Private Cloud(VPC)ネットワークの名前。

利用可能な指標

Gateway リソースでは、次の指標を使用できます。すべての指標には networkservices.googleapis.com/https/ という接頭辞が付いています。

指標タイプ 表示名 種類、型、単位 説明
networkservices.googleapis.com/https/request_count リクエスト数 DELTA、INT64、1 プロキシで処理されたリクエストの合計数。
networkservices.googleapis.com/https/request_bytes_count リクエスト バイト数 DELTA、INT64、By リクエストで受信したバイト数の合計。
networkservices.googleapis.com/https/response_bytes_count レスポンス バイト数 DELTA、INT64、By レスポンスで送信されたバイト数の合計。
networkservices.googleapis.com/https/total_latencies 総レイテンシ DELTA、DIST、ms リクエストの最初のバイトが受信されてから、レスポンスの最後のバイトが送信されるまでの時間。
networkservices.googleapis.com/https/backend_latencies バックエンド レイテンシ DELTA、DIST、ms リクエストがバックエンドに送信されてから、レスポンスの最初のバイトが受信されるまでの時間。

カスタム ダッシュボードを作成する

Secure Web Proxy インスタンスのパフォーマンスとトラフィックの傾向を可視化するカスタム ダッシュボードを作成するには、次の操作を行います。

  1. Google Cloud コンソールで [ダッシュボード] ページに移動します。

    ダッシュボードに移動する

  2. [カスタム ダッシュボードを作成します] をクリックします。

  3. [ウィジェットを追加] をクリックし、[折れ線] グラフ オプションを選択します。

  4. [指標] フィールドで「networkservices.googleapis.com/https/request_count」を検索します。

  5. 複数の Secure Web Proxy インスタンスを構成している場合は、[フィルタ] フィールドで gateway_id でフィルタできます。

  6. [集計] セクションで、[アライメント期間] を 1 minute に設定し、[整列指定子] に rate を選択します。

    これにより、未加工のリクエスト データが 1 秒あたりのリクエスト数に変換され、トラフィックの傾向を時間の経過とともに一貫して確認し、分析しやすくなります。

  7. ウィジェットを保存するには、[適用] をクリックします。

次のステップ