MQTT Essentials:A Lightweight IoT Protocol
上QQ阅读APP看书,第一时间看更新

Installing a Mosquitto broker on Ubuntu Linux

Now, we will learn the necessary steps to install a Mosquitto broker, also known as Mosquitto MQTT server on the most popular operating systems: Linux, macOS and Windows. First, we will start with Linux; specifically, we will work with Ubuntu Linux. In case you want to work with a different Linux distribution, you can find details about the installation procedure in the Mosquitto downloads section: http://mosquitto.org/download.

Follow these steps to install a Mosquitto broker on Ubuntu Linux. Take into account that you will require root privileges:

  1. Open a Terminal window and run the following command to add the Mosquitto repository:
     sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
    

    After you enter the password, you will see an output similar to the next lines (the temporary file names will be different).

     gpg: keyring `/tmp/tmpj3a50p1p/secring.gpg' created
     gpg: keyring `/tmp/tmpj3a50p1p/pubring.gpg' created
     gpg: requesting key 262C4500 from hkp server keyserver.ubuntu.com
     gpg: /tmp/tmpj3a50p1p/trustdb.gpg: trustdb created
     gpg: key 262C4500: public key "Launchpad mosquitto" imported
     gpg: Total number processed: 1
     gpg: imported: 1 (RSA: 1)
     OK
    
  2. Run the following command to update the packages with the recently added Mosquitto repository.
     sudo apt-get update
    

    You will see an output similar to the next lines.

     Get:1 http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ ubuntu xenial InRelease [23,8 kB]
     Hit:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
     Hit:3 http://ar.archive.ubuntu.com/ubuntu xenial InRelease
     Hit:4 http://ar.archive.ubuntu.com/ubuntu xenial-updates InRelease
     Get:5 http://ppa.launchpad.net/mosquitto-dev/ mosquitto-ppa/ubuntu xenial/main amd64 Packages [2.048 B]
     Hit:6 http://ar.archive.ubuntu.com/ubuntu xenial-backports InRelease
     Get:7 http://ppa.launchpad.net/mosquitto-dev/ mosquitto-ppa/ubuntu xenial/main i386 Packages [2.048 B]
     Get:8 http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ ubuntu xenial/main Translation-en [1.292 B]
     Fetched 29,2 kB in 1s (21,5 kB/s)
     Reading package lists... Done
    
  3. Now, run the following command to install the package for the Mosquitto server.
     sudo apt-get install mosquitto
    

    You will see an output similar to the next lines. Enter Y and press Enter to answer the question and complete the installation process.

     Reading package lists... Done
     Building dependency tree
     Reading state information... Done
     The following additional packages will be installed:
     libev4 libuv1 libwebsockets7
     The following NEW packages will be installed:
     libev4 libuv1 libwebsockets7 mosquitto
     0 upgraded, 4 newly installed, 0 to remove and 299 not upgraded.
     8 not fully installed or removed.
     Need to get 274 kB of archives.
     After this operation, 714 kB of additional disk space will be used.
     Do you want to continue? [Y/n]
    

    The last lines should include a line that says Setting up mosquitto, as shown in the following lines:

     Setting up mosquitto (1.4.10-0mosquitto3) ...
     Processing triggers for libc-bin (2.23-0ubuntu3) ...
     Processing triggers for systemd (229-4ubuntu7) ...
     Processing triggers for ureadahead (0.100.0-19) ...
    
  4. Run the following command to install the Mosquitto client packages that will allow us to run commands to publish messages to topics and subscribe to topic filters.
     sudo apt-get install mosquitto-clients
    

    You will see an output similar to the next lines. Enter Y and press Enter to answer the question and complete the installation process.

     Reading package lists... Done
     Building dependency tree
     Reading state information... Done
     The following additional packages will be installed:
     libc-ares2 libmosquitto1
     The following NEW packages will be installed:
     libc-ares2 libmosquitto1 mosquitto-clients
     0 upgraded, 3 newly installed, 0 to remove and 299 not upgraded.
     Need to get 138 kB of archives.
     After this operation, 332 kB of additional disk space will be used.
     Do you want to continue? [Y/n]
    

    The last lines should include a line that says Setting up mosquitto-clients, as shown in the following lines:

     Setting up libmosquitto1:amd64 (1.4.10-0mosquitto3) ...
     Setting up mosquitto-clients (1.4.10-0mosquitto3) ...
     Processing triggers for libc-bin (2.23-0ubuntu3) ...
    
  5. Run the following command to check the status for the mosquitto service that was recently installed.
     sudo service mosquitto status
    

    The first lines of the output should be similar to the following lines with an active (running) status displayed. The details after CGroup indicate the command-line that started the service. The -c option followed by /etc/mosquitto/mosquitto.conf specifies that Mosquitto is using this configuration file.

     mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
     Loaded: loaded (/etc/init.d/mosquitto; bad; vendor preset: enabled)
     Active: active (running)
     Docs: man:systemd-sysv-generator(8)
     CGroup: /system.slice/mosquitto.service
     └─17560 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
    

    You can also run the following command to check whether the Mosquitto MQTT server is listening at the default port: 1883.

     netstat -an | grep 1883
    

    The following lines show the results of the previous command that indicate the Mosquitto MQTT server has opened an IPv4 and an IPv6 listen socket on port 1883:

     tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
     tcp6 0 0 :::1883 :::* LISTEN