使用記錄與監控功能
本頁面針對 Cloud DNS 的記錄和監控指標提供相關說明,包括
私人區域 和轉送區域 。
使用 Cloud DNS 記錄
Cloud DNS 記錄會追蹤名稱伺服器為虛擬私有雲 (VPC) 網路。
記錄下來的查詢可能來自 Compute Engine 虛擬機器 (VM) 執行個體、相同虛擬私有雲網路內的 Google Kubernetes Engine 容器、對等互連區域 ,或使用傳入 DNS 轉送 的內部部署用戶端。這些查詢最後可能會由私人 DNS 區域解析,並轉送到 DNS 區域、備用名稱伺服器、內部Trusted Cloud DNS 區域或外部 DNS 區域。
記錄檔屬於執行查詢的網路 所屬的專案。在共用虛擬私有雲 的情況下,由於擁有網路的是主專案,因此記錄檔就屬於主專案所有。
注意: 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 政策名稱。
查看記錄
您可以在 Trusted Cloud 控制台中查看記錄。
主控台 前往 Trusted Cloud 控制台的「Logs Explorer」 頁面。
前往記錄檔探索工具
在適用的情況下,每個記錄項目會具有下列欄位。監控指標也會使用其中部分的欄位資訊。
欄位
欄位類型
說明
用於指標
alias_query_response_code
(預覽 )
字串
查詢傳回的回應代碼,用於解析 ALIAS 記錄的正式名稱
是
authAnswer
布林值/DNS
權威回答,RFC 1035
否
destinationIP
字串/目標
目標 IP 位址,僅適用於轉送案例
否
egressError
字串
輸出 Proxy 錯誤,輸出 Proxy 實際回報的錯誤,如從地端 DNS 伺服器收到的錯誤
這個欄位可用於區分內部部署 DNS 傳回的實際 SERVFAIL,以及輸出 Proxy 遇到的網路錯誤
否
healthyIps
字串
ResourceRecordSet 中的一組 IP 位址,在查詢時已知為 Cloud DNS HEALTHY
否
location
字串
Trusted Cloud 地區,例如提供回應的地區中的「us-east1
」
是
project_id
字串
Trusted Cloud 接收查詢的網路所有的專案 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
字串/來源
Trusted Cloud 傳送查詢的網路專案 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 查詢和回應的頻率,回應的目標包括不公開區域、轉送區域、政策轉送、內部 Trusted Cloud 區域和網際網路。您可以在 Trusted Cloud 控制台的 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
指令並非 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 解析器就會開始擷取新記錄。如果解析器已快取先前的記錄,則會等待記錄的先前 TTL 值到期。
如要對系統的名稱伺服器執行 dig
,可以從 dig
指令中移除 @<address>
。如要監控傳播至其他名稱伺服器的情形,可以變更 address
,指向其他名稱伺服器。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-15 (世界標準時間)。