CoreDNS是ACK集群中默认采用的DNS服务发现插件。本文介绍如何查看CoreDNS组件监控大盘、常见指标异常的问题解析,以及CoreDNS组件的指标清单。

前提条件

  • 已开通ARMS。具体操作,请参见开通ARMS
  • 已安装ack-arms-prometheus组件。具体操作,请参见管理组件

查看CoreDNS组件监控大盘

  1. 登录容器服务管理控制台,在左侧导航栏中选择集群
  2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择运维管理 > Prometheus监控
  3. Prometheus监控页面,单击网络监控页签。
    CoreDNS组件监控页签查看监控大盘。组件监控

监控大盘说明

基于组件指标和相关PromQL绘制大盘,包括请求、响应、缓存等内容。图表说明如下。

大盘指标 单位 描述
Requests (total) 请求/秒 CoreDNS接收到的请求数。
Requests (success rate) 百分比 CoreDNS接受到的请求数响应成功率。
说明 NXDOMAIN和NOERROR的结果在此处被认为请求响应成功。
Requests (by zone) 请求/秒 CoreDNS接收到的请求数(按Zone)。
Requests (by qtype) 请求/秒 CoreDNS接收到的请求数(按解析类型)。
Requests (DO bit) 请求/秒 CoreDNS接收到的带有DO标记的请求数。
Requests (size, udp) 字节 CoreDNS接收到的UDP类型请求的报文大小。
Requests (size,tcp) 字节 CoreDNS接收到的TCP类型请求的报文大小。
Responses (by rcode) 请求/秒 响应数(按状态码RCODE)。
Responses (duration) 响应时长(按99、90、50百分位)。
Responses (size, udp) 字节 UDP型请求的响应时长(按99、50百分位)。
Responses (size, tcp) 字节 TCP类型请求的响应时长(按99、50百分位)。
Cache (size) 当前缓存结果数。
Cache (hitrate) 百分比 缓存命中率。

监控大盘常见异常说明

异常 描述

CoreDNS接收到的请求数过高。

在监控大盘的Requests (total)可以看到当前CoreDNS整体接收到的请求数。

如果请求数突然增高,可以结合CoreDNS日志查询当前查询量较高的域名,结合业务判断是否合理。关于如何分析和监控CoreDNS日志,请参见分析和监控CoreDNS日志。如果域名请求数量增高是合理现象,建议合理调整CoreDNS副本数以及使用NodeLocal DNSCache提高集群DNS性能。具体操作,请参见合理调整集群CoreDNS部署状态使用NodeLocal DNSCache

服务端异常,ServFail状态码响应的数量过高。

在监控大盘的Responses (by rcode)可以看到ServFail状态码的响应数目。

如果服务端出现大量ServFail异常,建议结合CoreDNS日志中ServFail的具体域名进行排查。关于如何分析和监控CoreDNS日志,请参见分析和监控CoreDNS日志

CoreDNS域名解析响应慢。

在监控大盘的Responses (duration)可以看到域名的响应时长。

如果应用大量使用集群外部域名,可能会出现域名解析响应慢的情况。

指标清单

如果您未启用ARMS提供的CoreDNS组件监控大盘,您也可以在自建Prometheus中监控CoreDNS。CoreDNS暴露的指标如下。
说明 本指标清单以CoreDNS 1.9.3版本为例,详细信息,请参见CoreDNS官方文档
指标 类型 描述
requests_total Counter 统计不同维度下DNS解析请求的计数。统计维度包括server、zone、proto、family、type。
request_duration_seconds Histogram 统计不同维度下DNS解析请求的处理时长分布。统计维度包括server和zone。
request_size_bytes Histogram 统计不同维度下DNS解析请求的报文大小分布。统计维度包括server、zone、proto。Histogram Bucket的阈值为0、100、200、300、400、511、1023、2047、4095、8291、16e3、32e3、48e3、64e3。单位:秒。
do_requests_total Counter 统计不同维度下带有DO标记的DNS解析请求的计数。统计维度包括server、zone。
response_size_bytes Histogram 统计不同维度下DNS解析响应的报文大小分布。统计维度包括server、zone、proto。Histogram Bucket的阈值为0、100、200、300、400、511、1023、2047、4095、8291、16e3、32e3、48e3、64e3。单位:秒。
responses_total Counter 统计不同维度下DNS解析响应的计数。统计维度包括server、zone、rcode、plugin。
panics_total Counter 统计CoreDNS发生异常(Panic)的计数。
plugin_enabled Gauge 统计各插件的启用状态。统计维度包括server、zone、name。
https_responses_total Counter 统计不同维度下DoH类型的DNS解析响应的计数。统计维度包括server、status。