Dashboard

Introduction

EMQX Broker provides Dashboard to facilitate users to manage equipment and monitor related indicators. Through Dashboard, you can view the basic information of the server, load and statistical data, you can view the connection status of a client and even disconnect it, and you can also dynamically load and unload specified plug-ins. In addition, EMQX Dashboard also provides a visual operation interface of the rule engine, and also integrates a simple MQTT client tool for user testing.

Start Dashboard

The EMQX Dashboard function is implemented by the emqx-dashboardDashboard - 图1 (opens new window) plugin, which is enabled by default, and it will be automatically loaded when the EMQX Broker starts. If you wish to disable the Dashboard function, you can modify {emqx_dashboard, true} in data/loaded_plugins to {emqx_dashboard, false}.

  1. {emqx_dashboard, true}.

View Dashboard

EMQX Dashboard is a web application, and you can access it directly through the browser without installing any other software.

When EMQX Broker runs successfully on your local computer and EMQX Dashboard is enabled by default, you can visit http://localhost:18083 to view your Dashboard. The default user name is admin and the password is public .

Configure Dashboard

You can view or modify the configuration of EMQX Dashboard in etc/plugins/emqx_dashboard.conf. Note that etc here does not refer to the system directory, see directory structure for details.

EMQX Dashboard configuration items can be divided into two parts of default user and listener:

Default User

EMQX Dashboard can configure multiple users, but only the default user can be configured in the configuration file.

It should be noted that once you change the password of the default user through Dashboard, the relevant information of the default user will be based on your latest changes on the Dashboard, and the default user configuration in the configuration file will be ignored.

Listeners

EMQX Dashboard supports both HTTP and HTTPS Listeners, but only HTTP Listeners with a listening port of 18083 are enabled by default. For the introduction of Listeners, please refer to Configuration Instructions.

For the detailed configuration item description of Dashboard, please refer to Configuration Item.

Dashboard interface

In order to enable users to quickly locate and switch the current position during operation and browsing, EMQX Dashboard adopts the mode of side navigation. By default, Dashboard includes the following first-level navigation items:

NavigationDescription
MONITORINGProvide display pages for server and client monitoring information
RULE ENGINEProvide a visual operation page of the rule engine
MANAGEMENTProvide management pages for extensions of plugins and applications
TOOLSProvide WebSocket client tool and HTTP API quick check page
ADMINProvide Dashboard user management and display settings pages

MONITORING

EMQX Dashboard provides a very rich data monitoring project, that completely covers the server and client. All of this information will be reasonably displayed to users on the page under MONITORING.

Overview

As the default display page of Dashboard, Overview provides detailed information of EMQX Broker ’s current nodes and key information of other nodes in the cluster to help users quickly get the status of each node.

image

Clients

The Clients page provides a list of clients connected to the specified node, and also supports direct client search via Client ID. In addition to viewing the basic information of the client, you can also click the Kick Out button on the right side of each record to kick out the client. Note that this operation will disconnect the client and terminate its session.

The Clients page uses a snapshot to display the client list. Therefore, when the client status changes, the page does not automatically refresh, and you need to manually refresh the browser to get the latest client data.

image

If you can not get the information you need in the client list, you can click Client ID to view the detailed information of the client.

image

We divided the various fields in the client details into connection, session and metrics. The following is the description of each field:

Connection

FieldDescription
NodeName of the node to which the client connects
Client IDClient ID
UsernameThe user name used when the client connects, for security reasons, the password will not be displayed
ProtocolThe protocol name and version used by the client
IP AddressThe client’s network IP address, which can be IPv4 or IPv6
PortClient source port
Is BridgeIndicate whether the client connects via bridge
Connected AtClient connection time
Disconnected AtClient offline time
Connection StatusClient connection status
ZoneIndicates the configuration group used by the client
KeepaliveKeep-alive time, unit: second

Session

FieldDescription
Clean SessionIndicates whether the client has used a brand new session
Expiry IntervalSession expiration interval, unit: seconds
Created AtSession creation time
Subscriptions CountCurrent number of subscriptions
Maximum Subscriptions CountMaximum number of subscriptions allowed
Inflight Window SizeCurrent inflight window size, please refer to InFlight Window and Message Queue
Maximum Inflight Window SizeMaximum size of inflight window
Message Queue SizeCurrent message queue size, please refer to InFlight Window and Message Queue
Maximum Message Queue SizeMaximum size of message queue
Uncomfirmed PUBREC PacketsNumber of unconfirmed PUBREC messages
Maximum Uncomfirmed PUBREC PacketsMaximum number of unconfirmed PUBREC messages allowed

Metric

FieldDescription
Number of Bytes ReceivedNumber of bytes received by EMQX Broker (same below)
Number of TCP Packets ReceivedNumber of TCP Packets Received
Number of MQTT Packets ReceivedNumber of MQTT Packets Received
Number of PUBLISH Packets ReceivedNumber of PUBLISH Packets Received
Number of Bytes SentNumber of Bytes Sent
Number of TCP Packets SentNumber of TCP Packets Sent
Number of MQTT Packets SentNumber of MQTT Packets Sent
Number of PUBLISH Packets SentNumber of PUBLISH Packets Sent

In the Subscriptions tab of the client details, you can view the subscription information of the current client, and create or cancel subscriptions:

image

Subscriptions

The Subscriptions page provides all subscription information under the specified node, and supports users to query all subscriptions of the specified client through the Client ID.

image

RULE ENGINE

The rule engine of EMQX Broker can flexibly process messages and events, such as converting the message into a specified format and storing it in a database table or resending it to the message queue. In order to facilitate users to better use the rules engine, EMQX Dashboard provides corresponding visual operation pages, and you can click the RULE ENGINE navigation item to access these pages.

Due to the complexity of the related concepts of the rule engine, the operations involved may occupy a considerable amount of space. Considering your reading experience, we will introduce the rule engine through additional documents of rule-engine.

MANAGEMENT

Currently, the EMQX Dashboard’s MANAGEMENT navigation item mainly includes an monitoring management page for extension plug-in and management page of AppID and AppSerect for HTTP API authentication.

Plugins

The Plugins page lists all the plug-ins that EMQX Broker can find, including the official plug-ins of EMQX and the plug-ins that you developed in accordance with the official standards of EMQX. You can check the current running status of the plug-ins and start and stop the plug-ins at any time on this page.

image

You can see that in addition to emqx-dashboardDashboard - 图8 (opens new window), EMQX Broker will also start other 4 plugins by default:

image

Applications

The Applications page lists the currently created applications. You can perform operations such as creating applications, temporarily disabling or starting access permissions for an application on this page. EMQX Broker will create a default application with AppID of admin and AppSecret of publish for users to access for the first time:

image

You can click the New App button in the upper right corner of the Application page to create a new application, where AppID and AppSecret are required. After the creation is complete, you can click the View button to view the application details, and AppSecret will also be displayed in the details. The following is a description of the relevant fields:

FieldDescription
AppIDIt is used to distinguish different applications, so it is not repeatable. When creating an application, Dashboard will automatically generate a random suggested application ID for you
AppNameIt can be repeated, but for your own convenience, we do not recommend using a duplicate application name
AppSecretThe application key assigned by EMQX Broker that can be viewed in the application details
Expired dateThe expiration time of the application, the default is to never expire
RemarkYour description of the application, facilitate later management
StatusThere are only two types of application status: Allowed and Denied. In Denied status, EMQX Broker will deny the access request of HTTP API using the AppID and App Secret

TOOLS

Currently, the TOOLS navigation item of EMQX Dashboard mainly includes WebSocket client tool page and HTTP API quick check page.

Websocket

The Websocket page provides you with a simple but effective WebSocket client tool, which includes connection, subscription and publishing functions. At the same time, you can view the message data you send and receive, we hope it can help you quickly complete test verification of certain scenarios or functions:

image

HTTP API

The HTTP API page lists all the HTTP APIs currently supported by EMQX Broker and their descriptions:

image

ADMIN

Users

You can view and manage users who can access and operate Dashboard on the Users page:

image

Settings

Currently, EMQX Dashboard only supports the modification of the topic and language settings:

image

Help

If you encounter any problems in using EMQX Broker, we provide you with links to FAQ and other documents on the Help page. If our existing documents still cannot solve your problem, you can go to our open source community on Github to consult our technical staff.

image