Prometheus+Consul服务自动发现监控

木木10个月前技术文章407

为什么使用consul

prometheus作为新一代的监控利器,有很多优点,部署起来也十分方便。部署prometheus后自然会需要使用prometheus去监控物理机或者虚拟机的资源,这里就需要使用到node_exporter。同时根据prometheus的架构来看,server会主动从node上拉取数据。而我们每增加一个node,就要告诉prometheus需要到新的node上去拉去数据(更改prometheus配置),这个明显是不合理的,而且维护难度较高。所以这里引入consul来进行自动发现,降低维护难度。

prometheus-server部署

prometheus的部署很简单,二进制文件下载后直接执行即可。这里我们不使用二进制文件进行部署,改用docker进行部署。

sudo docker run -d --net=host -v /opt/prometheus/config:/etc/prometheus --name=prometheus prom/prometheus

这里net指定host是为了方便我们后续和consul进行配合使用。

访问地址

http://localhost:9090

consul部署

简介

Consul 是基于 GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。之前我们通过 Prometheus 实现监控,当新增一个 Target 时,需要变更服务器上的配置文件,即使使用 file_sd_configs 配置,也需要登录服务器修改对应 Json 文件,会非常麻烦。不过 Prometheus 官方支持多种自动服务发现的类型,其中就支持 Consul。

部署

sudo docker run -d --name=consul --net=host -v /opt/consul/data:/consul/data -v /opt/consul/config:/consul/config consul

访问地址

http://172.16.0.2:8500

API 注册服务到 Consul

接下来,我们要注册服务到 Consul 中,可以通过其提供的 API 标准接口来添加。

注册服务

这里我们添加本机的node-exporter看下。api请求如下:

curl -X PUT -d '{
  "id": "prometheus",
  "name": "node-exporter",
  "address": "172.16.0.2",
  "port": 9100,
  "tags": ["prometheus"],
  "checks": [{"http": "http://172.16.0.2:9100/metrics", "interval": "30s"}]
}' http://localhost:8500/v1/agent/service/register

刷新页面后可以看到我们的node-exporter已经注册到consul了

删除服务

curl -X PUT http://localhost:8500/v1/agent/service/deregister/node-exporter


相关文章

MySQL运维实战(5.1) 字符和编码的基本概念

MySQL运维实战(5.1) 字符和编码的基本概念

字符和编码字符字符是符号,是人们用于交流的各类符号,如26个英文字母、汉字、标点符号、数学运算符、其他语言的字母和符号。编码编码是计算机中以二进制方式存储字符的方式。字符集字符集是字符和编码的映射表。...

数据湖技术之iceberg(一)数据湖的概念

数据湖技术之iceberg(一)数据湖的概念

1  数据湖概念1.1.  什么是数据湖数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不...

trino组件对接hudi(四)

trino组件对接hudi(四)

安装部署本文是基于已经部署了trino组件的环境上,进行的trino和hudi的对接,使trino组件能够正常查询hudi表。1、增加hudi connector配置在trino安装部署下的etc/c...

MySQL主从复制配置

一、master服务器配置1)用户添加及授权在master 服务器授权一个账户,拥有slave权限12mysql> GRANT REPLICATION SLAVE,REPLICATION CLI...

使用helm在k8s集群部署rancher

使用helm在k8s集群部署rancher由于我们的k8s版本是1.22,所以我们直接安装latest版本的rancher。不同版本的rancher helm仓库可以看下面链接https://docs...

MySQL 中的状态变量

前言本篇文章介绍一些 MySQL 中常用的监控指标,常见的监控工具都是采集 MySQL 中的状态变量(status variables)理解这些状态变量,可以更好的帮助我们理解 MySQL 监控的含义...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。