In this tutorial, we will show you how to install Mosquitto MQTT on Ubuntu 20.04 LTS. For those of you who didn’t know, MQTT, an acronym for Message Queue Telemetry Transport, is a lightweight communication protocol based on the publisher/subscriber concept. It represents an alternative to the classic client/server architecture, widely used in the Internet of Things. It is commonly used for geo-tracking fleets of vehicles, home automation, environmental sensor networks, and utility-scale data collection.
This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo
‘ to the commands to get root privileges. I will show you the step-by-step installation of the Mosquitto MQTT on Ubuntu 20.04 (Focal Fossa). You can follow the same instructions for Ubuntu 18.04, 16.04, and any other Debian-based distribution like Linux Mint.
Prerequisites
- A server running one of the following operating systems: Ubuntu 20.04, 18.04, and any other Debian-based distribution like Linux Mint or elementary OS.
- It’s recommended that you use a fresh OS install to prevent any potential issues.
- An active internet connection. You’ll need an internet connection to download the necessary packages and dependencies for Mosquitto MQTT.
- A
non-root sudo user
or access to theroot user
. We recommend acting as anon-root sudo user
, however, as you can harm your system if you’re not careful when acting as the root.
Install Mosquitto MQTT on Ubuntu 20.04 LTS Focal Fossa
Step 1. First, make sure that all your system packages are up-to-date by running the following apt
commands in the terminal.
sudo apt update sudo apt upgrade sudo apt install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
Step 2. Installing Mosquitto MQTT on Ubuntu 20.04.
First, we create a user with the name mosquito which is used to execute the MQTT application:
sudo adduser mosquitto sudo usermod -aG sudo mosquitto.
Now we download the MQTT installation packages from the official page:
wget https://mosquitto.org/files/source/mosquitto-2.0.11.tar.gz tar zxvf mosquitto-2.0.11.tar.gz
Next, go into the directory and compile also install the MQTT server on your system:
make sudo make install
Step 3. Configure Mosquitto MQTT.
Now time to configure the MQTT server. We will create a user with the name mqtt-idroot
, this user is a system used for running the Mosquitto server which will be used to make a connection from the client. In this step, we will be prompted to make a new password:
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-idroot
Next, create a configuration file for Mosquitto MQTT Server:
nano /etc/mosquitto/mosquitto.conf
Add the following lines:
persistence true persistence_location /var/lib/mosquitto/ persistence_file mosquitto.db log_dest syslog log_dest stdout log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true allow_anonymous true password_file /etc/mosquitto/pwfile
Save and close, then run sudo ldconfig
command line:
sudo ldconfig
Step 4. Create a Systemd Service file for Mosquitto MQTT.
Now create a Mosquitto systemd
unit file by creating a new file /etc/systemd/system/mosquitto.service:
nano /etc/systemd/system/mosquitto.service
Add the following line:
[Unit] Description=Insite MQTT Broker [Service] ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Restart=always [Install] WantedBy=multi-user.target
Save and close the file. Then, reload the systemd
daemon with the following command:
sudo systemctl start mosquitto.service sudo systemctl enable mosquitto.service
Step 5. Testing Mosquitto MQTT.
Once successfully installed, we have created simple testing which is running on the server’s console, where there is a server and a client to use the server service:
- Server
On the server we will create a topic by using the command line :mosquitto_sub -v -t 'chedelics/test' -u mqtt-idroot -P (your-password)
- Client
Sending a message with the same topic as a server has. Submitting command line :mosquitto_pub -t 'chedelics/test' -u mqtt-idroot -P (your-password)
Congratulations! You have successfully installed Mosquitto. Thanks for using this tutorial for installing the Mosquitto Message Queuing Telemetry Transport (MQTT) on Ubuntu 20.04 LTS Focal Fossa system. For additional help or useful information, we recommend you check the official Mosquitto website.