使用記錄與監控功能
本頁面說明 Cloud DNS 的記錄和監控指標,包括 私人區域 和轉送區域 。
使用 Cloud DNS 記錄
Cloud DNS 記錄會追蹤名稱伺服器為虛擬私有雲 (VPC) 網路發出的查詢。
記錄的查詢可能來自 Compute Engine 虛擬機器 (VM) 執行個體、相同虛擬私有雲網路內的 Google Kubernetes Engine 容器、對接區域 ,或使用傳入 DNS 轉送 功能的地端部署用戶端。這些查詢最後可能會由以下項目解析:私人 DNS 區域、轉送 DNS 區域、替代名稱伺服器、內部Cloud de Confiance DNS 區域或外部 DNS 區域。
記錄檔記錄隸屬於執行查詢的網路 所屬的專案。在 Shared VPC 架構中,擁有網路的是主專案,因此記錄檔記錄就隸屬於主專案。
注意: Cloud DNS 可能會使用快取回應來回應查詢。根據預設,系統不會記錄快取回應。不過,如果啟用記錄功能,系統會先記錄至少一個先前的回應,再提供後續的快取回應,但不會記錄這些回應。 啟用及停用私人代管區域的記錄功能
您可使用 DNS 政策啟用或停用網路的記錄功能。啟用查詢記錄功能後,系統會記錄對 Cloud DNS 私人代管區域發出的所有 DNS 查詢。
如要為沒有 DNS 政策的網路啟用記錄功能,請執行 dns policies create 指令。
gcloud
gcloud dns policies create POLICY_NAME \
--networks=NETWORK \
--enable-logging \
--description=DESCRIPTION
更改下列內容:
POLICY_NAME :DNS 政策的名稱
NETWORK :以半形逗號分隔的清單,列出一或多個網路
DESCRIPTION :政策的說明
如要為具有 DNS 政策的網路啟用記錄功能,請執行 dns policies update 指令。
gcloud
gcloud dns policies update POLICY_NAME \
--networks=NETWORK \
--enable-logging
更改下列內容:
POLICY_NAME :DNS 政策的名稱
NETWORK :以半形逗號分隔的清單,列出一或多個網路
如要保留政策並停用記錄功能,請執行 dns policies update 指令。
gcloud
gcloud dns policies update POLICY_NAME \
--networks=NETWORK \
--no-enable-logging
更改下列內容:
POLICY_NAME :DNS 政策的名稱
NETWORK :以半形逗號分隔的清單,列出一或多個網路
如要徹底刪除政策,請執行 dns policies delete 指令。
gcloud
gcloud dns policies delete POLICY_NAME \
將 POLICY_NAME 替換成要刪除的 DNS 政策名稱。
查看記錄檔
您可以在 Cloud de Confiance 控制台查看記錄檔。
適用情況下,每個記錄項目都具有下列欄位。監控指標也會使用其中部分的欄位資訊。
欄位
欄位類型
說明
用於指標
alias_query_response_code
字串
查詢傳回的回應代碼,用於解析 ALIAS 記錄的正規名稱
是
authAnswer
布林值/DNS
權威回應,RFC 1035
否
destinationIP
字串/目標
目標 IP 位址,僅適用於使用轉送功能時
否
egressError
字串
輸出 Proxy 錯誤,這是收到來自地端部署 DNS 伺服器的錯誤時,輸出 Proxy 實際回報的錯誤
這個欄位可用於區分地端部署 DNS 傳回的實際 SERVFAIL,以及輸出 Proxy 遇到的網路錯誤
否
healthyIps
字串
ResourceRecordSet 中的 IP 位址集,在查詢時 Cloud DNS 已知為 HEALTHY
否
location
字串
提供回應的Cloud de Confiance 區域,例如 us-east1
是
project_id
字串
接收查詢的網路所屬Cloud de Confiance 專案 ID
是
protocol
字串/DNS
TCP | UDP
否
queryName
字串/DNS
DNS 查詢名稱,RFC 1035 4.1.2
否
queryType
字串/DNS
DNS 查詢類型,RFC 1035 4.1.2
否
responseCode
數字/DNS
回應代碼,RFC 1035 4.1.1
否
rdata
字串/DNS
以簡報格式呈現的 DNS 回應,RFC 1035 5.1 ,260 位元組以後的內容會遭截斷
否
sourceIP
字串/來源
查詢的 IP 來源
否
sourceNetwork
字串/來源
將查詢傳送到系統的網路
否
source_type
字串
查詢來源:inbound-forwarding、gce-vm、internet、peering-zone、fqdn-forwarding-target
否
target_name
字串
目標名稱,例如區域名稱、政策名稱、內部區域名稱、外部網域名稱
是
target_type
字串
解析 DNS 查詢的目標類型:private-zone、forwarding-zone、forwarding-policy、peering-zone、internal、external
是
unHealthyIps
字串
ResourceRecordSet 中的 IP 位址集,在查詢時 Cloud DNS 已知為 UNHEALTHY
否
vmInstanceId
編號/來源
Compute Engine VM 執行個體 ID,僅適用於 Compute Engine VM 發出的查詢
否
vmInstanceName
字串/來源
Compute Engine VM 執行個體名稱,僅適用於 Compute Engine VM 發出的查詢
否
vmProjectId
字串/來源
傳送查詢的網路所屬Cloud de Confiance 專案 ID,僅適用於 Compute Engine VM 發出的查詢
否
vmZoneName
字串/來源
傳送查詢的 VM 區域名稱,僅適用於 Compute Engine VM 發出的查詢
否
定價
所有 Cloud DNS 記錄檔都會寫入 Cloud Logging。這項服務不會另外收取 Cloud DNS 費用,不過視記錄檔的大小而定,寫入及儲存記錄檔可能會產生額外的儲存費用。
為便於計算,Cloud DNS 每處理 10,000 筆 DNS 查詢,約會寫入 5 MB 的記錄檔資料。
如要瞭解 Cloud Logging 定價,請參閱「Google Cloud Observability 定價:Cloud Logging 」。
排解傳出轉送問題
如果收到的記錄檔含有 SERVFAIL,但缺少 destinationIP、egressIP 和 egressError 等特定欄位,請參閱疑難排解說明文件中的相關章節 。
監控指標
Cloud DNS 會將監控指標匯出至 Cloud Monitoring 。
您可以監控 DNS 查詢和回應的頻率,回應的目標包括私人區域、轉送區域、政策轉送、內部 Cloud de Confiance 區域和網際網路。您可以在 Cloud de Confiance 控制台的「Monitoring」頁面 和 Cloud Monitoring API 中使用 Monitoring。
私人 DNS 會匯出包含 response_code 標籤的 dns.googleapis.com/query/response_count 差異指標,以便計算每個回應代碼的查詢數量。
response_code 標籤的類型為 string,可能的值包括 NOERROR、FORMERR、SERVFAIL、NXDOMAIN、NOTIMP 和 UNKNOWN。如要瞭解這些代碼的定義,請參閱 IANA DNS RCODE 。
這個指標使用記錄檔記錄格式 的適用欄位,並以 dns_query 資源類型匯出。
監控 DNS 傳播
使用 Google Cloud CLI 或 REST API 進行變更時,一開始會將變更標示為待處理,直到作業完成為止。您可以使用 gcloud CLI 或 REST API 檢查變更的狀態,或取得變更記錄。
Cloud DNS 成功更新控制伺服器的系統時,代表作業完成 (狀態:done)。所有名稱伺服器更新完畢之前,可能仍會發生延遲。
列出代管區域的變更
如要列出代管區域的變更,請執行 dns record-sets changes list 指令。
gcloud
gcloud dns record-sets changes list --zone=ZONE
將 ZONE 替換成要管理記錄集的代管區域名稱。
驗證 DNS 傳播
如要監控及驗證 DNS 名稱伺服器是否已納入變更,可使用 watch 和 dig 指令。下列範例示範如何查詢名稱伺服器,以及檢查其中一個代管區域名稱伺服器何時納入 MX 記錄的變更。
注意: watch 和 dig 是 Linux 作業系統提供的指令,並非 gcloud 指令,因此不需要 gcloud 前置碼即可執行。若您使用其他作業系統,可能須安裝指令。如要查詢區域的名稱伺服器,請執行 dns managed-zones describe 指令:
gcloud
gcloud dns managed-zones describe ZONE_NAME
將 ZONE_NAME 替換為 Cloud DNS 區域名稱。
如要檢查權威名稱伺服器上是否有可用的記錄,請執行下列 dig 指令:
gcloud
watch dig example.com in MX @ZONE_NAME_SERVER
將 ZONE_NAME_SERVER 替換為代管區域的其中一個名稱伺服器。
根據預設,watch 指令每隔 2 秒會執行一次 dig 指令。您可以使用這個指令來判斷權威名稱伺服器何時納入變更;變更應會在 120 秒內完成。權威名稱伺服器取得變更後,DNS 解析器就會開始納入新記錄。如果解析器已快取先前的記錄,則會等待記錄先前的存留時間值到期。
如要對系統的名稱伺服器執行 dig,可以從 dig 指令中移除 @<address>。如要監控傳播至其他名稱伺服器的情形,可以變更 address,改為指向其他名稱伺服器。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-12-22 (世界標準時間)。