8.prometheus的服务发现机制
prometheus默认采用pull方式拉取监控数据的,也就是定时去目标主机上抓取metrics数据,每一个被抓取的目标需要暴露一个HTTP接口,prometheus通过这个暴露的接口就可以获取到相应的指标数据,这种方式需要由目标服务器决定采集的目标有哪些,通过配置scrape_configs中的各种job来实现,无法动态感知新服务,如果后面增加了节点或者组件信息,就得手动修改prometheus配置,并重启prometheus,很不方便,所以出现了动态服务发现,动态服务发现能够自动发现集群中的新端点,并加入到配置中,通过服务发现,prometheus能查询到需要监控的Target列表,然后轮询这些Target获取监控数据。
prometheus获取数据源target的方式有多种,如静态配置和服务发现配置,prometheus支持多种服务发现,prometheus目前支持的服务发现有很多种,常用的主要分为以下几种:
kubernetes_sd_configs:#kubernetes服务发现,让prometheus动态发现kubernetes中被监控的目标
static_configs:#静态服务发现,基于prometheus配置文件指定的监控目标
consul_s