ロギングとモニタリング

このページでは、限定公開ゾーン転送ゾーンを含む Cloud DNS のロギングとモニタリング指標について説明します。また、パブリック DNS の変更の伝播をモニタリングする方法についても説明します。

限定公開 DNS のロギング

限定公開 DNS のロギングは、Virtual Private Cloud ネットワークのネームサーバーによって解決されるクエリを追跡します。外部エンティティから一般公開ゾーンに直接送られるクエリは、パブリック ネームサーバーによって処理されるため、ログに記録されません。

ログに記録されるのは、Compute Engine 仮想マシン、同じ VPC ネットワーク内の Google Kubernetes Engine コンテナ、ピアリング ゾーン(/dns/docs/overview#dns-peering)のいずれかから送られたクエリか、DNS 転送を通じて到着したオンプレミス クライアントからのクエリです。クエリは、最終的に限定公開 DNS ゾーン、転送 DNS ゾーン、代替ネームサーバー、内部 GCP DNS ゾーン、外部 DNS ゾーンのいずれかによって解決される可能性があります。

ログレコードは、リクエストを伝送したネットワークを所有するプロジェクトに属します。共有 VPC の場合はホスト プロジェクトがネットワークを所有しているため、ログレコードはホスト プロジェクトに属します。

ロギングの有効化と無効化

DNS ポリシーを使用してネットワークのロギングを有効にします。

DNS ポリシーを持たないネットワークのロギングを有効にする

gcloud beta dns policies create [POLICY] \
    --networks=[NETWORK] \
    --enable-logging
    --description flag

各部分の説明

  • --networks には、1 つまたは複数のネットワークをカンマ区切りリストで指定します。

既存の DNS ポリシーを持つネットワークのロギングを有効にする

gcloud beta dns policies update [POLICY] \
    --networks=[NETWORK] \
    --enable-logging

各部分の説明

  • --networks には、1 つまたは複数のネットワークをカンマ区切りリストで指定します。

ロギングを無効にする

この操作では、ポリシーを維持しながらロギングをオフにします。ポリシーを完全に削除することもできます。

gcloud beta dns policies update mypolicy \
    --networks=[NETWORK] \
    --no-enable-logging

各部分の説明

  • --networks には、1 つまたは複数のネットワークをカンマ区切りリストで指定します。

ログを表示する

  1. Google Cloud Platform Console の [ログ] ページに移動します。
    [ログ] ページに移動
  2. 最初のプルダウン メニューで [Cloud DNS クエリ] を選択します。

レコードの形式

すべてのログエントリに次のフィールドがあります(ログエントリによっては該当しないものもあります)。一部のフィールドはモニタリング指標と共有されています。

フィールド フィールド タイプ 説明 指標で使用
source_type 文字列 クエリの送信元: 'inbound-forwarding'、'gce-vm'
location 文字列 レスポンスを返した GCP のリージョン('us-east1' など)。
project_id 文字列 受信したクエリの発信元ネットワークの GCP プロジェクト ID
target_type 文字列 DNS クエリを解決するターゲットの種類: 'private-zone'、'zone-forwarding'、'policy-forwarding'、'internal-zone'、'external'
target_name 文字列 ターゲット名。たとえば、ゾーン名、ポリシー名、内部ゾーン名、外部ドメイン名などです。
qname 文字列 / DNS DNS クエリの名前、RFC 1035 4.1.2。 ×
qtype 文字列 / DNS DNS クエリの種類、RFC 1035 4.1.2。 ×
rcode 数値 / DNS レスポンス コード、RFC 1035 4.1.1。 ×
rdata 文字列 / DNS プレゼンテーション形式の DNS 回答、RFC 1035 5.1、260 バイトで切り捨て ×
auth_answer ブール値 / DNS 権威ある回答、RFC 1035 ×
source_network 文字列 / ソース システムに到達したクエリの発信元ネットワーク。 ×
vm_instance_name 文字列 / ソース Compute Engine VM インスタンス名。Compute Engine VM によって開始されたクエリにのみ該当します。 ×
source_ip 文字列 / ソース クエリの発信元の IP ×
target_ip 文字列 / ターゲット ターゲットの IP。転送の場合にのみ該当。 ×
protocol 文字列 / DNS 'TCP' | 'UDP' ×

モニタリング指標

Cloud DNS はモニタリング指標を Stackdriver にエクスポートします。

限定公開ゾーン、転送ゾーン、ポリシー転送、内部 GCP ゾーン、インターネットをターゲットにした DNS クエリとレスポンスのレートをモニタリングできます。モニタリングは Stackdriver MonitoringMonitoring API で利用できます。

指標とリソースタイプ

限定公開 DNS は、レスポンス コードあたりのクエリ数をカウントするために、response_code ラベルを含む dns.googleapis.com/query/response_count デルタ指標をエクスポートします。

response_code ラベルは string 型で、可能な値は NOERRORFORMERRSERVFAILNXDOMAINNOTIMPUNKNOWN です。これらのコードの定義については、IANA DNS RCODEs をご覧ください。

この指標は、ログのレコード形式の該当するフィールドを使用して、dns_query リソースタイプの下にエクスポートされます。

DNS 伝播をモニタリングする

コマンドライン ツールまたは REST API を使用して変更を行うと、その変更内容は、オペレーションが完了するまで「保留」としてマーク付けされます。gcloud コマンドライン ツールまたは REST API を使用して、変更のステータスを確認したり、変更履歴を取得したりできます。

Cloud DNS が、サーバーを制御するシステムを正常に更新すると、オペレーションが完了します(ステータス: done)。すべてのネームサーバーが更新されるまでに時間がかかる場合があります。

マネージド ゾーンの変更のリスト表示

コマンドライン

gcloud dns record-sets changes list --zone="myzonename"

Python

def list_changes(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    changes = zone.list_changes()

    return [(change.started, change.status) for change in changes]

DNS 伝播の確認

watchdig コマンドを使用して、変更が DNS ネームサーバーによってピックアップされていることをモニタリングおよび確認できます。次の例では、ネームサーバーを検索し、MX レコードへの変更がいずれかのマネージド ゾーンのネームサーバーによってピックアップされているタイミングを確認する方法を示しています。

ゾーンのネームサーバーを次のように検索します。

gcloud dns managed-zones describe [ZONE_NAME]

レコードが権威ネームサーバー上でまだ利用可能かどうかを確認します。[YOUR_ZONE_NAMESERVER] は、マネージド ゾーンのいずれかのネームサーバーに置き換えます。

watch dig example.com in MX @[YOUR_ZONE_NAMESERVER]

watch コマンドは、デフォルトでは 2 秒ごとに dig コマンドを実行します。変更は 120 秒以内に発生するはずですが、このコマンドで、権威ネームサーバーが変更内容をピックアップするタイミングを指定できます。権威ネームサーバーが変更をピックアップすると、DNS リゾルバが新しいレコードのピックアップを開始できるようになります。前のレコードをすでにキャッシュに保存しているリゾルバは、レコードの前の TTL 値の期限が切れるまで待機します。

dig コマンドから @<address> を削除すると、システムのネームサーバーに対して dig コマンドを実行できます。または、他のネームサーバーへの伝播をモニタリングする場合は、アドレスを他のネームサーバーに変更できます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud DNS のドキュメント