This commit is contained in:
Feng 2016-02-25 19:05:37 +08:00
parent 2095932548
commit 5558df8ba9
1 changed files with 299 additions and 248 deletions

View File

@ -5,40 +5,40 @@
Command Line Command Line
============ ============
emqttd消息服务器提供了'./bin/emqttd_ctl'的管理命令行。 The './bin/emqttd_ctl' command line could be used to query and administrate emqttd broker.
.. WARNING:: 限制: Windows平台无法使用。 .. WARNING:: Cannot work on Windows
---------- ------
status status
---------- ------
Show running status of the broker::
查询emqttd消息服务器运行状态::
$ ./bin/emqttd_ctl status $ ./bin/emqttd_ctl status
Node 'emqttd@127.0.0.1' is started Node 'emqttd@127.0.0.1' is started
emqttd 0.16.0 is running emqttd 0.16.0 is running
------
----------
broker broker
---------- ------
broker命令查询服务器基本信息启动时间统计数据与性能数据。 Query basic information, statistics and metrics of the broker.
+----------------+-----------------------------------------------+ +----------------+-------------------------------------------------+
| broker | 查询emqttd消息服务器描述、版本、启动时间 | | broker | Show version, description, uptime of the broker |
+----------------+-----------------------------------------------+ +----------------+-------------------------------------------------+
| broker pubsub | 查询核心的Erlang PubSub进程状态(调试) | | broker pubsub | Show status of the core pubsub process |
+----------------+-----------------------------------------------+ +----------------+-------------------------------------------------+
| broker stats | 查询连接(Client)、会话(Session)、主题(Topic)、| | broker stats | Show statistics of client, session, topic, |
| | 订阅(Subscription)、路由(Route)统计信息 | | | subscription and route of the broker |
+----------------+-----------------------------------------------+ +----------------+-------------------------------------------------+
| broker metrics | 查询MQTT报文(Packet)、消息(Message)收发统计 | | broker metrics | Show metrics of MQTT bytes, packets, messages |
+----------------+-----------------------------------------------+ | | sent/received. |
+----------------+-------------------------------------------------+
查询emqttd消息服务器基本信息包括版本、启动时间等:: Query version, description and uptime of the broker::
$ ./bin/emqttd_ctl broker $ ./bin/emqttd_ctl broker
@ -47,7 +47,10 @@ broker命令查询服务器基本信息启动时间统计数据与性能
uptime : 1 hours, 25 minutes, 24 seconds uptime : 1 hours, 25 minutes, 24 seconds
datetime : 2016-01-16 13:17:32 datetime : 2016-01-16 13:17:32
查询服务器客户端连接(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、路由(Route)统计:: broker stats
------------
Query statistics of MQTT Client, Session, Topic, Subscription and Route::
$ ./bin/emqttd_ctl broker stats $ ./bin/emqttd_ctl broker stats
@ -66,7 +69,10 @@ broker命令查询服务器基本信息启动时间统计数据与性能
topics/count : 54 topics/count : 54
topics/max : 54 topics/max : 54
查询服务器流量(Bytes)、MQTT报文(Packets)、消息(Messages)收发统计:: broker metrics
--------------
Query metrics of Bytes, MQTT Packets and Messages(sent/received)::
$ ./bin/emqttd_ctl broker metrics $ ./bin/emqttd_ctl broker metrics
@ -109,62 +115,62 @@ broker命令查询服务器基本信息启动时间统计数据与性能
cluster cluster
------- -------
cluster命令集群多个emqttd消息服务器节点(进程): Cluster two or more emqttd brokers.
+-----------------------+---------------------+ +-----------------------+--------------------------------+
| cluster join <Node> | 加入集群 | | cluster join <Node> | Join the cluster |
+-----------------------+---------------------+ +-----------------------+--------------------------------+
| cluster leave | 离开集群 | | cluster leave | Leave the cluster |
+-----------------------+---------------------+ +-----------------------+--------------------------------+
| cluster remove <Node> | 从集群删除节点 | | cluster remove <Node> | Remove a node from the cluster |
+-----------------------+---------------------+ +-----------------------+--------------------------------+
| cluster status | 查询集群状态 | | cluster status | Query cluster status and nodes |
+-----------------------+---------------------+ +-----------------------+--------------------------------+
cluster命令集群本机两个emqttd节点示例: Suppose we create two emqttd nodes and cluster them on localhost:
+-----------+---------------------+-------------+ +-----------+---------------------+-------------+
| 目录 | 节点名 | MQTT端口 | | Folder | Node | MQTT Port |
+-----------+---------------------+-------------+ +-----------+---------------------+-------------+
| emqttd1 | emqttd1@127.0.0.1 | 1883 | | emqttd1 | emqttd1@127.0.0.1 | 1883 |
+-----------+---------------------+-------------+ +-----------+---------------------+-------------+
| emqttd2 | emqttd2@127.0.0.1 | 2883 | | emqttd2 | emqttd2@127.0.0.1 | 2883 |
+-----------+---------------------+-------------+ +-----------+---------------------+-------------+
启动emqttd1:: Start emqttd1 node::
cd emqttd1 && ./bin/emqttd start cd emqttd1 && ./bin/emqttd start
启动emqttd2:: Start emqttd2 node::
cd emqttd2 && ./bin/emqttd start cd emqttd2 && ./bin/emqttd start
emqttd2节点与emqttd1集群emqttd2目录下:: Under emqttd2 folder::
$ ./bin/emqttd_ctl cluster join emqttd1@127.0.0.1 $ ./bin/emqttd_ctl cluster join emqttd1@127.0.0.1
Join the cluster successfully. Join the cluster successfully.
Cluster status: [{running_nodes,['emqttd1@127.0.0.1','emqttd2@127.0.0.1']}] Cluster status: [{running_nodes,['emqttd1@127.0.0.1','emqttd2@127.0.0.1']}]
任意节点目录下查询集群状态:: Query cluster status::
$ ./bin/emqttd_ctl cluster status $ ./bin/emqttd_ctl cluster status
Cluster status: [{running_nodes,['emqttd2@127.0.0.1','emqttd1@127.0.0.1']}] Cluster status: [{running_nodes,['emqttd2@127.0.0.1','emqttd1@127.0.0.1']}]
集群消息路由测试:: Message Route between nodes::
# emqttd1节点上订阅x # Subscribe topic 'x' on emqttd1 node
mosquitto_sub -t x -q 1 -p 1883 mosquitto_sub -t x -q 1 -p 1883
# emqttd2节点上向x发布消息 # Publish to topic 'x' on emqttd2 node
mosquitto_pub -t x -q 1 -p 2883 -m hello mosquitto_pub -t x -q 1 -p 2883 -m hello
emqttd2节点离开集群:: emqttd2 leaves the cluster::
cd emqttd2 && ./bin/emqttd_ctl cluster leave cd emqttd2 && ./bin/emqttd_ctl cluster leave
emqttd1节点下删除emqttd2:: Or remove emqttd2 from the cluster on emqttd1 node::
cd emqttd1 && ./bin/emqttd_ctl cluster remove emqttd2@127.0.0.1 cd emqttd1 && ./bin/emqttd_ctl cluster remove emqttd2@127.0.0.1
@ -172,17 +178,20 @@ emqttd1节点下删除emqttd2::
clients clients
------- -------
clients命令查询连接的MQTT客户端。 Query MQTT clients connected to the broker:
+-------------------------+-----------------------------+ +-------------------------+----------------------------------+
| clients list | 查询全部客户端连接 | | clients list | Show all MQTT clients |
+-------------------------+-----------------------------+ +-------------------------+----------------------------------+
| clients show <ClientId> | 根据ClientId查询客户端 | | clients show <ClientId> | Show a MQTT Client |
+-------------------------+-----------------------------+ +-------------------------+----------------------------------+
| clients kick <ClientId> | 根据ClientId踢出客户端 | | clients kick <ClientId> | Kick out a MQTT client |
+-------------------------+-----------------------------+ +-------------------------+----------------------------------+
查询全部客户端连接:: clients lists
-------------
Query All MQTT clients connected to the broker::
$ ./bin/emqttd_ctl clients list $ ./bin/emqttd_ctl clients list
@ -190,169 +199,208 @@ clients命令查询连接的MQTT客户端。
Client(mosqsub/44011-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64961, connected_at=1452929275) Client(mosqsub/44011-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64961, connected_at=1452929275)
... ...
根据ClientId查询客户端:: Properties of the Client:
+--------------+---------------------------------------------------+
| clean_sess | Clean Session Flag |
+--------------+---------------------------------------------------+
| username | Username of the client |
+--------------+---------------------------------------------------+
| peername | Peername of the TCP connection |
+--------------+---------------------------------------------------+
| connected_at | The timestamp when client connected to the broker |
+--------------+---------------------------------------------------+
clients show <ClientId>
-----------------------
Show a specific MQTT Client::
./bin/emqttd_ctl clients show "mosqsub/43832-airlee.lo" ./bin/emqttd_ctl clients show "mosqsub/43832-airlee.lo"
Client(mosqsub/43832-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64896, connected_at=1452929113) Client(mosqsub/43832-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64896, connected_at=1452929113)
clients kick <ClientId>
-----------------------
根据ClientId踢出客户端:: Kick out a MQTT Client::
./bin/emqttd_ctl clients kick "clientid" ./bin/emqttd_ctl clients kick "clientid"
返回Client对象的属性:
+--------------+-----------------------------+
| clean_sess | 清除会话标记 |
+--------------+-----------------------------+
| username | 用户名 |
+--------------+-----------------------------+
| peername | 对端TCP地址 |
+--------------+-----------------------------+
| connected_at | 客户端连接时间 |
+--------------+-----------------------------+
-------- --------
sessions sessions
-------- --------
sessions命令查询MQTT连接会话。emqttd消息服务器会为每个连接创建会话clean_session标记true创建临时(transient)会话clean_session标记为false创建持久会话(persistent)。 Query all MQTT sessions. The broker will create a session for each MQTT client. Persistent Session if clean_session flag is true, transient session otherwise.
+--------------------------+-----------------------------+ +--------------------------+-------------------------------+
| sessions list | 查询全部会话 | | sessions list | Query all Sessions |
+--------------------------+-----------------------------+ +--------------------------+-------------------------------+
| sessions list persistent | 查询全部持久会话 | | sessions list persistent | Query all persistent Sessions |
+--------------------------+-----------------------------+ +--------------------------+-------------------------------+
| sessions list transient | 查询全部临时会话 | | sessions list transient | Query all transient Sessions |
+--------------------------+-----------------------------+ +--------------------------+-------------------------------+
| sessions show <ClientId> | 根据ClientID查询会话 | | sessions show <ClientId> | Show a session |
+--------------------------+-----------------------------+ +--------------------------+-------------------------------+
查询全部会话:: sessions list
-------------
Query all sessions::
$ ./bin/emqttd_ctl sessions list $ ./bin/emqttd_ctl sessions list
Session(clientid, clean_sess=false, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935508) Session(clientid, clean_sess=false, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935508)
Session(mosqsub/44101-airlee.lo, clean_sess=true, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935401) Session(mosqsub/44101-airlee.lo, clean_sess=true, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935401)
查询全部持久会话:: Properties of Session:
TODO:??
+-------------------+----------------------------------------------------------------+
| clean_sess | clean sess flag. false: persistent, true: transient |
+-------------------+----------------------------------------------------------------+
| max_inflight | Inflight window (Max number of messages delivering) |
+-------------------+----------------------------------------------------------------+
| inflight_queue | Inflight Queue Size |
+-------------------+----------------------------------------------------------------+
| message_queue | Message Queue Size |
+-------------------+----------------------------------------------------------------+
| message_dropped | Number of Messages Dropped for queue is full |
+-------------------+----------------------------------------------------------------+
| awaiting_rel | The number of QoS2 messages received and waiting for PUBREL |
+-------------------+----------------------------------------------------------------+
| awaiting_ack | The number of QoS1/2 messages delivered and waiting for PUBACK |
+-------------------+----------------------------------------------------------------+
| awaiting_comp | The number of QoS2 messages delivered and waiting for PUBCOMP |
+-------------------+----------------------------------------------------------------+
| created_at | Timestamp when the session is created |
+-------------------+----------------------------------------------------------------+
sessions list persistent
------------------------
Query all persistent sessions::
$ ./bin/emqttd_ctl sessions list persistent $ ./bin/emqttd_ctl sessions list persistent
Session(clientid, clean_sess=false, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935508) Session(clientid, clean_sess=false, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935508)
查询全部临时会话:: sessions list transient
-----------------------
Query all transient sessions::
$ ./bin/emqttd_ctl sessions list transient $ ./bin/emqttd_ctl sessions list transient
Session(mosqsub/44101-airlee.lo, clean_sess=true, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935401) Session(mosqsub/44101-airlee.lo, clean_sess=true, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935401)
根据ClientId查询会话:: sessions show <ClientId>
------------------------
Show a session::
$ ./bin/emqttd_ctl sessions show clientid $ ./bin/emqttd_ctl sessions show clientid
Session(clientid, clean_sess=false, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935508) Session(clientid, clean_sess=false, max_inflight=100, inflight_queue=0, message_queue=0, message_dropped=0, awaiting_rel=0, awaiting_ack=0, awaiting_comp=0, created_at=1452935508)
返回Session对象属性:
+-------------------+------------------------------------+
| clean_sess | false: 持久会话true: 临时会话 |
+-------------------+------------------------------------+
| max_inflight | 飞行窗口(最大允许同时下发消息数) |
+-------------------+------------------------------------+
| inflight_queue | 当前正在下发的消息数 |
+-------------------+------------------------------------+
| message_queue | 当前缓存消息数 |
+-------------------+------------------------------------+
| message_dropped | 会话丢掉的消息数 |
+-------------------+------------------------------------+
| awaiting_rel | 等待客户端发送PUBREL的QoS2消息数 |
+-------------------+------------------------------------+
| awaiting_ack | 等待客户端响应PUBACK的QoS1/2消息数 |
+-------------------+------------------------------------+
| awaiting_comp | 等待客户端响应PUBCOMP的QoS2消息数 |
+-------------------+------------------------------------+
| created_at | 会话创建时间戳 |
+-------------------+------------------------------------+
------ ------
topics topics
------ ------
topics命令查询emqttd消息服务器当前的主题(Topic)表。 Query topic table of the broker.
'topics list'查询全部主题(Topic):: topics list
-----------
Query all the topics::
$ ./bin/emqttd_ctl topics list $ ./bin/emqttd_ctl topics list
y: ['emqttd2@127.0.0.1'] topic1: ['emqttd2@127.0.0.1']
x: ['emqttd1@127.0.0.1','emqttd2@127.0.0.1'] topic2: ['emqttd1@127.0.0.1','emqttd2@127.0.0.1']
'topics show <Topic>'查询某个主题(Topic):: topics show <Topic>
-------------------
$ ./bin/emqttd_ctl topics show x Show a topic::
x: ['emqttd1@127.0.0.1','emqttd2@127.0.0.1'] $ ./bin/emqttd_ctl topics show topic2
返回结果显示主题(Topic)所在集群节点列表。 topic2: ['emqttd1@127.0.0.1','emqttd2@127.0.0.1']
The result will show which nodes the topic is on.
------------- -------------
subscriptions subscriptions
------------- -------------
subscriptions命令查询消息服务器的订阅(Subscription)表。 Query the subscription table of the broker:
+--------------------------------------------+-------------------------+ +--------------------------------------------+--------------------------------------+
| subscriptions list | 查询全部订阅 | | subscriptions list | Query all subscriptions |
+--------------------------------------------+-------------------------+ +--------------------------------------------+--------------------------------------+
| subscriptions show <ClientId> | 查询某个ClientId的订阅 | | subscriptions show <ClientId> | Show a subscription |
+--------------------------------------------+-------------------------+ +--------------------------------------------+--------------------------------------+
| subscriptions add <ClientId> <Topic> <Qos> | 手工添加一条订阅 | | subscriptions add <ClientId> <Topic> <Qos> | Add a static subscription manually |
+--------------------------------------------+-------------------------+ +--------------------------------------------+--------------------------------------+
| subscriptions del <ClientId> <Topic> | 手工删除一条订阅 | | subscriptions del <ClientId> <Topic> | Remove a static subscription manually|
+--------------------------------------------+-------------------------+ +--------------------------------------------+--------------------------------------+
查询全部订阅:: subscriptions list
------------------
Query all subscriptions::
$ ./bin/emqttd_ctl subscriptions list $ ./bin/emqttd_ctl subscriptions list
mosqsub/45744-airlee.lo: [{<<"y">>,0},{<<"x">>,0}] mosqsub/45744-airlee.lo: [{<<"y">>,0},{<<"x">>,0}]
.. todo:: 打印结果格式需修改。 subscriptions show <ClientId>
-----------------------------
查询某个ClientId的订阅:: Show the subscriptions of a MQTT client::
$ ./bin/emqttd_ctl subscriptions show clientid $ ./bin/emqttd_ctl subscriptions show clientid
clientid: [{<<"x">>,1},{<<"topic2">>,1},{<<"topic3">>,1}] clientid: [{<<"x">>,1},{<<"topic2">>,1},{<<"topic3">>,1}]
手工添加一条订阅:: subscriptions add <ClientId> <Topic> <QoS>
------------------------------------------
Add a static subscription manually::
$ ./bin/emqttd_ctl subscriptions add clientid new_topic 1 $ ./bin/emqttd_ctl subscriptions add clientid new_topic 1
ok ok
手工删除一条订阅:: subscriptions del <ClientId> <Topic>
------------------------------------
Remove a static subscription manually::
$ ./bin/emqttd_ctl subscriptions del clientid new_topic $ ./bin/emqttd_ctl subscriptions del clientid new_topic
ok ok
------- -------
plugins plugins
------- -------
List, load or unload plugins of emqttd broker.
plugins命令用于加载、卸载、查询插件应用。emqttd消息服务器通过插件扩展认证、定制功能插件置于plugins/目录下。
+---------------------------+-------------------------+ +---------------------------+-------------------------+
| plugins list | 列出全部插件(Plugin) | | plugins list | List all plugins |
+---------------------------+-------------------------+ +---------------------------+-------------------------+
| plugins load <Plugin> | 加载插件(Plugin) | | plugins load <Plugin> | Load Plugin |
+---------------------------+-------------------------+ +---------------------------+-------------------------+
| plugins unload <Plugin> | 卸载插件(Plugin) | | plugins unload <Plugin> | Unload (Plugin) |
+---------------------------+-------------------------+ +---------------------------+-------------------------+
列出插件:: plugins list
------------
List all plugins::
$ ./bin/emqttd_ctl plugins list $ ./bin/emqttd_ctl plugins list
@ -364,99 +412,70 @@ plugins命令用于加载、卸载、查询插件应用。emqttd消息服务器
Plugin(emqttd_recon, version=0.16.0, description=emqttd recon plugin, active=false) Plugin(emqttd_recon, version=0.16.0, description=emqttd recon plugin, active=false)
Plugin(emqttd_stomp, version=0.16.0, description=Stomp Protocol Plugin for emqttd broker, active=false) Plugin(emqttd_stomp, version=0.16.0, description=Stomp Protocol Plugin for emqttd broker, active=false)
插件属性: Properties of a plugin:
+-------------+-----------------+ +-------------+--------------------------+
| version | 插件版本 | | version | Plugin Version |
+-------------+-----------------+ +-------------+--------------------------+
| description | 插件描述 | | description | Plugin Description |
+-------------+-----------------+ +-------------+--------------------------+
| active | 是否已加载 | | active | If the plugin is Loaded |
+-------------+-----------------+ +-------------+--------------------------+
加载插件:: load <Plugin>
-------------
Load a Plugin::
$ ./bin/emqttd_ctl plugins load emqttd_recon $ ./bin/emqttd_ctl plugins load emqttd_recon
Start apps: [recon,emqttd_recon] Start apps: [recon,emqttd_recon]
Plugin emqttd_recon loaded successfully. Plugin emqttd_recon loaded successfully.
卸载插件:: unload <Plugin>
---------------
Unload a Plugin::
$ ./bin/emqttd_ctl plugins unload emqttd_recon $ ./bin/emqttd_ctl plugins unload emqttd_recon
Plugin emqttd_recon unloaded successfully. Plugin emqttd_recon unloaded successfully.
------- -------
bridges bridges
------- -------
plugins命令用于加载、卸载、查询插件应用。emqttd消息服务器通过插件扩展认证、定制功能插件置于plugins/目录下。 Bridge two or more emqttd brokers::
+---------------------------+-------------------------+ --------- ---------
| plugins list | 列出全部插件(Plugin) | Publisher --> | node1 | --Bridge Forward--> | node2 | --> Subscriber
+---------------------------+-------------------------+ --------- ---------
| plugins load <Plugin> | 加载插件(Plugin) |
+---------------------------+-------------------------+
| plugins unload <Plugin> | 卸载插件(Plugin) |
+---------------------------+-------------------------+
列出插件:: commands for bridge:
$ ./bin/emqttd_ctl plugins list +----------------------------------------+------------------------------+
| bridges list | List all bridges |
+----------------------------------------+------------------------------+
| bridges options | Show bridge options |
+----------------------------------------+------------------------------+
| bridges start <Node> <Topic> | Create a bridge |
+----------------------------------------+------------------------------+
| bridges start <Node> <Topic> <Options> | Create a bridge with options |
+----------------------------------------+------------------------------+
| bridges stop <Node> <Topic> | Delete a bridge |
+----------------------------------------+------------------------------+
Plugin(emqttd_dashboard, version=0.16.0, description=emqttd web dashboard, active=true) Suppose we create a bridge between emqttd1 and emqttd2 on localhost:
Plugin(emqttd_plugin_mysql, version=0.16.0, description=emqttd Authentication/ACL with MySQL, active=false)
Plugin(emqttd_plugin_pgsql, version=0.16.0, description=emqttd PostgreSQL Plugin, active=false)
Plugin(emqttd_plugin_redis, version=0.16.0, description=emqttd Redis Plugin, active=false)
Plugin(emqttd_plugin_template, version=0.16.0, description=emqttd plugin template, active=false)
Plugin(emqttd_recon, version=0.16.0, description=emqttd recon plugin, active=false)
Plugin(emqttd_stomp, version=0.16.0, description=Stomp Protocol Plugin for emqttd broker, active=false)
插件属性: +---------+---------------------+-----------+
| Name | Node | MQTT Port |
+---------+---------------------+-----------+
| emqttd1 | emqttd1@127.0.0.1 | 1883 |
+---------+---------------------+-----------+
| emqttd2 | emqttd2@127.0.0.1 | 2883 |
+---------+---------------------+-----------+
+-------------+-----------------+ The bridge will forward all the the 'sensor/#' messages from emqttd1 to emqttd2::
| version | 插件版本 |
+-------------+-----------------+
| description | 插件描述 |
+-------------+-----------------+
| active | 是否已加载 |
+-------------+-----------------+
加载插件::
$ ./bin/emqttd_ctl plugins load emqttd_recon
Start apps: [recon,emqttd_recon]
Plugin emqttd_recon loaded successfully.
卸载插件::
$ ./bin/emqttd_ctl plugins unload emqttd_recon
Plugin emqttd_recon unloaded successfully.
-------
bridges
-------
bridges命令用于在多台emqttd服务器节点间创建桥接。
+----------------------------------------+---------------------------+
| bridges list | 查询全部桥接 |
+----------------------------------------+---------------------------+
| bridges options | 查询创建桥接选项 |
+----------------------------------------+---------------------------+
| bridges start <Node> <Topic> | 创建桥接 |
+----------------------------------------+---------------------------+
| bridges start <Node> <Topic> <Options> | 创建桥接并带选项设置 |
+----------------------------------------+---------------------------+
| bridges stop <Node> <Topic> | 删除桥接 |
+----------------------------------------+---------------------------+
创建一条emqttd1 -> emqttd2节点的桥接转发传感器主题(Topic)消息到emqttd2::
$ ./bin/emqttd_ctl bridges start emqttd2@127.0.0.1 sensor/# $ ./bin/emqttd_ctl bridges start emqttd2@127.0.0.1 sensor/#
@ -466,9 +485,9 @@ bridges命令用于在多台emqttd服务器节点间创建桥接。
bridge: emqttd1@127.0.0.1--sensor/#-->emqttd2@127.0.0.1 bridge: emqttd1@127.0.0.1--sensor/#-->emqttd2@127.0.0.1
测试emqttd1--sensor/#-->emqttd2的桥接:: The the 'emqttd1--sensor/#-->emqttd2' bridge::
#emqttd2节点上 #emqttd2 node
mosquitto_sub -t sensor/# -p 2883 -d mosquitto_sub -t sensor/# -p 2883 -d
@ -476,7 +495,10 @@ bridges命令用于在多台emqttd服务器节点间创建桥接。
mosquitto_pub -t sensor/1/temperature -m "37.5" -d mosquitto_pub -t sensor/1/temperature -m "37.5" -d
查询bridge创建选项设置:: bridges options
---------------
Show bridge options::
$ ./bin/emqttd_ctl bridges options $ ./bin/emqttd_ctl bridges options
@ -488,31 +510,37 @@ bridges命令用于在多台emqttd服务器节点间创建桥接。
Example: Example:
qos=2,prefix=abc/,suffix=/yxz,queue=1000 qos=2,prefix=abc/,suffix=/yxz,queue=1000
删除emqttd1--sensor/#-->emqttd2的桥接:: bridges stop <Node> <Topic>
---------------------------
Delete the emqttd1--sensor/#-->emqttd2 bridge::
$ ./bin/emqttd_ctl bridges stop emqttd2@127.0.0.1 sensor/# $ ./bin/emqttd_ctl bridges stop emqttd2@127.0.0.1 sensor/#
bridge is stopped. bridge is stopped.
-- --
vm vm
-- --
vm命令用于查询Erlang虚拟机负载、内存、进程、IO信息。 Query the load, cpu, memory, processes and IO information of the Erlang VM.
+-------------+------------------------+ +-------------+-----------------------------------+
| vm all | 查询VM全部信息 | | vm all | Query all |
+-------------+------------------------+ +-------------+-----------------------------------+
| vm load | 查询VM负载 | | vm load | Query VM Load |
+-------------+------------------------+ +-------------+-----------------------------------+
| vm memory | 查询VM内存 | | vm memory | Query Memory Usage |
+-------------+------------------------+ +-------------+-----------------------------------+
| vm process | 查询VM Erlang进程数量 | | vm process | Query Number of Erlang Processes |
+-------------+------------------------+ +-------------+-----------------------------------+
| vm io | 查询VM io最大文件句柄 | | vm io | Query Max Fds of VM |
+-------------+------------------------+ +-------------+-----------------------------------+
查询VM负载:: vm load
-------
Query load::
$ ./bin/emqttd_ctl vm load $ ./bin/emqttd_ctl vm load
@ -520,7 +548,10 @@ vm命令用于查询Erlang虚拟机负载、内存、进程、IO信息。
cpu/load5 : 2.60 cpu/load5 : 2.60
cpu/load15 : 2.36 cpu/load15 : 2.36
查询VM内存:: vm memory
---------
Query memory::
$ ./bin/emqttd_ctl vm memory $ ./bin/emqttd_ctl vm memory
@ -534,14 +565,20 @@ vm命令用于查询Erlang虚拟机负载、内存、进程、IO信息。
memory/code : 13401565 memory/code : 13401565
memory/ets : 1082848 memory/ets : 1082848
查询Erlang进程数量:: vm process
----------
Query number of erlang processes::
$ ./bin/emqttd_ctl vm process $ ./bin/emqttd_ctl vm process
process/limit : 8192 process/limit : 8192
process/count : 221 process/count : 221
查询IO最大句柄数:: vm io
-----
Query max, active file descriptors of IO::
$ ./bin/emqttd_ctl vm io $ ./bin/emqttd_ctl vm io
@ -552,57 +589,71 @@ vm命令用于查询Erlang虚拟机负载、内存、进程、IO信息。
trace trace
----- -----
trace命令用于追踪某个客户端或Topic打印日志信息到文件。 Trace MQTT packets, messages(sent/received) by ClientId or Topic.
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| trace list | 查询全部开启的追踪 | | trace list | List all the traces |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| trace client <ClientId> <LogFile> | 开启Client追踪日志到文件 | | trace client <ClientId> <LogFile> | Trace a client |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| trace client <ClientId> off | 关闭Client追踪 | | trace client <ClientId> off | Stop to trace the client |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| trace topic <Topic> <LogFile> | 开启Topic追踪日志到文件 | | trace topic <Topic> <LogFile> | Trace a topic |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| trace topic <Topic> off | 关闭Topic追踪 | | trace topic <Topic> off | Stop to trace the topic |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
开启Client追踪:: trace client <ClientId> <LogFile>
---------------------------------
Start to trace a client::
$ ./bin/emqttd_ctl trace client clientid log/clientid_trace.log $ ./bin/emqttd_ctl trace client clientid log/clientid_trace.log
trace client clientid successfully. trace client clientid successfully.
关闭Client追踪:: trace client <ClientId> off
---------------------------
Stop to trace the client::
$ ./bin/emqttd_ctl trace client clientid off $ ./bin/emqttd_ctl trace client clientid off
stop to trace client clientid successfully. stop to trace client clientid successfully.
开启Topic追踪:: trace topic <Topic> <LogFile>
-----------------------------
Start to trace a topic::
$ ./bin/emqttd_ctl trace topic topic log/topic_trace.log $ ./bin/emqttd_ctl trace topic topic log/topic_trace.log
trace topic topic successfully. trace topic topic successfully.
关闭Topic追踪:: trace topic <Topic> off
-----------------------
Stop to trace the topic::
$ ./bin/emqttd_ctl trace topic topic off $ ./bin/emqttd_ctl trace topic topic off
stop to trace topic topic successfully. stop to trace topic topic successfully.
查询全部开启的追踪:: trace list
----------
List all traces::
$ ./bin/emqttd_ctl trace list $ ./bin/emqttd_ctl trace list
trace client clientid -> log/clientid_trace.log trace client clientid -> log/clientid_trace.log
trace topic topic -> log/topic_trace.log trace topic topic -> log/topic_trace.log
--------- ---------
listeners listeners
--------- ---------
listeners命令用于查询开启的TCP服务监听器:: Show all the TCP listeners::
$ ./bin/emqttd_ctl listeners $ ./bin/emqttd_ctl listeners
@ -627,21 +678,21 @@ listeners命令用于查询开启的TCP服务监听器::
current_clients : 0 current_clients : 0
shutdown_count : [] shutdown_count : []
listener参数说明: listener parameters:
+-----------------+-----------------------------------+ +-----------------+--------------------------------------+
| acceptors | TCP Acceptor | | acceptors | TCP Acceptor Pool |
+-----------------+-----------------------------------+ +-----------------+--------------------------------------+
| max_clients | 最大允许连接数 | | max_clients | Max number of clients |
+-----------------+-----------------------------------+ +-----------------+--------------------------------------+
| current_clients | 当前连接数 | | current_clients | Count of current clients |
+-----------------+-----------------------------------+ +-----------------+--------------------------------------+
| shutdown_count | Socket关闭原因统计 | | shutdown_count | Statistics of client shutdown reason |
+-----------------+-----------------------------------+ +-----------------+---------------------------------------+
---------- ------
mnesia mnesia
---------- ------
查询mnesia数据库当前状态用于调试。 Query system_info of mnesia database.