consul–基础–05–api


1、介绍

  1. 主要接口是RESTful HTTP API,该API可以用来增删查改nodes、services、checks、configguration。
  2. 所有的endpoints主要分为以下类别
  1. kv:Key/Value存储
  2. agent:Agent控制
  3. catalog:管理nodes和services
  4. health:管理健康监测
  5. session:Session操作
  6. acl:ACL创建和管理
  7. event:用户Events
  8. status:Consul系统状态

2、agent

用来和本地agent进行交互,一般用来服务注册和检查注册

2.1、/v1/agent/checks

返回本地agent注册的所有检查(包括配置文件和HTTP接口)

http://192.168.187.171:8500/v1/agent/checks

harbor 健康检查接口_java

2.2、/v1/agent/services

返回本地agent注册的所有 服务

http://192.168.187.171:8500/v1/agent/services

harbor 健康检查接口_java_02

2.3、/v1/agent/members

返回agent在集群的gossip pool中看到的成员

http://192.168.187.171:8500/v1/agent/members

harbor 健康检查接口_consul_03

2.4、/v1/agent/self

返回本地agent的配置和成员信息

http://192.168.187.171:8500/v1/agent/self

harbor 健康检查接口_java_04

2.5、/v1/agent/join/< address>

触发本地agent加入node

http://192.168.187.171:8500/v1/agent/join/192.168.187.172

harbor 健康检查接口_数据中心_05

2.6、/v1/agent/force-leave/< node >

强制删除node

http://192.168.187.171:8500/v1/agent/force-leave/consul-node1

harbor 健康检查接口_harbor 健康检查接口_06

2.7、/v1/agent/check/register

在本地agent增加一个检查项,使用PUT方法传输一个json格式的数据

2.8、/v1/agent/check/deregister/< checkID>

注销一个本地agent的检查项

http://192.168.187.171:8500/v1/agent/check/deregister/serfHealth

harbor 健康检查接口_consul_07

2.9、/v1/agent/check/pass/< checkID>

设置一个本地检查项的状态为passing

2.10、/v1/agent/check/warn/< checkID>

设置一个本地检查项的状态为warning

2.11、/v1/agent/check/fail/< checkID>

设置一个本地检查项的状态为critical

2.12、/v1/agent/service/register

在本地agent增加一个新的服务项,使用PUT方法传输一个json格式的数据

2.13、/v1/agent/service/deregister/< serviceID>

注销一个本地agent的服务项

http://192.168.187.171:8500/v1/agent/service/deregister/xcoa-192-168-48-1-8888

harbor 健康检查接口_java_08

3、catalog

用来注册/注销nodes、services、checks

3.1、/v1/catalog/register

Registers a new node, service, or check

http://192.168.187.171:8500/v1/catalog/register

3.2、/v1/catalog/deregister

Deregisters a node, service, or check

http://192.168.187.171:8500/v1/catalog/deregister

3.3、/v1/catalog/datacenters

显示数据中心列表

http://192.168.187.171:8500/v1/catalog/datacenters

harbor 健康检查接口_java-consul_09

3.4、/v1/catalog/nodes

列出给定数据中心的所有节点列表

http://192.168.187.171:8500/v1/catalog/nodes

harbor 健康检查接口_harbor 健康检查接口_10

3.5、/v1/catalog/services

列出给定数据中心的所有服务列表

http://192.168.187.171:8500/v1/catalog/services

harbor 健康检查接口_consul_11

3.6、/v1/catalog/service/< service>

获取服务名称对应的节点列表

http://192.168.187.171:8500/v1/catalog/service/xcoa

harbor 健康检查接口_数据中心_12

3.7、/v1/catalog/node/< node>

列出节点上的所有服务

http://192.168.187.171:8500/v1/catalog/node/consul-node1

harbor 健康检查接口_数据中心_13

4、health

  1. 用来查询健康状况相关信息
  2. 该功能是从catalog中单独分离出来

4.1、/v1/health/node/< node>

  1. 返回node所定义的检查
  2. 可用参数?dc=
http://192.168.187.171:8500/v1/health/node/consul-node1

harbor 健康检查接口_java-consul_14

4.2、/v1/health/checks/< service>

  1. 返回和服务相关联的检查
  2. 可用参数?dc=
http://192.168.187.171:8500/v1/health/checks/xcoa

harbor 健康检查接口_java-consul_15

4.3、/v1/health/service/< service>

  1. 返回给定datacenter中给定node中service
  2. 可用参数?dc=
http://192.168.187.171:8500/v1/health/service/xcoa

harbor 健康检查接口_consul_16

4.4、/v1/health/state/< state>

  1. 返回给定datacenter中指定状态的服务
  2. state值
  1. “any”
  2. “unknown”
  3. “passing”
  4. “warning”
  5. "critical
  1. 可用参数?dc=
http://192.168.187.171:8500/v1/health/state/passing

harbor 健康检查接口_java_17

5、session

用来create、update、destory、query sessions

5.1、/v1/session/create

create a new session

5.2、/v1/session/destroy/< session>

Destroys a given session

5.3、/v1/session/info/< session>

Queries a given session

5.4、/v1/session/node/< node>

Lists sessions belonging to a node

5.5、/v1/session/list

Lists all the active sessions

6、acl

用来create、update、destory、query acl

6.1、/v1/acl/create

Creates a new token with policy

6.2、/v1/acl/update

Update the policy of a token

6.3、/v1/acl/destroy/< id>

Destroys a given token

6.4、/v1/acl/info/< id>

Queries the policy of a given token

6.5、/v1/acl/clone/< id>

Creates a new token by cloning an existing token

6.6、/v1/acl/list

Lists all the active tokens

7、event

  1. 用来触发新的events
  2. 查询已有的events

7.1、/v1/event/fire/< name>

  1. 触发一个新的event
  2. 用户event需要name和其他可选的参数
  3. 使用PUT方法

7.2、/v1/event/list

  1. 返回agent知道的events

8、status

用来或者consul 集群的信息

8.1、/v1/status/leader

返回当前集群的Raft leader

8.2、/v1/status/peers

返回当前集群中同事