EMQ2.0 管理监控API (REST API)

4 篇文章 0 订阅

用户可以通过 REST API 查询 MQTT 客户端连接(Clients)、会话(Sessions)、订阅(Subscriptions)和路由(Routes)信息,还可以检索和监控服务器的性能指标和统计数据。

URL 地址
REST API 访问 URL 地址:

http(s)😕/host:8080/api/v2/
Basic 认证
REST API 采用 HTTP Basic 认证(Authentication):

curl -v --basic -u : -k http://localhost:8080/api/v2/nodes/emq@127.0.0.1/clients
集群与节点
获取全部节点的基本信息
API 定义:

GET api/v2/management/nodes
请求示例:

GET api/v2/management/nodes
返回数据:

{
“code”: 0,
“result”: [
{
“name”: “emq@127.0.0.1”,
“version”: “2.3.10”,
“sysdescr”: “Erlang MQTT Broker”,
“uptime”: “3 minutes, 32 seconds”,
“datetime”: “2018-06-29 09:03:52”,
“otp_release”: “R20/9.3.3”,
“node_status”: “Running”
}
]
}
获取指定节点的基本信息
API 定义:

GET api/v2/management/nodes/{node_name}
请求示例:

GET api/v2/management/nodes/emq@127.0.0.1
返回数据:

{
“code”: 0,
“result”: {
“version”: “2.3.10”,
“sysdescr”: “Erlang MQTT Broker”,
“uptime”: “5 minutes, 12 seconds”,
“datetime”: “2018-06-29 09:05:32”,
“otp_release”: “R20/9.3.3”,
“node_status”: “Running”
}
}
获取全部节点的监控数据
API 定义:

GET api/v2/monitoring/nodes
请求示例:

GET api/v2/monitoring/nodes
返回数据:

{
“code”: 0,
“result”: [
{
“name”: “emq@127.0.0.1”,
“otp_release”: “R20/9.3.3”,
“memory_total”: “72.94M”,
“memory_used”: “50.55M”,
“process_available”: 262144,
“process_used”: 324,
“max_fds”: 7168,
“clients”: 0,
“node_status”: “Running”,
“load1”: “1.65”,
“load5”: “1.93”,
“load15”: “2.01”
}
]
}
获取指定节点的监控数据
API 定义:

GET api/v2/monitoring/nodes/{node_name}
请求示例:

GET api/v2/monitoring/nodes/emq@127.0.0.1
返回数据:

{
“code”: 0,
“result”: {
“name”: “emq@127.0.0.1”,
“otp_release”: “R20/9.3.3”,
“memory_total”: “73.69M”,
“memory_used”: “50.12M”,
“process_available”: 262144,
“process_used”: 324,
“max_fds”: 7168,
“clients”: 0,
“node_status”: “Running”,
“load1”: “1.88”,
“load5”: “1.99”,
“load15”: “2.02”
}
}
客户端连接(Clients)
获取指定节点的客户端连接列表
API 定义:

GET api/v2/nodes/{node_name}/clients
请求参数:

curr_page={page_no}&page_size={page_size}
请求示例:

api/v2/nodes/emq@127.0.0.1/clients?curr_page=1&page_size=20
返回数据:

{
“code”: 0,
“result”: {
“current_page”: 1,
“page_size”: 20,
“total_num”: 1,
“total_page”: 1,
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“username”: “undefined”,
“ipaddress”: “127.0.0.1”,
“port”: 58459,
“clean_sess”: true,
“proto_ver”: 4,
“keepalive”: 60,
“connected_at”: “2018-06-29 09:15:25”
}
]
}
}
获取节点指定客户端连接的信息
API 定义:

GET api/v2/nodes/{node_name}/clients/{clientid}
请求示例:

GET api/v2/nodes/emq@127.0.0.1/clients/mqttjs_722b4d845f
返回数据:

{
“code”: 0,
“result”: {
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“username”: “undefined”,
“ipaddress”: “127.0.0.1”,
“port”: 58459,
“clean_sess”: true,
“proto_ver”: 4,
“keepalive”: 60,
“connected_at”: “2018-06-29 09:15:25”
}
]
}
}
获取集群内指定客户端的信息
API 定义:

GET api/v2/clients/{clientid}
请求示例:

GET api/v2/clients/mqttjs_722b4d845f
返回数据:

{
“code”: 0,
“result”: {
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“username”: “undefined”,
“ipaddress”: “127.0.0.1”,
“port”: 58459,
“clean_sess”: true,
“proto_ver”: 4,
“keepalive”: 60,
“connected_at”: “2018-06-29 09:15:25”
}
]
}
}
断开集群内指定客户端连接
API定义:

DELETE api/v2/clients/{clientid}
请求示例:

DELETE api/v2/clients/mqttjs_722b4d845f
返回数据:

{
“code”: 0,
“result”: []
}
清除集群内指定客户端的ACL缓存
API定义:

PUT api/v2/clients/{clientid}/clean_acl_cache
请求参数:

{
“topic”: “test”
}
请求示例:

PUT api/v2/clients/mqttjs_722b4d845f/clean_acl_cache

请求的 json 参数:
{
“topic”: “test”
}
返回数据:

{
“code”: 0,
“result”: []
}
会话(Sessions)
获取指定节点的会话列表
API 定义:

GET api/v2/nodes/{node_name}/sessions
请求参数:

curr_page={page_no}&page_size={page_size}
请求示例:

GET api/v2/nodes/emq@127.0.0.1/sessions?curr_page=1&page_size=20
返回数据:

{
“code”: 0,
“result”: {
“current_page”: 1,
“page_size”: 20,
“total_num”: 1,
“total_page”: 1,
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“clean_sess”: true,
“subscriptions”: 0,
“max_inflight”: 32,
“inflight_len”: 0,
“mqueue_len”: 0,
“mqueue_dropped”: 0,
“awaiting_rel_len”: 0,
“deliver_msg”: 0,
“enqueue_msg”: 0,
“created_at”: “2018-06-29 10:05:13”
}
]
}
}
获取节点上指定客户端的会话信息
API 定义:

GET api/v2/nodes/{node_name}/sessions/{clientid}
请求示例:

GET api/v2/nodes/emq@127.0.0.1/sessions/mqttjs_722b4d845f
返回数据:

{
“code”: 0,
“result”: {
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“clean_sess”: true,
“subscriptions”: 0,
“max_inflight”: 32,
“inflight_len”: 0,
“mqueue_len”: 0,
“mqueue_dropped”: 0,
“awaiting_rel_len”: 0,
“deliver_msg”: 0,
“enqueue_msg”: 0,
“created_at”: “2018-06-29 10:05:13”
}
]
}
}
获取集群内指定客户端的会话信息
API 定义:

GET api/v2/sessions/{clientid}
请求示例:

GET api/v2/sessions/mqttjs_722b4d845f
返回数据:

订阅(Subscriptions)
获取某个节点上的订阅列表
API 定义:

GET api/v2/nodes/{node_name}/subscriptions
请求参数:

curr_page={page_no}&page_size={page_size}
请求示例:

GET api/v2/nodes/emq@127.0.0.1/subscriptions?curr_page=1&page_size=20
返回数据:

{
“code”: 0,
“result”: {
“current_page”: 1,
“page_size”: 20,
“total_num”: 1,
“total_page”: 1,
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“topic”: “/World”,
“qos”: 0
}
]
}
}
获取节点上指定客户端的订阅信息
API 定义:

GET api/v2/nodes/{node_name}/subscriptions/{clientid}
请求示例:

GET api/v2/nodes/emq@127.0.0.1/subscriptions/mqttjs_722b4d845f
返回数据:

{
“code”: 0,
“result”: {
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“topic”: “/World”,
“qos”: 0
}
]
}
}
获取集群内指定客户端的订阅信息
API 定义:

GET api/v2/subscriptions/{clientid}
请求示例:

GET api/v2/subscriptions/mqttjs_722b4d845f
返回数据:

{
“code”: 0,
“result”: {
“objects”: [
{
“client_id”: “mqttjs_722b4d845f”,
“topic”: “/World”,
“qos”: 0
}
]
}
}
路由(Routes)
获取集群路由表
API 定义:

GET api/v2/routes
请求参数:

curr_page={page_no}&page_size={page_size}
请求示例:

GET api/v2/routes?curr_page=1&page_size=20
返回数据:

{
“code”: 0,
“result”: {
“current_page”: 1,
“page_size”: 20,
“total_num”: 1,
“total_page”: 1,
“objects”: [
{
“topic”: “/World”,
“node”: “emq@127.0.0.1”
}
]
}
}
获取集群内指定主题的路由信息
API 定义:

GET api/v2/routes/{topic}
请求示例:

GET api/v2/routes//World
返回数据:

{
“code”: 0,
“result”: {
“objects”: [
{
“topic”: “/World”,
“node”: “emq@127.0.0.1”
}
]
}
}
发布/订阅
发布消息
API 定义:

POST api/v2/mqtt/publish
请求参数:

{
“topic” : “/World”,
“payload”: “hello”,
“qos”: 0,
“retain” : false,
“client_id”: “mqttjs_722b4d845f”
}
注解

topic 参数必填,其他参数可选。payload 默认值空字符串,qos 默认为 0,retain 默认为 false,client_id 默认为 ‘http’。
请求示例:

POST api/v2/mqtt/publish

请求参数 json:
{
“topic” : “/World”,
“payload”: “hello”,
“qos”: 0,
“retain” : false,
“client_id”: “mqttjs_722b4d845f”
}
返回数据:

{
“code”: 0,
“result”: []
}
创建订阅
API 定义:

POST api/v2/mqtt/subscribe
请求参数:

{
“topic” : “/World”,
“qos” : 0,
“client_id”: “mqttjs_722b4d845f”
}
请求示例:

POST api/v2/mqtt/subscribe
请求参数 json:
{
“topic” : “/World”,
“qos”: 0,
“client_id”: “mqttjs_722b4d845f”
}
返回数据:

{
“code”: 0,
“result”: []
}
取消订阅
API 定义:

POST api/v2/mqtt/unsubscribe
请求参数:

{
“topic” : “/World”,
“client_id”: “mqttjs_722b4d845f”
}
请求示例:

POST api/v2/mqtt/unsubscribe
请求参数 json:
{
“topic” : “/World”,
“client_id”: “mqttjs_722b4d845f”
}
返回数据:

{
“code”: 0,
“result”: []
}
插件(Plugins)
获取节点的插件列表
API 定义:

GET api/v2/nodes/{node_name}/plugins
请求示例:

GET api/v2/nodes/emq@127.0.0.1/plugins
返回数据:

{
“code”: 0,
“result”: [
{
“name”: “emq_auth_clientid”,
“version”: “2.3.10”,
“description”: “Authentication with ClientId/Password”,
“active”: false
},
{
“name”: “emq_auth_http”,
“version”: “2.3.10”,
“description”: “Authentication/ACL with HTTP API”,
“active”: false
},
{
“name”: “emq_auth_jwt”,
“version”: “2.3.10”,
“description”: “Authentication with JWT”,
“active”: false
},
{
“name”: “emq_auth_ldap”,
“version”: “2.3.10”,
“description”: “Authentication/ACL with LDAP”,
“active”: false
},
{
“name”: “emq_auth_mongo”,
“version”: “2.3.10”,
“description”: “Authentication/ACL with MongoDB”,
“active”: false
},
{
“name”: “emq_auth_mysql”,
“version”: “2.3.10”,
“description”: “Authentication/ACL with MySQL”,
“active”: false
},
{
“name”: “emq_auth_pgsql”,
“version”: “2.3.10”,
“description”: “Authentication/ACL with PostgreSQL”,
“active”: false
},
{
“name”: “emq_auth_redis”,
“version”: “2.3.10”,
“description”: “Authentication/ACL with Redis”,
“active”: false
},
{
“name”: “emq_auth_username”,
“version”: “2.3.10”,
“description”: “Authentication with Username/Password”,
“active”: false
},
{
“name”: “emq_coap”,
“version”: “2.3.10”,
“description”: “CoAP Gateway”,
“active”: false
},
{
“name”: “emq_dashboard”,
“version”: “2.3.10”,
“description”: “EMQ Web Dashboard”,
“active”: true
},
{
“name”: “emq_lua_hook”,
“version”: “2.3.10”,
“description”: “EMQ Hooks in lua”,
“active”: false
},
{
“name”: “emq_modules”,
“version”: “2.3.10”,
“description”: “EMQ Modules”,
“active”: true
},
{
“name”: “emq_plugin_template”,
“version”: “2.3.10”,
“description”: “EMQ Plugin Template”,
“active”: false
},
{
“name”: “emq_recon”,
“version”: “2.3.10”,
“description”: “Recon Plugin”,
“active”: true
},
{
“name”: “emq_reloader”,
“version”: “2.3.10”,
“description”: “Reloader Plugin”,
“active”: false
},
{
“name”: “emq_retainer”,
“version”: “2.3.10”,
“description”: “EMQ Retainer”,
“active”: true
},
{
“name”: “emq_sn”,
“version”: “2.3.10”,
“description”: “MQTT-SN Gateway”,
“active”: false
},
{
“name”: “emq_stomp”,
“version”: “2.3.10”,
“description”: “Stomp Protocol Plugin”,
“active”: false
},
{
“name”: “emq_web_hook”,
“version”: “2.3.10”,
“description”: “EMQ Webhook Plugin”,
“active”: false
}
]
}
开启/关闭节点的指定插件
API 定义:

PUT /api/v2/nodes/{node_name}/plugins/{name}
请求参数:

{“active”: true | false}
请求示例:

PUT api/v2/nodes/emq@127.0.0.1/plugins/emq_recon
json请求参数:
{
“active”: true
}
返回数据:

{
“code”: 0,
“result”: []
}
监听器(Listeners)
获取集群节点的监听器列表
API 定义:

GET api/v2/monitoring/listeners
返回数据:

{
“code”: 0,
“result”: {
“emq@127.0.0.1”: [
{
“protocol”: “dashboard:http”,
“listen”: “18083”,
“acceptors”: 2,
“max_clients”: 512,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:tcp”,
“listen”: “127.0.0.1:11883”,
“acceptors”: 16,
“max_clients”: 102400,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:tcp”,
“listen”: “0.0.0.0:1883”,
“acceptors”: 16,
“max_clients”: 102400,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:ws”,
“listen”: “8083”,
“acceptors”: 4,
“max_clients”: 64,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:ssl”,
“listen”: “8883”,
“acceptors”: 16,
“max_clients”: 1024,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:wss”,
“listen”: “8084”,
“acceptors”: 4,
“max_clients”: 64,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:api”,
“listen”: “127.0.0.1:8080”,
“acceptors”: 4,
“max_clients”: 64,
“current_clients”: 1,
“shutdown_count”: []
}
]
}
}
获取指定节点的监听器列表
API 定义:

GET api/v2/monitoring/listeners/{node_name}
请求示例:

GET api/v2/monitoring/listeners/emq@127.0.0.1
返回数据:

{
“code”: 0,
“result”: [
{
“protocol”: “mqtt:api”,
“listen”: “127.0.0.1:8080”,
“acceptors”: 4,
“max_clients”: 64,
“current_clients”: 1,
“shutdown_count”: []
},
{
“protocol”: “mqtt:wss”,
“listen”: “8084”,
“acceptors”: 4,
“max_clients”: 64,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:ssl”,
“listen”: “8883”,
“acceptors”: 16,
“max_clients”: 1024,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:ws”,
“listen”: “8083”,
“acceptors”: 4,
“max_clients”: 64,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:tcp”,
“listen”: “0.0.0.0:1883”,
“acceptors”: 16,
“max_clients”: 102400,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “mqtt:tcp”,
“listen”: “127.0.0.1:11883”,
“acceptors”: 16,
“max_clients”: 102400,
“current_clients”: 0,
“shutdown_count”: []
},
{
“protocol”: “dashboard:http”,
“listen”: “18083”,
“acceptors”: 2,
“max_clients”: 512,
“current_clients”: 0,
“shutdown_count”: []
}
]
}
收发报文统计
获取全部节点的收发报文统计
API 定义:

GET api/v2/monitoring/metrics/
返回数据:

{
“code”: 0,
“result”: {
“packets/disconnect”:0,
“messages/dropped”:0,
“messages/qos2/received”:0,
“packets/suback”:0,
“packets/pubcomp/received”:0,
“packets/unsuback”:0,
“packets/pingresp”:0,
“packets/puback/missed”:0,
“packets/pingreq”:0,
“messages/retained”:3,
“packets/sent”:0,
“messages/qos2/dropped”:0,
“packets/unsubscribe”:0,
“packets/pubrec/missed”:0,
“packets/connack”:0,
“packets/pubrec/sent”:0,
“packets/publish/received”:0,
“packets/pubcomp/sent”:0,
“bytes/received”:0,
“packets/connect”:0,
“packets/puback/received”:0,
“messages/sent”:0,
“packets/publish/sent”:0,
“bytes/sent”:0,
“packets/pubrel/missed”:0,
“packets/puback/sent”:0,
“messages/qos0/received”:0,
“packets/subscribe”:0,
“packets/pubrel/sent”:0,
“messages/qos2/sent”:0,
“packets/received”:0,
“packets/pubrel/received”:0,
“messages/qos1/received”:0,
“messages/qos1/sent”:0,
“packets/pubrec/received”:0,
“packets/pubcomp/missed”:0,
“messages/qos0/sent”:0
}
}
获取指定节点的收发报文统计
API 定义:

GET api/v2/monitoring/metrics/{node_name}
请求示例:

GET api/v2/monitoring/metrics/emq@127.0.0.1
返回数据:

{
“code”: 0,
“result”: {
“packets/disconnect”:0,
“messages/dropped”:0,
“messages/qos2/received”:0,
“packets/suback”:0,
“packets/pubcomp/received”:0,
“packets/unsuback”:0,
“packets/pingresp”:0,
“packets/puback/missed”:0,
“packets/pingreq”:0,
“messages/retained”:3,
“packets/sent”:0,
“messages/qos2/dropped”:0,
“packets/unsubscribe”:0,
“packets/pubrec/missed”:0,
“packets/connack”:0,
“messages/received”:0,
“packets/pubrec/sent”:0,
“packets/publish/received”:0,
“packets/pubcomp/sent”:0,
“bytes/received”:0,
“packets/connect”:0,
“packets/puback/received”:0,
“messages/sent”:0,
“packets/publish/sent”:0,
“bytes/sent”:0,
“packets/pubrel/missed”:0,
“packets/puback/sent”:0,
“messages/qos0/received”:0,
“packets/subscribe”:0,
“packets/pubrel/sent”:0,
“messages/qos2/sent”:0,
“packets/received”:0,
“packets/pubrel/received”:0,
“messages/qos1/received”:0,
“messages/qos1/sent”:0,
“packets/pubrec/received”:0,
“packets/pubcomp/missed”:0,
“messages/qos0/sent”:0
}
}
连接会话统计
获取全部节点的连接会话统计
API 定义:

GET api/v2/monitoring/stats
请求示例:

GET api/v2/monitoring/stats
返回数据:

{
“code”: 0,
“result”: [
{
“emq@127.0.0.1”: {
“clients/count”: 0,
“clients/max”: 0,
“retained/count”: 3,
“retained/max”: 3,
“routes/count”: 0,
“routes/max”: 0,
“sessions/count”: 0,
“sessions/max”: 0,
“subscribers/count”: 0,
“subscribers/max”: 0,
“subscriptions/count”: 0,
“subscriptions/max”: 0,
“topics/count”: 0,
“topics/max”: 0
}
}
]
}
获取指定节点的连接会话统计
API 定义:

GET api/v2/monitoring/stats/{node_name}
请求示例:

GET api/v2/monitoring/stats/emq@127.0.0.1
返回数据:

{
“code”: 0,
“result”: {
“clients/count”: 0,
“clients/max”: 0,
“retained/count”: 3,
“retained/max”: 3,
“routes/count”: 0,
“routes/max”: 0,
“sessions/count”: 0,
“sessions/max”: 0,
“subscribers/count”: 0,
“subscribers/max”: 0,
“subscriptions/count”: 0,
“subscriptions/max”: 0,
“topics/count”: 0,
“topics/max”: 0
}
}
热配置
获取全部节点的可修改配置项
API定义:

GET api/v2/configs
请求示例:

GET api/v2/configs
返回数据:

{
“code”: 0,
“result”: {
“emq@127.0.0.1”: [
{
“key”: “log.console.level”,
“value”: “error”,
“datatpye”: “enum”,
“app”: “emqttd”
},
{
“key”: “mqtt.acl_file”,
“value”: “etc/acl.conf”,
“datatpye”: “string”,
“app”: “emqttd”
},
{
“key”: “mqtt.acl_nomatch”,
“value”: “allow”,
“datatpye”: “enum”,
“app”: “emqttd”
},
{
“key”: “mqtt.allow_anonymous”,
“value”: “true”,
“datatpye”: “enum”,
“app”: “emqttd”
},
{
“key”: “mqtt.broker.sys_interval”,
“value”: “60”,
“datatpye”: “integer”,
“app”: “emqttd”
},
{
“key”: “mqtt.cache_acl”,
“value”: “true”,
“datatpye”: “enum”,
“app”: “emqttd”
}
]
}
}
获取指定节点的可修改配置项
API定义:

GET api/v2/nodes/{node_name}/configs
请求示例:

GET api/v2/nodes/emq@127.0.0.1/configs
返回数据:

{
“code”: 0,
“result”: [
{
“key”: “log.console.level”,
“value”: “error”,
“datatpye”: “enum”,
“app”: “emqttd”
},
{
“key”: “mqtt.acl_file”,
“value”: “etc/acl.conf”,
“datatpye”: “string”,
“app”: “emqttd”
},
{
“key”: “mqtt.acl_nomatch”,
“value”: “allow”,
“datatpye”: “enum”,
“app”: “emqttd”
},
{
“key”: “mqtt.allow_anonymous”,
“value”: “true”,
“datatpye”: “enum”,
“app”: “emqttd”
},
{
“key”: “mqtt.broker.sys_interval”,
“value”: “60”,
“datatpye”: “integer”,
“app”: “emqttd”
},
{
“key”: “mqtt.cache_acl”,
“value”: “true”,
“datatpye”: “enum”,
“app”: “emqttd”
}
]
}
修改全部节点的配置项
API定义:

PUT /api/v2/configs/{app_name}
请求参数:

{
“key” : “mqtt.allow_anonymous”,
“value” : “false”
}
请求示例:

PUT /api/v2/configs/emqttd
返回数据:

{
“code”: 0,
“result”: []
}
修改指定节点的配置项
API定义:

PUT /api/v2/nodes/{node_name}/configs/{app_name}
请求参数:

{
“key” : “mqtt.allow_anonymous”,
“value” : “false”
}
请求示例:

PUT /api/v2/nodes/emq@127.0.0.1/configs/emqttd
返回数据:

{
“code”: 0,
“result”: []
}
获取指定节点的指定插件的配置项
API定义:

GET api/v2/nodes/{node_name}/plugin_configs/{plugin_name}
请求示例:

GET api/v2/nodes/emq@127.0.0.1/plugin_configs/emq_auth_http
返回数据:

{
“code”: 0,
“result”: [
{
“key”: “auth.http.auth_req”,
“value”: “http://127.0.0.1:8080/mqtt/auth”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.auth_req.method”,
“value”: “post”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.auth_req.params”,
“value”: “clientid=%c,username=%u,password=%P”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.super_req”,
“value”: “http://127.0.0.1:8080/mqtt/superuser”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.super_req.method”,
“value”: “post”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.super_req.params”,
“value”: “clientid=%c,username=%u”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.acl_req”,
“value”: “http://127.0.0.1:8080/mqtt/acl”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.acl_req.method”,
“value”: “get”,
“desc”: “”,
“required”: true
},
{
“key”: “auth.http.acl_req.params”,
“value”: “access=%A,username=%u,clientid=%c,ipaddr=%a,topic=%t”,
“desc”: “”,
“required”: true
}
]
}
修改指定节点的指定插件的配置项
API定义:

PUT api/v2/nodes/{node_name}/plugin_configs/{plugin_name}
请求参数:

{
“auth.http.auth_req.method”: “get”,
“auth.http.auth_req”: “http://127.0.0.1:8080/mqtt/auth”,
“auth.http.auth_req.params”: “clientid=%c,username=%u,password=%P”,
“auth.http.acl_req.method”: “get”,
“auth.http.acl_req”: “http://127.0.0.1:8080/mqtt/acl”,
“auth.http.acl_req.params”: “access=%A,username=%u,clientid=%c,ipaddr=%a,topic=%t”,
“auth.http.super_req.method”: “post”,
“auth.http.super_req.params”: “clientid=%c,username=%u”,
“auth.http.super_req”: “http://127.0.0.1:8080/mqtt/superuser”
}
请求示例:

PUT api/v2/nodes/emq@127.0.0.1/plugin_configs/emq_auth_http
返回数据:

{
“code”: 0,
“result”: []
}
用户管理
获取管理用户列表
API定义:

GET api/v2/users
请求示例:

GET api/v2/users
返回数据:

{
“code”: 0,
“result”: [
{
“username”: “admin”,
“tags”: “administrator”
}
]
}
添加管理用户
API定义:

POST api/v2/users
请求参数:

{
“username”: “test_user”,
“password”: “password”,
“tags”: “user”
}
请求示例:

POST api/v2/users
返回数据:

{
“code”: 0,
“result”: []
}
修改管理用户信息
API定义:

PUT api/v2/users/{username}
请求参数:

{
“tags”: “admin”
}
请求示例:

PUT api/v2/users/test_user
返回数据:

{
“code”: 0,
“result”: []
}
删除管理用户
API定义:

DELETE api/v2/users/{username}
请求参数:

请求示例:

DELETE api/v2/users/test_user
返回数据:

{
“code”: 0,
“result”: []
}
认证管理用户
API定义:

POST api/v2/auth
请求参数:

{
“username”: “test_user”,
“password”: “password”
}
请求示例:

POST api/v2/auth
返回数据:

{
“code”: 0,
“result”: []
}
修改管理用户密码
API定义:

PUT api/v2/change_pwd/{username}
请求参数:

{
“new_pwd”: “newpassword”,
“old_pwd”: “password”
}
请求示例:

PUT api/v2/change_pwd/test_user
返回数据:

{
“code”: 0,
“result”: []
}
返回错误码
错误码 备注
0 成功
101 badrpc
102 未知错误
103 用户名密码错误
104 用户名密码不能为空
105 删除的用户不存在
106 admin用户不能删除
107 请求参数缺失
108 请求参数类型错误
109 请求参数不是json类型
110 插件已经加载,不能重复加载
111 插件已经卸载,不能重复卸载
112 用户不在线
113 用户已经存在
114 旧密码错误

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值