MQTT: install di Ubuntu 16.04: Difference between revisions

From OnnoCenterWiki
Jump to navigationJump to search
Onnowpurbo (talk | contribs)
Created page with "sumber: http://linoxide.com/tools/setup-mosquitto-mqtt-server-ubuntu-16-04/ Mosquitto MQTT Server is a message broker which works over MQTT protocol. MQTT is lightweight mes..."
 
Onnowpurbo (talk | contribs)
No edit summary
Line 1: Line 1:
sumber: http://linoxide.com/tools/setup-mosquitto-mqtt-server-ubuntu-16-04/
sumber: http://linoxide.com/tools/setup-mosquitto-mqtt-server-ubuntu-16-04/


Mosquitto MQTT Server adalah message broker yang bekerja di atas protokol MQTT. MQTT adalah protokol messaging ringan yang standar ISO untuk digunakan di atas protokol TCP/IP. Hal ini banyak digunakan untuk berkomunikasi dengan perangkat Internet of Things. Kami akan menginstal Mosquitto di server Ubuntu 16.04 dan kami akan mengirim pesan dari perangkat lunak MQTT-spy. Mosquitto adalah proyek Eclipse dan didistribusikan dengan lisensi EDL. Jadi mari kita mulai.


Mosquitto MQTT Server is a message broker which works over MQTT protocol. MQTT is lightweight messaging protocol that is ISO standard for use on top of TCP/IP protocol.  It is mostly used for communicating with Internet of Things devices. We are going to install Mosquitto on a Ubuntu 16.04 server and we are going to send messages from MQTT-spy software. Mosquitto is an Eclipse project and it is distributed under EDL license. So lets start.
==Kompilasi server Mosquitto MQTT dari sumber==
Compiling  Mosquitto MQTT server from source


To get mosquitto installed we need to do following steps. First update sources lis and get dependencies
Instalasi aplikasi pendukung,


    apt update
apt update
    apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc


Add mosquitto user, because by default it runs as non-root.
Tambahkan mosquitto user, karena secara default berjalan sebagai non-root.


    adduser mosquitto
adduser mosquitto


For convenience we will ad sudo rights to this user, because we will do rest of install process as this user
Untuk memudahkan beri sudo rights ke user ini, karena kita akan melakukan proses instalasi dengan user ini.


    usermod -aG sudo mosquitto
usermod -aG sudo mosquitto


Then we will log in as this user and cd to his home dir
Login sebagai mosquitto


    su mosquitto
su mosquitto
cd


    cd
Download, extraxt, compile & install,


Next we will download Mosquitto source code, latest version is 1.4.9 at the time of writing, but I suggest you check the download page to see if there is new version. So lets download the latest version
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
make && sudo make install


    wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
==Konfigurasi Mosquitto MQTT Server==


Lets unpack it and cd into directory
buat password untuk mqtt-spy,


    tar xvzf mosquitto-1.4.9.tar.gz
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
    cd mosquitto-1.4.9/
 
And then we compile and install the software
 
    make && sudo make install
 
Configuring Mosquitto MQTT Server
 
After install is done, we need to make password for new user.
 
    sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy


You will be prompted to make password for new mqtt-spy user that we will use to connect from client. That is different that mosquito user, that is system user for running mosquitto server. We need to add permissions to this mosquitto user to all relevant directories
You will be prompted to make password for new mqtt-spy user that we will use to connect from client. That is different that mosquito user, that is system user for running mosquitto server. We need to add permissions to this mosquitto user to all relevant directories


    sudo mkdir /var/lib/mosquitto/
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/


    sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
Buat file konfigurasi Mosquitto MQTT Server,


We next need to make configuration file for Mosquitto MQTT Server, so lets use nano to make new file
sudo nano /etc/mosquitto/mosquitto.conf


    sudo nano /etc/mosquitto/mosquitto.conf
Isi dengan


There you can paste this
persistence true
 
persistence_location /var/lib/mosquitto/
    persistence true
persistence_file mosquitto.db
    persistence_location /var/lib/mosquitto/
log_dest syslog
    persistence_file mosquitto.db
log_dest stdout
    log_dest syslog
log_dest topic
    log_dest stdout
log_type error
    log_dest topic
log_type warning
    log_type error
log_type notice
    log_type warning
log_type information
    log_type notice
connection_messages true
    log_type information
log_timestamp true
    connection_messages true
allow_anonymous false
    log_timestamp true
password_file /etc/mosquitto/pwfile
    allow_anonymous false
    password_file /etc/mosquitto/pwfile


Config seems long but we added more verbose logs and password file.
Config seems long but we added more verbose logs and password file.
Line 74: Line 66:
After the config is saved, we run ldconfig
After the config is saved, we run ldconfig


    sudo ldconfig
sudo ldconfig
 
Lets add systemd unit file
 
    sudo nano /etc/systemd/system/mosquitto.service


Paste this there:
Tambahkan systemd unit file


    [Unit]
sudo nano /etc/systemd/system/mosquitto.service
    Description=Insite MQTT Broker


    [Service]
Isi dengan
    ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
    Restart=always


    [Install]
[Unit]
    WantedBy=multi-user.target
Description=Insite MQTT Broker
[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target


Lets start the service
Lets start the service
Line 100: Line 92:
     systemctl status mosquitto.service
     systemctl status mosquitto.service


Mosquito status
==Mosquito status==


To make it start on boot do this command
To make it start on boot do this command
Line 110: Line 102:
MQTT-Spy is java based client that we will use to connect to MQTT server. You can get it from github but note that you must have Oracle JDK installed. It does NOT work with OpenJDK. First thing to do after staring MQTT-spy is to create new connection. You add your server IP and default port 1883.
MQTT-Spy is java based client that we will use to connect to MQTT server. You can get it from github but note that you must have Oracle JDK installed. It does NOT work with OpenJDK. First thing to do after staring MQTT-spy is to create new connection. You add your server IP and default port 1883.


mqtt spy
mqtt spy


Then you add password and user name we made earlier, in my case it is mqtt-spy and password is password.
Then you add password and user name we made earlier, in my case it is mqtt-spy and password is password.


mqtt password
mqtt password


Then we can open terminal window on server and type following command
Then we can open terminal window on server and type following command


    mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password


To explain flags, -v is for verbosity, -t is for topic followed by topic inside quotes, -u is for user and -P is password. After typing this command it will seeming hang, but then we need to use MQTT-spy to create new topic and send a message to same topic, like on picture bellow.
To explain flags, -v is for verbosity, -t is for topic followed by topic inside quotes, -u is for user and -P is password. After typing this command it will seeming hang, but then we need to use MQTT-spy to create new topic and send a message to same topic, like on picture bellow.


MQTT-spy
MQTT-spy
Conclusion
 
==Conclusion==


We have successfully installed Mosquitto MQTT server that enables you to have network of connected IoT devices over MQTT 3.1 protocol. We installed it on Ubuntu on classic x86 PC which is what most people use for development and learning purposes. For real IoT you would want an ARM device. This is all for this article thank you for reading.
We have successfully installed Mosquitto MQTT server that enables you to have network of connected IoT devices over MQTT 3.1 protocol. We installed it on Ubuntu on classic x86 PC which is what most people use for development and learning purposes. For real IoT you would want an ARM device. This is all for this article thank you for reading.

Revision as of 21:11, 8 May 2017

sumber: http://linoxide.com/tools/setup-mosquitto-mqtt-server-ubuntu-16-04/

Mosquitto MQTT Server adalah message broker yang bekerja di atas protokol MQTT. MQTT adalah protokol messaging ringan yang standar ISO untuk digunakan di atas protokol TCP/IP. Hal ini banyak digunakan untuk berkomunikasi dengan perangkat Internet of Things. Kami akan menginstal Mosquitto di server Ubuntu 16.04 dan kami akan mengirim pesan dari perangkat lunak MQTT-spy. Mosquitto adalah proyek Eclipse dan didistribusikan dengan lisensi EDL. Jadi mari kita mulai.

Kompilasi server Mosquitto MQTT dari sumber

Instalasi aplikasi pendukung,

apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc

Tambahkan mosquitto user, karena secara default berjalan sebagai non-root.

adduser mosquitto

Untuk memudahkan beri sudo rights ke user ini, karena kita akan melakukan proses instalasi dengan user ini.

usermod -aG sudo mosquitto

Login sebagai mosquitto

su mosquitto
cd

Download, extraxt, compile & install,

wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
make && sudo make install

Konfigurasi Mosquitto MQTT Server

buat password untuk mqtt-spy,

sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy

You will be prompted to make password for new mqtt-spy user that we will use to connect from client. That is different that mosquito user, that is system user for running mosquitto server. We need to add permissions to this mosquitto user to all relevant directories

sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/

Buat file konfigurasi Mosquitto MQTT Server,

sudo nano /etc/mosquitto/mosquitto.conf

Isi dengan

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 false
password_file /etc/mosquitto/pwfile

Config seems long but we added more verbose logs and password file.

After the config is saved, we run ldconfig

sudo ldconfig

Tambahkan systemd unit file

sudo nano /etc/systemd/system/mosquitto.service

Isi dengan

[Unit]
Description=Insite MQTT Broker

[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

Lets start the service

   sudo systemctl start mosquitto.service

And check its status

   systemctl status mosquitto.service

Mosquito status

To make it start on boot do this command

   sudo systemctl enable mosquitto.service

Setting up MQTT-Spy and connectiong

MQTT-Spy is java based client that we will use to connect to MQTT server. You can get it from github but note that you must have Oracle JDK installed. It does NOT work with OpenJDK. First thing to do after staring MQTT-spy is to create new connection. You add your server IP and default port 1883.

mqtt spy

Then you add password and user name we made earlier, in my case it is mqtt-spy and password is password.

mqtt password

Then we can open terminal window on server and type following command

mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password

To explain flags, -v is for verbosity, -t is for topic followed by topic inside quotes, -u is for user and -P is password. After typing this command it will seeming hang, but then we need to use MQTT-spy to create new topic and send a message to same topic, like on picture bellow.

MQTT-spy

Conclusion

We have successfully installed Mosquitto MQTT server that enables you to have network of connected IoT devices over MQTT 3.1 protocol. We installed it on Ubuntu on classic x86 PC which is what most people use for development and learning purposes. For real IoT you would want an ARM device. This is all for this article thank you for reading.



Referensi