ログと指標

ロギング

Cloud NAT ロギングを使用すると、NAT 接続とエラーをログに記録できます。Cloud NAT ロギングを有効にすると、次のシナリオごとに 1 つのログエントリを生成できます。

  • NAT を使用するネットワーク接続が作成された。
  • NAT に使用可能なポートがないことが原因でパケットが破棄された。

両方の種類のイベントをログに記録するか、一方の種類のイベントのみをログに記録するかを選択できます。

作成されたログは Cloud Logging に送信されます。

仕様

Cloud NAT ロギングには、次の仕様が適用されます。

  • Cloud NAT ロギングでは、TCP トラフィックと UDP トラフィックのみが処理されます。

  • Cloud NAT ロギングでは、廃棄された下り(外向き)の TCP パケットと UDP パケットのみがログに記録されます。廃棄された受信パケットはログに記録されません。たとえば、外向きのリクエストに対する内向きのレスポンスがなんらかの理由で廃棄された場合、エラーはログに記録されません。

各 VM インスタンスが単位時間あたりに生成できるのは、一定数のログエントリのみであり、この数は vCPU の数に比例します。VM は vCPU あたり 1 秒間に 50~100 件のログエントリを生成できます。

  • このレートのしきい値は、ログに記録できるイベント数に影響します。一部のイベントが除外されている場合でも、それらのイベントは発生したことによって、記録できるログエントリ数にカウントされます。ログをエラーのみに制限する、またはネットワーク アドレス変換接続のみに制限することによって、表示されるログエントリの数が増加するとは限りません。たとえば、成功した接続のみをログに記録するように選択した場合、過剰な接続試行の失敗と NAT エラーが発生している期間については、接続ログエントリの成功数が制限されることに変わりありません。

  • Cloud NAT ロギングでは、すべてのパケットがログに記録されるわけではありません。VM のレートしきい値に達していなくても、一部の条件によってログからイベントが省略される場合があります。Cloud NAT ロギングでのエントリの有無に基づいて判断する必要がありますが、エントリが存在しないことは、イベントが発生しなかったことを意味するものではありません。

ロギングを構成する

Cloud NAT ロギングを構成する手順は次のとおりです。

ロギングを有効にする

ロギングが有効になっている場合、収集されたすべてのログはデフォルトで Cloud Logging に送信されます。特定のログのみが送信されるように、フィルタリングできます。

NAT ゲートウェイを作成または編集する際にもこれらの値を指定できます。以下の手順では、既存の NAT ゲートウェイのロギングを有効にする方法を示します。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [詳細構成] をクリックします。

  5. [ロギング] セクションで、次のいずれかを選択します。

    • ロギングなし: ロギングを無効にする。
    • 変換とエラー: すべてのログを Logging に送信する。
    • 変換のみ: 接続が作成された場合にのみログを送信する。破棄されたパケットはログに記録されません。
    • エラーのみ: 使用可能なポートが存在しないためパケットが破棄された場合にログを送信する。新しい接続はログに記録されません。
  6. [保存] をクリックします。

gcloud

gcloud compute routers nats update コマンドを使用します。

次のコマンドにより、既存の NAT ゲートウェイのロギングが有効にされます。

各コマンドで、次の対象を置き換えます。

  • NAT_GATEWAY: NAT ゲートウェイの名前
  • ROUTER_NAME: NAT ゲートウェイをホストする Cloud Router の名前
  • REGION: Cloud Router のリージョン

ネットワーク アドレス変換イベントとエラーをログに記録するには、次のようにします。

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging

ネットワーク アドレス変換イベントのみをログに記録するには、次のようにします。

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging \
    --log-filter=TRANSLATIONS_ONLY

エラーのみをログに記録するには、次のようにします。

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging \
    --log-filter=ERRORS_ONLY

ログフィルタをクリアする

フィルタが設定されている場合は、フィルタを解除できます。ログフィルタを解除すると、ロギングが有効になっていれば、ネットワーク アドレス変換イベントとエラーの両方がログに記録されます。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [詳細構成] をクリックします。

  5. [ロギング] セクションで、[変換とエラー] を選択します。

  6. [保存] をクリックします。

gcloud

gcloud compute routers nats update コマンドを使用します。次のコマンドの --log-filter=ALL フラグにより、すべてのログを受け入れるようにログフィルタが設定されます。

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --log-filter=ALL

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

  • NAT_GATEWAY: NAT ゲートウェイの名前
  • ROUTER_NAME: NAT ゲートウェイをホストする Cloud Router の名前
  • REGION: Cloud Router のリージョン

ロギングを無効にする

ロギングを無効にする方法は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [詳細構成] をクリックします。

  5. [ロギング] セクションで、[ロギングなし] を選択します。

  6. [保存] をクリックします。

gcloud

gcloud compute routers nats update コマンドを使用します。

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --no-enable-logging

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

  • NAT_GATEWAY: NAT ゲートウェイの名前
  • ROUTER_NAME: NAT ゲートウェイをホストする Cloud Router の名前
  • REGION: Cloud Router のリージョン

ロギングのステータスを確認する

ロギングのステータスを確認する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [詳細構成] をクリックします。

  5. [ロギング] セクションで選択内容を確認します。

gcloud

gcloud compute routers nats describe NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION

以下を置き換えます。

  • NAT_GATEWAY: NAT ゲートウェイの名前
  • ROUTER_NAME: NAT ゲートウェイをホストする Cloud Router の名前
  • REGION: Cloud Router のリージョン

ログを表示する

NAT ログを表示する方法は次のとおりです。

コンソール

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

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

    • すべての NAT ログを表示するには、[ログ名] メニューで [Cloud NAT ゲートウェイ] を選択します。
    • 1 つのリージョンのログのみを表示するには、[ログ名] メニューで [Cloud NAT ゲートウェイ] を選択し、カーソルを右にスライドしてリージョンを選択します。
    • 1 つのゲートウェイのログのみを表示するには、[ログ名] メニューで [Cloud NAT ゲートウェイ] を選択し、カーソルを右にスライドしてリージョンを選択します。再度カーソルを右にスライドして 1 つのゲートウェイを選択します。

または、クエリエディタに次の式を入力します。

resource.type="nat_gateway"
logName="projects/{#project_id}/logs/compute.googleapis.com%2Fnat_flows"

gcloud

gcloud logging read 'resource.type=nat_gateway' \
    --limit=10 \
    --format=json

ここで

  • resource.type=nat_gateway: NAT ゲートウェイへの出力を制限する。
  • --limit=10: 出力を 10 件のエントリに制限する。異なる値を入力して、エントリの数を増減する、または完全に省略して連続したログを表示することもできます。
  • --format=json: JSON 形式で出力を表示する。

その他のオプションについては、ログエントリの読み取りをご覧ください。

リソースログのログベースの指標のエクスポートを構成できます。

ログの内容

Cloud NAT ログエントリには、NAT トラフィックのモニタリングとデバッグに有用な情報が含まれています。ログエントリには次のタイプの情報が含まれています。

  • 重大度、プロジェクト ID、プロジェクト番号、タイムスタンプなど、ほとんどの Google Cloud ログに一般的に示される情報。
  • Cloud NAT に関する特定の情報。一部のログフィールドに含まれるエントリは、それら自体が複数のフィールドです。これらのエントリとフィールドの説明を次の表に示します。

ログのフィールド

フィールド 意味
connection オブジェクト(NatIpConnection 送信元 VM の IP アドレスとポート、NAT の送信元 IP アドレスとポート、宛先 IP アドレスとポート、この接続の IP アドレス プロトコルを記述する 7 タプル。
allocation_status enum この接続が正常に割り当てられたか破棄されたかを示します。OK または DROPPED のいずれかです。
gateway_identifiers オブジェクト(NatGateway