Prometheus的consul自动发现

目录

前言

一、概述

1、简介

2、引入 consul 的好处

3、Prometheus 支持的多种服务发现机制

二、Prometheus的服务发现机制

1、基于文件的服务发现

2、基于Consul的服务发现

三、Consul的服务发现

1、docker安装

2、docker-compose安装

3、基于 docker 的 consul 集群

4、使用接口注册服务

5、修改 prometheus 使用 consul 服务发现

6、验证

总结


前言

使用 Prometheus监控 SpringBoot 应用,当应用很多,且上下线频繁时,需要不断的更改 Prometheus 的配置文件,不能灵活的使用,可以通过为 Prometheus配置注册中心,从注册中心拉取应用数据获取监控数据。

一、概述

1、简介

prometheus配置文件 prometheus.yml 里配置需要监听的服务时,是按服务名写死的,如果后面增加了节点或者组件信息,就得手动修改此配置,并重启 promethues;那么能否动态的监听微服务呢?Prometheus 提供了多种动态服务发现的功能,这里以 consul 为例。

2、引入 consul 的好处

在没有使用 consul 服务自动发现的时候,我们需要频繁对 Prometheus 配置文件进行修改,无疑给运维人员带来很大的负担。引入consul之后,只需要在consul中维护监控组件配置,prometheus就能够动态发现配置了。

3、Prometheus 支持的多种服务发现机制

#Prometheus数据源的配置主要分为静态配置和动态发现, 常用的为以下几类:
1)static_configs: #静态服务发现
2)file_sd_configs: #文件服务发现
3)dns_sd_configs: DNS #服务发现
4)kubernetes_sd_configs: #Kubernetes 服务发现
5)consul_sd_configs: Consul #服务发现
...

#在监控kubernetes的应用场景中,频繁更新的pod,svc,等等资源配置应该是最能体现Prometheus监控目标自动发现服务的好处

二、Prometheus的服务发现机制

对Prometheus的服务发现机制亲自进行验证的方式有两种,一种是基于文件的服务发现;一种是基于Consul的服务发现。

1、基于文件的服务发现

基于文件的服务发现有三步:
在一个Json文件中定义被监控的主机列表信息;
在Prometheus的配置文件中关联这个Json文件,以及对这个文件的扫描周期;
如果有新增的监控节点,将监控节点的主机列表信息写入到Json文件中,Prometheus通过周期扫描就会发现新增的节点。
关于文件的服务发现的具体配置可以参考基于文件的服务发现

2、基于Consul的服务发现

基于的Consul服务发现可以分为两步:
在Prometheus的配置中关联上Consul服务发现;
新增的节点向Consul进行注册,Prometheus便可添加上新增的服务。
关于Prometheus的服务发现的两种机制的细节本博客不做深入研究,下面将只会从Consul的安装、Prometheus的配置,新增服务的注册和解注册。

三、Consul的服务发现

1、docker安装

# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
 # 卸载旧版本
yum remove -y docker \
docker-client \
docker-client-latest \
docker-ce-cli \
docker-common \
docker-latest \
dock

你可能感兴趣的:(监控类)