Prometheus DNS服务自动发现监控
PrometheusDNS服务发现允许指定DNS条目列表,然后查询这些条目中的记录以发现目标列表。
Prometheus DNS服务发现依赖于A、AAAA或SRV DNS记录查询。
提示 DNS记录将由Prometheus服务器上本地定义的DNS服务器解析。
- job_name:app
dns_sd_config:
- names: ['_prometheus.tcp.linux78.com']
指定names参数,其中包含要查询的DNS条目列表。默认情况下,Prometheus的DNS服务发现会查询SRV或服务记录。服务记录是一种在DNS配置中定义服务的方法,服务通常由运行服务的一个或多个目标主机和端口组合组成。
DNS SRV条目的格式如下所示:
_ser.proto.name TTL IN SRV priority weight prot target.
其中_service是要查询的服务的名称,_proto是服务的协议,通常是TCP或UDP。指定条目的名称,后面以“.”结尾,然后是记录的TTL(Time To Live)时间。IN是标准的DNS类(通常都会用IN)。指定目标主机的优先级(priority):较低的值具有较高的优先级。权重(weight)控制具有相同优先级的目标的偏好:优选较高的值。最后,指定服务运行的端口以及提供服务的主机的主机名,以“.”结尾。因此,对于Prometheus,可能会定义如下记录:
_prometheus._tcp.linux78.com. 300 IN SRV 10 1 9100 server1.linux78.com
其中_service是要查询的服务的名称,_proto是服务的协议,通常是TCP或UDP。指定条目的名称,后面以“.”结尾,然后是记录的TTL(Time To Live)时间。IN是标准的DNS类(通常都会用IN)。我们指定目标主机的优先级(priority):较低的值具有较高的优先级。权重(weight)控制具有相同优先级的目标的偏好:优选较高的值。最后,指定服务运行的端口以及提供服务的主机的主机名,以“.”结尾。因此,对于Prometheus,可能会定义如下记录:
server1.linux78.com:9100
可以使用DNS服务发现来查询单个A或AAAA记录。为此,需要为抓取明确指定查询类型和端口。之所以需要指定端口,是因为A和AAAA记录只返回主机,而不是像SRV记录那样返回主机和端口组合。
- job_name: server1
dns_sd_configs:
- names: ['server1.linux78.com']
type:A
prot: 9100
DNS服务发现中只有一个元数据标签__meta_dns_name,它被设置为生成目标的特定DNS记录
返回:Prometheus