Prometheus服务发现

概述

Prometheus Server的数据抓取工作于Pull模型,因而,它必需要事先知道各Target的位置,然后才能从相应的 Exporter 或 Instrumentation 中抓取数据
对于小型的系统环境来说,通过static_configs指定各Target便能解决问题,这也是最简单的配置方法;
  • 每个Targets用一个网络端点(ip:port)进行标识;
对于中大型的系统环境或具有较强动态性的云计算环境来说,静态配置显然难以适用;
 因此,Prometheus为此专门设计了一组服务发现机制,以便于能够基于服务注册中心(服务总线)自动发现、检测、分类可被监控的各Target,以及更新发生了变动的Target;
 

Prometheus可集成的服务发现机制

不同场景中,服务注册中心的指代也会有所不同
公有或私有IaaS云自身保存有平台上的所有资源信息,其API Server便可作为Prometheus的服务发现媒介;
  • azure、ec2、digitalocean、gce、hetzner、
Prometheus也可以集成到多种不同的开源服务发现工具上,以动态发现需要监控的目标;
  • Consul、Eureka Zookeeper Serverset或Airbnb Nerve等
Prometheus也可以很好地集成到Kubernetes平台上,通过其API Server动态发现各类被监控的Pod(容器集)、Service、Endpoint、Ingress和Node对象;
  • 它也支持基于dockerswarm和marathon两款编排工具进行服务发现;
Prometheus还支持基于DNS或文件的动态发现机制;

服务发现的实现

 静态文件

基于文件的服务发现

基于Consul的服务发现

基于DNS的服务发现

 

 
 
 
 
posted @ 2021-11-02 20:51  闫世成  阅读(52)  评论(0编辑  收藏  举报