5月29日 22:48
如何监控 DNS 服务的性能和可用性?
三层监控:可用性(能否解析)用 dig/nslookup 定时探测;性能(解析耗时)用 dig +stats 看 Query time,P99 超阈值告警;正确性(解析结果是否正确)对比实际 IP 和预期 IP。工具:Prometheus + Blackbox Exporter 做探测采集,Grafana 展示,Alertmanager 告警。关键指标:解析成功率、平均/P99 延迟、NXDOMAIN 比例(异常高可能是 DNS 劫持)、缓存命中率。
追问
Blackbox Exporter 怎么配 DNS 探测?
prometheus.yml 中配 job:modules: [dns_tcp],targets: [8.8.8.8]。用 dns_probe_duration_seconds 画延迟图,probe_success 画可用性。
如何区分 DNS 服务故障和网络故障?
同时监控 ICMP ping 延迟和 DNS 解析延迟。ping 正常但 DNS 超时=DNS 服务问题。ping 也超时=网络问题。多节点探测可定位故障范围。
缓存命中率怎么监控?
CoreDNS 暴露 coredns_cache_hits_total 和 coredns_cache_misses_total,命中率 = hits/(hits+misses)。命中率低说明穿透到上游太多,考虑增大缓存或调 TTL。
DNS 监控的告警阈值怎么设?
可用性 < 99.9% 告警。延迟 P99 > 100ms 告警(正常内网 < 10ms,公网 < 50ms)。NXDOMAIN 比例突增告警。按实际基线调整。
如何监控 DNS 劫持?
对比多个 DNS 服务器对同一域名的解析结果,不一致则可能被劫持。用 DNSSEC 验证签名。监控 NXDOMAIN 比例突增。