Prometheus+Consul服务自动发现监控

木木2年前技术文章1435

为什么使用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 通过 MTS 多线程恢复增量日志备份

MySQL 通过 MTS 多线程恢复增量日志备份

一、前言当发生 DDL 误删数据时,只能通过 备份 + 增量日志 来恢复,备份恢复到新实例后,将增量日志备份进行应用,此时只能单线程效率不高,我们可以使用 MySQL 5.7 推出的 MTS 多线程复...

MySQL运维实战之ProxySQL(9.10)proxysql监控

MySQL运维实战之ProxySQL(9.10)proxysql监控

stats数据库从stats数据库中可以查到proxysql一些内部组件的状态,如内存使用情况、连接池信息、会话信息、SQL执行状态等。mysql> show tables&...

容器引擎Podman常用命令浅析

容器引擎Podman常用命令浅析

Podman简介Podman 是一个开源的无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。容器既可以以root身份运行,也可以在无root模式下运行。Podman 提供与 Do...

MySQL 评估 ALTER TABLE 进度(5.7)

MySQL 评估 ALTER TABLE 进度(5.7)

一、前言问题:大表里执行 ALTER TABLE 的时候,经常会比较忐忑,会面临 “跑又跑不完 Kill 也不敢 Kill” 的窘境。需求:客户在执行 ALTER TABLE 时也会让我们来评估影响的...

创建跨集群用户

1.       登陆源集群和目标集群创建迁移时需要使用的用户(例:hadoop_copy),赋予用户集群超级管理员权限和hdfs超级用户权...

Redis Sentinel与Cluster安装部署(三)

4.3redis-cluster-resharding重新分配槽1、查看当前集群节点状态信息 # redis-cli --cluster check 172.32.1.59:7000 -a dt20...

发表评论    

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