BIND(Berkeley Internet Name Domain)是全球最廣泛部署的 DNS 伺服器軟體。其運行期間每小時會產生一組 LOG_INFO 等級的統計日誌,記錄著伺服器的 CPU 佔用、查詢類型分佈、錯誤計數、快取狀態等關鍵指標。熟練解讀這些日誌,能幫助管理員快速判斷服務健康度、發現異常流量、規劃容量擴展。
本文將以實際日誌範例為基礎,逐行拆解各欄位含義,並示範如何計算查詢負載(QPS)。
Dec 26 10:23:52 www named[1033]: Cleaned cache of 26 RRset
Dec 26 10:23:52 www named[1033]: USAGE 977797432 976760631 CPU=6.55u/6.24s CHILD CPU=0u/0s
Dec 26 10:23:52 www named[1033]: NSTATS 977797432 976760631 0=2 A=13192 CNAME=321 PTR=11204 MX=1173 TXT=4 AAAA=32 ANY=4956
Dec 26 10:23:52 www named[1033]: XSTATS 977797432 976760631 RR=7629 RNXD=1368 RFwdR=4836 RDupR=51 RFail=159 RFErr=0 RErr=12 RAXFR=0 RLame=175 ROpts=0 SSysQ=2082 SAns=26234 SFwdQ=4520 SDupQ=1263 SErr=0 RQ=30889 RIQ=4 RFwdQ=0 RDupQ=259 RTCP=2 SFwdR=4836 SFail=6 SFErr=0 SNaAns=21753 SNXD=10276
Cleaned cache of 26 RRset
USAGE 977797432 976760631 CPU=6.55u/6.24s CHILD CPU=0u/0s
| 欄位 | 說明 |
|---|---|
| 977797432 / 976760631 | UNIX 時間戳(秒),相減得 伺服器已運行總秒數:977797432 - 976760631 = 1,036,801 秒 ≈ 288 小時(12 天) |
| CPU=6.55u/6.24s | 用戶態佔用 6.55 秒,核心態佔用 6.24 秒(累計值)。 |
| CHILD CPU | 子進程 CPU 佔用(通常為 0,因 BIND 主進程處理查詢)。 |
NSTATS ... 0=2 A=13192 CNAME=321 PTR=11204 MX=1173 TXT=4 AAAA=32 ANY=4956
dig/nslookup 操作)。補充: 日誌中未出現的類型還包括 NS(授權名稱伺服器)、SOA(區域授權)、HINFO(主機資訊)、AXFR(區域傳送)等。
此行包含數十個計數器,以下擷取關鍵指標分類說明:
| 類別 | 代碼 | 含義 | 範例值 |
|---|---|---|---|
| 接收響應 | RR | 收到其他主機的響應總數 | 7,629 |
| RNXD | 收到「域不存在」(NXDOMAIN)響應 | 1,368 | |
| RFwdR | 收到轉發查詢的響應 | 4,836 | |
| RDupR | 重複響應(找不到原始查詢) | 51 | |
| RFail | 收到 SERVFAIL(遠端伺服器錯誤) | 159 | |
| RErr | 其他錯誤響應(除 SERVFAIL/FORMERR) | 12 | |
| 發送查詢/響應 | SSysQ | 系統發起的查詢(多為根域查詢) | 2,082 |
| SAns | 權威/非權威回答總數 | 26,234 | |
| SFwdQ | 轉發給其他伺服器的查詢 | 4,520 | |
| SDupQ | 重複查詢 | 1,263 | |
| RQ | 接收到的客戶端查詢總數 | 30,889 | |
| RIQ | 反向查詢(舊式,現多用 PTR) | 4 | |
| 錯誤與異常 | RLame | 收到 Lame delegation(授權錯誤) | 175 |
| SFail | 發出 SERVFAIL 響應 | 6 | |
| SNaAns | 非權威回答 | 21,753 | |
| SNXD | 發出 NXDOMAIN 響應 | 10,276 |
所有統計均為 啟動至今的累計值,非當小時增量。計算平均每秒查詢數(QPS):
1,036,801 秒2 + 13192 + 321 + 11204 + 1173 + 4 + 32 + 4956 = 20,88420,884 ÷ 1,036,801 ≈ 0.02 查詢/秒20,884 ÷ 288 ≈ 72.5 次/小時結論: 本範例伺服器負載極低(< 1 QPS),硬體資源富餘。若 QPS 持續超過 1,000,建議啟用 DNS 快取、部署從屬伺服器或升級硬體。
RFail(SERVFAIL)、RLame(授權錯誤)、RTCP(TCP 查詢激增)等異常指標。logrotate 避免日誌佔滿磁碟;生產環境建議將統計日誌導向專用檔案(statistics-file 選項)。ARM 文件。掌握 BIND 統計日誌的解讀技巧,是 DNS 運維從「被動救火」轉向「主動優化」的關鍵一步。