Prometheus+Consul服务自动发现监控

木木2年前技术文章1037

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


相关文章

Flume使用案例之实时读取目录到HDFS

目标:使用flume监听整个目录的文件分步实现:1. 创建配置文件flume-dir.conf#1 Agenta3.sources = r3a3.sinks = k3a3.channels = c3 ...

开源大数据集群部署(二十)Trino部署

开源大数据集群部署(二十)Trino部署

2.9.1 解压trino的包到opt目录cd /root/bigdata tar -xzvf trino-server-389.tar.gz -C /opt/ ln -s /opt/trino-...

MySQL运维实战(5.4) MySQL元数据乱码

表结构Comment乱码如果DDL实际编码和character_set_client设置不一致,也会引起乱码。$ cat test_comment_utf8.sql create...

oracle adg切换

1 主库转备库注意:原则上至多只能有一个主库,但是备库可以多个,所以需要先进行主库转备库操作。1.1 查看主库角色切换状态SYS@proe>select name,database_role,s...

mysqldump导入备份文件报错记录

mysqldump导入备份文件报错记录

mysqldump导入备份文件报错记录【问题记录1】目前遇到过两类报错,均主要是因为 GTID 引起,两类报错内容完全不同,但解决方法相同,报错内容具体如下:第一类报错:在自建数据库往云上数据库导入数...

RAID磁盘阵列详解

RAID磁盘阵列详解

1 RAID原理无论是DAS、NAS还是SAN,都是存储系统,一个存储系统可以包含多块磁盘。不同磁盘之间的组织排列,就是磁盘阵列技术,也就是RAID技术。RAID磁盘阵列技术的核心思想主要有两个,包括...

发表评论    

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