Prometheus+Consul服务自动发现监控

木木1年前技术文章845

为什么使用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


相关文章

ORC、Parquet 等列式存储的优点

ORC 和Parquet 都是高性能的存储方式,这两种存储格式总会带来存储和性能上的提升Parquet:1. Parquet 支持嵌套的数据模型,类似于Protocol Buffers,每一个数据模型...

开源大数据集群部署(二)集群基础环境实施准备

开源大数据集群部署(二)集群基础环境实施准备

1、部署实施Ø  部署实施章节中灰色文本内容为操作命令和配置文件内容。Ø  下文中$表示系统命令解释器开始符号,且表示所有机器都要执行,如出现[hadoop@hd1.dtstack...

Spark thriftserver对接cdh hive

Spark thriftserver对接cdh hive

1、背景客户需要使用spark的thriftserver来通过beeline或者jdbc 来使用spark sql环境: spark 3.2.0hive: 2.1.1-cdh6.3.2hadoop:...

kubernetes dashboard

kubernetes dashboard

1、背景Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。你可...

HDFS核心参数

HDFS核心参数

1.NameNode内存生产配置(1)NameNode内存计算,每个文件块大概占用150byte,一台服务器128G内存为例,能存储9.1亿个文件128 * 1024 * 1024 * 1024  /...

DG概念与机制

1. 相关概念1.1 什么是DG  DG全称Data Guard,官方给出的定义是“Oracle Data Guard ensures high availability, data protecti...

发表评论    

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