Consul常用的API
# 一、API 分类
注意
- Catalog API:用于查询服务实例、健康检查、节点信息等。
- Health API:用于查询所有服务的健康状态。
- KV API:用于存储和检索键值对数据。
- Agent API:用于配置 Consul 代理的参数,例如数据中心、健康检查间隔、服务注册等。
- Event API:用于创建、监听、处理事件。
- Snapshot API:用于创建、恢复快照以及将数据迁移到另一个 Consul 群集。
# 二、API 具体用法
# 1,Agent API
# 检索主机信息,包括内存、CPU、主机、磁盘信息
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/host'
# 列出主机成员
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/members'
# 读取主机的配置
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/self'
# 重启代理
curl --location --request PUT '/v1/agent/reload'
# 查看指标,包括仪表盘、点、计数、样本指标
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/metrics'
# 查看流日志
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/monitor'
# 加入代理集群
curl --location --request PUT 'http://127.0.0.1:8500/v1/agent/join/:address'
# 离开代理集群
curl --location --request PUT 'http://127.0.0.1:8500/v1/agent/leave'
# 返回注册的所有检查
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/check'
# 返回向本地代理注册的所有服务
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/services'
# 获取单个服务实例的完整服务定义
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/service/:service_id'
# 按名称检索本地代理上的聚合服务状态
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/health/service/name/:service_name'
# 按id检索本地代理上的聚合服务状态
curl --location --request GET 'http://127.0.0.1:8500/v1/agent/health/service/id/:service_id'
# 重要,从本地代理解注册服务
curl --location --request PUT 'http://127.0.0.1:8500/v1/agent/service/deregister/:service_id' -H "X-Consul-Token: b8fc-a1d6-4d8a-68a8-9a71"
# 重要,向本地代理注册服务
curl --location --request PUT 'http://127.0.0.1:8500/v1/agent/service/register' -H "X-Consul-Token: b8fc-a1d6-4d8a-68a8-9a71" --header 'Content-Type: application/json' --data '{"ID":"redis1","Name":"redis","Tags":["primary","v1"],"Address":"127.0.0.1","Port":8000,"Meta":{"redis_version":"4.0"},"EnableTagOverride":false,"Check":{"DeregisterCriticalServiceAfter":"90m","Args":["/usr/local/bin/check_redis.py"],"Interval":"10s","Timeout":"5s"},"Weights":{"Passing":10,"Warning":1}}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 2,Health API
# 返回特定于节点的检查
curl --location --request GET 'http://127.0.0.1:8500/v1/health/node/:node'
# 返回提供服务的检查
curl --location --request GET 'http://127.0.0.1:8500/v1/health/checks/:service'
# 返回提供服务的服务实例
curl --location --request GET 'http://127.0.0.1:8500/v1/health/service/:service'
# 返回启用连接服务的服务实例
curl --location --request GET 'http://127.0.0.1:8500/v1/health/connect/:service'
# 返回状态中的检查,state: any,passing, warning,critical
curl --location --request GET 'http://127.0.0.1:8500/v1/health/state/:state'
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 3,其他
// 获取服务注册的ip
dig +short @127.0.0.1 -p 8600 service_name.service.consul A
1
2
2
未完待续……
编辑 (opens new window)
上次更新: 2024/02/19, 23:29:55