通过调用agent的api向consul注册service(node export),并通过prometheus获取node export地址
1、概述
我们使用consul的主要的目标是将需要的export信息注册到consul中,然后通过prometheus来从consul中动态的去发现这些exporter的地址信息,然后进行数据的采集。
OK,本文就简单介绍,如何通过调用api的方式,向consul中注册service。
2、通过api向consul中注册
2.1、注册service
通过 /agent/service/register 这个endpoint来向agent中注册一个service.
通过以下的示例,向agent中来注册serivice
curl \
--request PUT \
--data \
'
{
"ID": "node_export-172.20.58.18-8088",
"Name": "node_export",
"Tags": ["primary"],
"Address": "172.20.58.18",
"Port": 8088
}' \
http://127.0.0.1:8500/v1/agent/service/register?replace-existing-checks=true
参数释义:
- ID:可以是任意指定的名字,不过要唯一,可以使用多个
- name:service的名字,相同的service不同id就是不同实例
- Address: 具体的node export的地址
- port:端口
最后的那个url:consul的地址和服务注册路径
2.2、查看注册信息
OK,注册之后,我们可以登录consul的页面,看下具体的信息
OK,ID就是这里面的instance实例信息。因为一个service下面可以有很多的实例。可以看到对应的网络的信息。
2.3、再增加service实例
OK,那么我们来测试下,在这个service下增加一个实例
通过下面的命令进行增加service实例
curl \
--request PUT \
--data \
'
{
"ID": "node_export-172.20.58.18-8089",
"Name": "node_export",
"Tags": ["primary"],
"Address": "172.20.58.18",
"Port": 8089
}' \
http://127.0.0.1:8500/v1/agent/service/register?replace-existing-checks=true
查看service
已经是2个实例了
查看实例,已经是2个,各自分别有自己的IP地址和端口。
3、通过prometheus获取consul中的export信息
在prometheus.yml中增加如下的配置
- job_name: 'node resources'
scrape_interval: 25s
consul_sd_configs:
- server: "172.20.58.18:8500"
datacenter: "dc1"
scheme: "http"
services:
- node_export
重启,prometheus-server
登录prometheus的web界面,status-target
可以看到已经获取了2个node exporter的终端地址。
这样,prometheus就会自动对这个2个节点进行监控了。
那么,后续从consul中注销节点,会如何呢?
4、从consul中注销service
通过以下的api,从consul中注销service
curl \
--request PUT \
http://127.0.0.1:8500/v1/agent/service/deregister/node_export-172.20.58.18-8088
最后的参数是service的id.
ok,8088的实例已经下线。
再看prometheus
只剩下一个节点了。
这样,每次增加,减少node exporter,就不需要手动的更新prometheus的配置文件了
就可以实现动态的服务的发现。
相关文章
- node+express+mysql 实现登陆注册
- [Node.js] Using npm link to use node modules that are "in progress"
- 最简单的社交分享代码,无需注册OpenID
- [Whole Web, Node.js, PM2] Restarting your node.js app on code change using pm2
- [Node.js] Using npm link to use node modules that are "in progress"
- VMware ESXi 6.7注册/新建一个虚拟机
- openstack详解(十四)——Glance Keystone注册
- 如何在 SAP CRM WebClient UI 里在 Context node 上下文里访问其他 Context Node 的数据
- 无法读取此系统上以前注册的服务器的列表。请在“已注册的服务器”窗口中重新注册您的服务器
- SAP HANA Express 版本的注册和安装
- iOS swift UITableView UITableViewCell 注册cell的三种方法
- 【华为云专家原创】 服务注册与发现如何满足服务治理?
- 0408-服务注册与发现-Eureka常用配置
- Node.js(二)node 核心模块 fs、HTTP模块、express框架
- Node.js(一)概述、全局对象/函数、node各模块使用介绍
- TypeAliasRegistry别名注册机制
- SpringCloud 组件 服务发现与注册组件 Eureka