【PCNE】WEB問題集:管理と監視編

WEB問題集

PCNE#376(manage-monitor)
VPC Flow Logs を有効化する際に、長時間継続する大量のフロー(elephant flow)を観測しつつログ量を抑制したいと考えています。サブネット単位で設定すべきパラメーターはどれですか。
ディスカッション 0

正解:B

正解の根拠

VPC Flow Logs はサブネット単位で 4 つの主要パラメーター(Aggregation interval、Sample rate、Metadata、Filter)を制御できます。Aggregation interval を長く取りつつ Sample rate を下げる組合せは、ログ量を確実に削減しながら長尺フローの観測には十分な解像度を維持できるため、運用コストとトラブルシュート性のバランスがとれます。

パラメーター比較

パラメーター取り得る値効果
Aggregation interval5s/30s/1m/5m/10m長いほどログ件数減
Sample rate0<rate≤1.0低いほど件数比例で減
MetadataInclude all / Exclude all / Custom付帯情報の粒度
FilterCEL 式収集対象を絞込

サンプル設定

gcloud compute networks subnets update SUBNET 
  --region=us-central1 
  --enable-flow-logs 
  --logging-aggregation-interval=interval-10-min 
  --logging-flow-sampling=0.5 
  --logging-metadata=include-all

不正解の理由

  • A: 最短 interval と 100% サンプリングではログ量が爆発するため、コスト最適化の意図に反します。
  • C: Filter は CEL 式で記述する機能であり、all=true という構文は VPC Flow Logs には存在しません。
  • D: Sample rate を 0 にするとログが一切収集されず、長尺フローの観測ができなくなります。

参考:VPC Flow Logs overview

PCNE#377(manage-monitor)
Firewall Rules Logging を有効にした際に Cloud Logging へ書き込まれる情報として正しいものはどれですか。
ディスカッション 0

正解:C

正解の根拠

Firewall Rules Logging を有効にしたルールは、当該ルールが連携した接続単位で 5-tuple、ルール優先度、許可/拒否(disposition)、接続元/接続先、リファレンス(self-link)などを含むレコードを Cloud Logging に書き込みます。これにより、特定の通信がどのルールにマッチしたかを追跡できます。

記録項目の主な内容

フィールド内容
jsonPayload.rule_detailsルール ID、priority、direction、disposition
jsonPayload.connectionsrc_ip/dest_ip/src_port/dest_port/protocol
jsonPayload.instance該当 VM 情報
jsonPayload.remote_location地理情報(外部 IP の場合)

Logs Explorer サンプルクエリ

resource.type="gce_subnetwork"
log_id("compute.googleapis.com/firewall")
jsonPayload.rule_details.action="DENY"

不正解の理由

  • A: Allow / Deny の双方を、有効化したルール単位で記録します。
  • B: ディスク I/O などホスト内メトリクスは Firewall Logging の対象外です。
  • D: ルール ID とタイムスタンプだけではなく、接続フローと付帯情報を含む詳細レコードを書き込みます。

参考:Firewall Rules Logging

PCNE#378(manage-monitor)
Cloud NAT のログを Cloud Logging で確認したい場合、エラーの調査と通常トラフィック監査の両方を効率的に行う設定として最適なものはどれですか。
ディスカッション 0

正解:C

正解の根拠

Cloud NAT の Logging には ERRORS_ONLY と TRANSLATION_AND_ERRORS の 2 種類があります。TRANSLATION_AND_ERRORS を有効にすると変換成功も含めて記録できる一方、ログ量とコストが増加するため Cloud Logging 側の sink/exclusion で必要なものだけを保持するのが運用上のベストプラクティスです。

ログモード比較

モード記録内容用途
ERRORS_ONLY変換失敗のみ障害検知特化
TRANSLATION_AND_ERRORS変換成功+失敗監査・調査
NONEログなし非推奨

有効化コマンド

gcloud compute routers nats update NAT_NAME 
  --router=ROUTER --region=us-central1 
  --enable-logging 
  --log-filter=ALL

不正解の理由

  • A: NAT 動作の可視化ができなくなり、エラー発生時の原因特定が極めて困難になります。
  • B: 本番でも監査のために TRANSLATION_AND_ERRORS が必要な要件があり、一律禁止は過剰です。
  • D: Cloud NAT ログは Cloud Logging 上で取り込み量に応じて課金されるため、無制限保持はコスト最適とは言えません。

参考:Cloud NAT logging

PCNE#379(manage-monitor)
Logs Explorer で特定 VPC の VPC Flow Logs から、内部 IP 10.20.0.0/16 宛ての DENY されたフローのみを抽出したい場合、最も適切なクエリ式はどれですか。
ディスカッション 0

正解:C

正解の根拠

Logs Explorer のクエリ言語では log_id() 関数でログ種別を、ip_in_net() で CIDR 判定を行います。VPC Flow Logs と Firewall Logging のフィールドを組み合わせることで、宛先 CIDR と DENY 判定の AND 条件を表現できます。

Logs Explorer の主要演算子

関数/演算子用途
log_id("...")logName の短縮指定
ip_in_net(field, cidr)IP の CIDR メンバ判定
=~正規表現マッチ
:部分一致

クエリ例

log_id("compute.googleapis.com/vpc_flows")
ip_in_net(jsonPayload.connection.dest_ip, "10.20.0.0/16")
jsonPayload.rule_details.action="DENY"

不正解の理由

  • A: dest_ip=ip("...") という構文は無効で、CIDR 判定には ip_in_net() を使う必要があります。
  • B: resource.type やフィールド名が正しい命名規則になっておらず、クエリは構文的に成立しません。
  • D: severity は INFO/WARNING/ERROR 等の標準レベルであり、DENY は severity 値ではありません。

参考:Logging query language

PCNE#380(manage-monitor)
Cloud Logging から特定の VPC Flow Logs を長期保管したいです。BigQuery でクエリ可能な形で 5 年間保持するためには、何を構成すべきですか。
ディスカッション 0

正解:D

正解の根拠

Cloud Logging の Logs Router を使えば、特定の logName/フィルターに合致するログを BigQuery、Cloud Storage、Pub/Sub、別の Logging バケットへルーティングできます。BigQuery sink を選び、データセットのパーティション期限を 5 年に設定すれば、クエリ可能な状態で 5 年間保持できます。

主要 sink 先と用途

Sink 先クエリ性適する用途
BigQuerySQL で即時分析・監査
Cloud Storage低(外部テーブル要)コールド保管
Pub/Subリアルタイム転送後段システム連携
Logging バケットLogs Explorer分析の継続

作成コマンド

gcloud logging sinks create flow-bq 
  bigquery.googleapis.com/projects/PROJECT/datasets/flow_logs 
  --log-filter='log_id("compute.googleapis.com/vpc_flows")'

不正解の理由

  • A: デフォルトバケットを延長しても Logs Explorer の検索範囲が広がるだけで、BigQuery でのクエリ可能性は得られません。
  • B: Logs Router は BigQuery を直接 sink 先に指定できるため、Pub/Sub 経由は必須ではありません。
  • C: Audit Logs を有効化しても、BigQuery への転送は別途 sink 設定が必要です。

参考:Logs Router and sinks