HiveMQ MQTT Broker Overview | Installation

What is HiveMQ ?

HiveMQ is a MQTT broker tailored specifically for enterprises, which find themselves in the emerging age of Machine-to-Machine communication (M2M) and the Internet of Things. It was built from the ground up with maximum scalability and enterprise-ready security concepts in mind. It implements the MQTT protocol, the de-facto M2M messaging standard, and through its 100% compliance to the specification, it is leading when it comes to professional adoption of all possibilities of the Internet of Things for companies.
As members of the OASIS committee, the HiveMQ team was directly involved in the creation and release of MQTT 5.0, the newest version of the lightweight protocol. It is 100% MQTT compliant and implements all MQTT features in single and clustered deployments.

Recommended: MQTT | What is MQTT | MQTT in Depth | QoS | FAQs | MQTT Introduction

Supported MQTT versions

The following MQTT versions are fully supported:

Supported MQTT features

All MQTT features are 100% supported for single node and clustered deployments, including:

  • Retained Messages
  • QoS 0
  • QoS 1
  • QoS 2
  • Clean & Persistent Sessions
  • Queued Messages
  • Last Will and Testament (LWT)
  • Dynamic Topics
  • Wildcard Subscriptions
  • Username / Password Fields
  • MQTT Client Takeovers
  • MQTT Ordered Topic guarantees for QoS 1 and 2
  • MQTT Client Load Balancing with Shared Subscriptions

Additional features

HiveMQ adds many additional features on top of its MQTT core, including:

Supported Platforms

  • Bare Metal Servers
  • Cloud Environments (AWS, Microsoft Azure, Google Cloud Platform)
  • Docker
  • Kubernetes & Openshift

Recommended: How To Create Secure MQTT Broker

System Requirements

HiveMQ is a high performance MQTT broker and is designed to run on server hardware. While HiveMQ also runs on embedded devices, its full potential is unleashed on server hardware.

Operating Systems

  • Production: Linux is the only supported operating system for production environments. CentOS7 or other RHEL-based distributions are recommended.
  • Development: Windows, Mac OS X or Linux.

Minimum Hardware Requirements

  • At least 4GB of RAM
  • 4 or more CPUs
  • 10GB or more free disk space.
Environment

  • Production: OpenJDK JRE 11 or newer is required.
  • Development: OpenJDK JDK 11 or newer is recommended.

Installation on Unix based systems (Linux, BSD, MacOS X, Unix)

The default installation directory is /opt/hivemq and the default user to run HiveMQ is named hivemq. If you need to install HiveMQ to a custom directory or run it under a custom user please be aware of changing the $HIVEMQ_DIRECTORY and/or the HIVEMQ_USER in the $HIVEMQ_DIRECTORY/bin/start.sh script.

  1. Login as root

    Some of the following commands need root privileges, please login as root or use sudo to execute the commands.

  2. Change directory to where you want to download and install HiveMQ. By default we prefer /opt.
    cd /opt
  3. Get your evaluation version from our website.
  4. Copy the provided download link and download Hive MQ
    wget --content-disposition <your download link>

    or

    curl -O -L <your download link>
  5. Extract the files
    unzip hivemq-<version>.zip
  6. Create hivemq symlink
    ln -s /opt/hivemq-<version> /opt/hivemq
  7. Create HiveMQ user
    useradd -d /opt/hivemq hivemq
  8. Make scripts executable and change owner to hivemq user
    chown -R hivemq:hivemq /opt/hivemq-<version>
    chown -R hivemq:hivemq /opt/hivemq
    cd /opt/hivemq
    chmod +x ./bin/run.sh
  9. Adjust the configuration properties to your needs.

    See chapter Configuration for detailed instructions how to configure Hive MQ.

  10. Install the init script (optional)

    For Debian-based linux like Debian, Ubuntu, Raspbian using init.d scripts

    cp /opt/hivemq/bin/init-script/hivemq-debian /etc/init.d/hivemq
    chmod +x /etc/init.d/hivemq

    For linux systems using systemd

    cp /opt/hivemq/bin/init-script/hivemq.service /etc/systemd/system/hivemq.service

    For all other linux systems

    cp /opt/hivemq/bin/init-script/hivemq /etc/init.d/hivemq
    chmod +x /etc/init.d/hivemq
  11. Modify /etc/init.d/hivemq (optional)

    Set the HIVEMQ_HOME and the HIVEMQ_USER variable to the correct values for your system.

    By default this would be:

    HIVEMQ_HOME=/opt/hivemq

    HIVEMQ_USER=hivemq

    If you installed HiveMQ to a different directory than /opt/hivemq please point the HIVEMQ_HOME in your init script to the correct directory. Otherwise the daemon will not start correctly.

  12. Start Hive MQ on boot (optional)

    For Debian-based linux like Debian, Ubuntu, Raspbian

    update-rc.d hivemq defaults

    For Debian-based linux like Debian, Ubuntu, Raspbian using systemd

    systemctl enable hivemq

    Debian > 6.0

    insserv hivemq

    CentOS or RHEL

    chkconfig hivemq on

Starting HiveMQ

The following instructions show how to start HiveMQ after the installation.

Starting manually

  1. Change directory to HiveMQ directory
    cd /opt/hivemq
  2. Execute startup script
    ./bin/run.sh

Starting as daemon

  1. Start the daemon
    /etc/init.d/hivemq start

Verify if HiveMQ is running

Check if HiveMQ is listening to the default port for MQTT

netstat -an | grep 1883

If you’re running HiveMQ as daemon:

/etc/init.d/hivemq status

Windows systems

Manual installation

  1. Download the latest HiveMQ version from our website
  2. Extract the file hivemq.zip to C:\hivemq using your favorite Zip unpack utility.

Installation as Windows Service

The steps to install HiveMQ as a Windows Service are:

  • Download the hivemq-windows-service.zip file from here
  • Unzip the hivemq-windows-service.zip file.
  • Copy the windows-service folder to your HiveMQ home folder.
  • Open the windows-service folder.
  • Double click the installService.bat file.
  • Reboot
Make sure you have the permission to install a service. Therefore it might be necessary to right click the installService.bat and select Run as administrator.

Starting HiveMQ

The following instructions show how to start HiveMQ after installing:

Double click on the run.bat file.

Please keep in mind that a click with the left mouse button (QuickEdit) stops the output of the command line. When you click the command line before “Started HiveMQT in xxx ms” is displayed, the HiveMQ start up is interrupted and needs to be continued via a click of the right mouse button. A click after the HiveMQ start up has no impact on the execution of HiveMQ.

Verify if HiveMQ is running

Check if HiveMQ is listening to the default port for MQTT.

Open cmd.exe and run:

netstat -an | find "1883"

Installing a HiveMQ MQTT Broker license

Installing a HiveMQ license is as simple as moving the hivemq.lic file provided with your purchases into the license folder of your HiveMQ installation.

Licenses can be added during run time and will be automatically and dynamically recognized by HiveMQ.

When a valid license file is found, HiveMQ logs a statement similar to the following:

2018-08-20 20:49:44,322 INFO  - Found valid site license (hivemq.lic) issued to XXX for max XXX connections, valid until XXX.

Multiple license files

A newly obtained license can be added during runtime. When multiple valid license files are recognized by HiveMQ, the license allowing the higher number of concurrent connections will automatically be selected.

In case multiple valid licenses for the same amount of concurrent connections are found HiveMQ will select the license that has a longer validity.

A restart of HiveMQ is not necessary for switching or adding licenses during runtime.


I hope you like this post “HiveMQ MQTT Broker Overview | Installation”. Do you have any questions? Leave a comment down below!

Thanks for reading. If you like this post probably you might like my next ones, so please support me by subscribing my blog.

You may like also:


 

Harshvardhan Mishra

Hi, I'm Harshvardhan Mishra. I am a tech blogger and an IoT Enthusiast. I am eager to learn and explore tech related stuff! also, I wanted to deliver you the same as much as the simpler way with more informative content. I generally appreciate learning by doing, rather than only learning. Thank you for reading my blog! Happy learning! Follow and send tweets me on @harshvardhanrvm

2 thoughts on “HiveMQ MQTT Broker Overview | Installation

Leave a Reply

%d bloggers like this: