# EMQX

{% hint style="info" %}

#### EMQX

EMQX is an enterprise-grade, highly scalable MQTT broker built for massive IoT deployments and mission-critical applications requiring high availability and performance. Unlike lighter-weight brokers, EMQX is designed to handle millions of concurrent device connections with clustering capabilities that enable horizontal scaling across multiple nodes for fault tolerance and load distribution.&#x20;

Businesses leverage EMQX for large-scale industrial IoT scenarios such as connected vehicle platforms processing real-time telemetry from entire fleets, smart city infrastructure coordinating thousands of sensors across traffic systems and utilities, telecommunications companies managing IoT SIM connectivity, and manufacturing enterprises running Industry 4.0 initiatives with hundreds of production lines publishing data simultaneously.&#x20;

EMQX offers advanced features like built-in rule engines for data transformation and routing, native integration with time-series databases (InfluxDB, TimescaleDB), message persistence, and comprehensive monitoring dashboards - reducing the need for separate middleware components. Its support for MQTT 5.0 features, WebSocket connections, and multi-protocol gateways (CoAP, LwM2M) makes it particularly valuable for organizations consolidating diverse device ecosystems. Companies often deploy EMQX as the messaging backbone between edge devices and data platforms like Pentaho, enabling real-time data pipelines that feed operational dashboards, predictive maintenance systems, and business intelligence applications.
{% endhint %}

Select OS:

{% tabs %}
{% tab title="Linux" %}
{% hint style="info" %}
Deploys EMQX container on localhost:1883
{% endhint %}

1. Copy over the required files.

```bash
cd
cd ~/Workshop--Data-Integration/Setup/Streaming/EMQX/linux
chmod +x copy-emqx.sh && ./copy-emqx.sh
```

<figure><img src="/files/uPPOPOF3BfqDLN2W77qP" alt=""><figcaption><p>Create directories &#x26; copy assets</p></figcaption></figure>

2. To deploy the 'EMQX' container.

```bash
cd
cd ~/Streaming/emqx
./run-docker-emqx.sh
```

<figure><img src="/files/yGXrVcBMeVcyhM3eeqyC" alt=""><figcaption><p>Deploy EMQX</p></figcaption></figure>

3. Check the container has been successfully deployed.&#x20;

```bash
# Check if EMQX container is running
docker ps | grep emqx-broker

# Check for any EMQX containers
docker ps | grep emqx

# Show all containers (including stopped) and filter
docker ps -a | grep emqx-broker
```

4. Log into EMQX dashboard.

{% embed url="<http://localhost:18083/#/login?to=/clients>" %}

<figure><img src="/files/U4uOoE87WxjHYlNR0kSY" alt=""><figcaption><p>EMQX LogIn</p></figcaption></figure>

<table data-header-hidden><thead><tr><th width="164"></th><th></th></tr></thead><tbody><tr><td>Username</td><td>admin</td></tr><tr><td>Password</td><td>public</td></tr></tbody></table>

{% hint style="info" %}
On first login you'll be asked to change your password or Skip.

Password: Password123
{% endhint %}

<figure><img src="/files/hvnlvBfdfz9Ac3HcAo32" alt=""><figcaption><p>EMQX dashboard</p></figcaption></figure>
{% endtab %}

{% tab title="Windows" %}
{% hint style="info" %}
**Install Mosquitto with Cedalo Management Center**
{% endhint %}

x

1. Create a Streaming/MQTT folder and copy the required files.

{% hint style="info" %}
**Create directory & copy - PowerShell**

```powershell
cd \
cd C:\Workshop--Data-Integration\Setup\Streaming\Mosquitto
.\copy-mosquitto.ps1
```

{% endhint %}

2. Check the Directory has been created and the files copied over.

<figure><img src="/files/aIq6knq44qomePBM8QZe" alt=""><figcaption></figcaption></figure>

3. Execute the docker-compose script to create the container.

{% hint style="info" %}
**Mosquitto Container - PowerShell**

```powershell
cd \
cd C:\Streaming\MQTT\mosquitto
.\run-docker-mosquitto.ps1
```

{% endhint %}

<figure><img src="/files/pscddLXesXHj0ZxvkWFl" alt=""><figcaption></figcaption></figure>

4. Check the containers are up and running.

<figure><img src="/files/QmZREjspkj70IW22NhMY" alt=""><figcaption></figcaption></figure>

x

***

**Cedalo Management Center**

{% tabs %}
{% tab title="Dashboard" %}
{% hint style="info" %}
**Dashboard**
{% endhint %}

1. Log into Cedalo Management Center:

Username: cedalo

Password: password

{% embed url="<http://localhost:8088>" %}

<figure><img src="/files/zvLY8qW98DtR4fXMfkjw" alt=""><figcaption></figcaption></figure>

2. Check that the dashboard displays the Mosquitto Broker information

x
{% endtab %}

{% tab title="Second Tab" %}
x
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/pentaho-data-integration/setup/use-cases/streaming/mosquitto.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
