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)
 
(24 intermediate revisions by the same user not shown)
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
sudo su
    apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
apt update
locale-gen id_ID.UTF-8
apt 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.5.gz
tar xvzf mosquitto-1.5.tar.gz
cd mosquitto-1.5/
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
Pada dasarnya mosquitto memungkinkan anonymous access.


    tar xvzf mosquitto-1.4.9.tar.gz
Jika dibutuhkan, kita bisa membuat password untuk user mqtt-spy,
    cd mosquitto-1.4.9/


And then we compile and install the software
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy


    make && sudo make install
masukan password untuk mqtt-spy user yang akan digunakan untuk connect dari client. JIka masih belajar ada baiknya password 123456.
Kita perlu menambahkan ijin ke mosquitto user pada directory yang relevan.


Configuring Mosquitto MQTT Server
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/


After install is done, we need to make password for new user.
Buat file konfigurasi Mosquitto MQTT Server,


    sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
sudo nano /etc/mosquitto/mosquitto.conf


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
Isi dengan


    sudo mkdir /var/lib/mosquitto/
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


    sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
Atau kalau mau aman


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


    sudo nano /etc/mosquitto/mosquitto.conf


There you can paste this
Setelah config di simpan, jalankan ldconfig


    persistence true
sudo ldconfig
    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.
Tambahkan systemd unit file


After the config is saved, we run ldconfig
sudo nano /etc/systemd/system/mosquitto.service


    sudo ldconfig
Isi dengan


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


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


Paste this there:
Jalankan


    [Unit]
sudo systemctl start mosquitto.service
    Description=Insite MQTT Broker


    [Service]
Set supaya mosquitto jalan saat boot,
    ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
    Restart=always


    [Install]
sudo systemctl enable mosquitto.service
    WantedBy=multi-user.target


Lets start the service
Cek status


    sudo systemctl start mosquitto.service
systemctl status mosquitto.service


And check its status
Hasilnya kira-kira,


     systemctl status mosquitto.service
● mosquitto.service - Insite MQTT Broker
    Loaded: loaded (/etc/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
     Active: active (running) since Sab 2017-05-20 08:18:28 WIB; 1h 5min ago
  Main PID: 751 (mosquitto)
    Tasks: 1 (limit: 512)
    Memory: 2.8M
      CPU: 6.170s
    CGroup: /system.slice/mosquitto.service
            └─751 /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Mei 20 08:18:30 refserver mosquitto[751]: 1495243110: Config loaded from /etc/mosquitto/mosquitto.conf.
Mei 20 08:18:30 refserver mosquitto[751]: Config loaded from /etc/mosquitto/mosquitto.conf.
Mei 20 08:18:30 refserver mosquitto[751]: 1495243110: Opening ipv4 listen socket on port 1883.
Mei 20 08:18:30 refserver mosquitto[751]: Opening ipv4 listen socket on port 1883.
Mei 20 08:18:30 refserver mosquitto[751]: 1495243110: Opening ipv6 listen socket on port 1883.
Mei 20 08:18:30 refserver mosquitto[751]: Opening ipv6 listen socket on port 1883.
Mei 20 08:48:30 refserver mosquitto[751]: 1495244910: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Mei 20 08:48:30 refserver mosquitto[751]: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Mei 20 09:18:31 refserver mosquitto[751]: 1495246711: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Mei 20 09:18:31 refserver mosquitto[751]: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.


Mosquito status
==Setup MQTT-Spy dan connnecting==


To make it start on boot do this command
Instalasi apps pendukung


    sudo systemctl enable mosquitto.service
apt-get install openjfx


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 adalah Java based client untuk menyambungkan diri ke MQTT server.  
MQTT-Spy bisa di ambil di


mqtt spy
https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads
https://github.com/kamilfb/mqtt-spy/releases/download/mqtt-spy_v0.5.4/mqtt-spy-0.5.4-jar-with-dependencies.jar


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


mqtt password
cd /usr/local/src
wget https://github.com/kamilfb/mqtt-spy/releases/download/mqtt-spy_v0.5.4/mqtt-spy-0.5.4-jar-with-dependencies.jar


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


    mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
java -jar mqtt-spy-0.5.4-jar-with-dependencies.jar


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.
Langkah yang perlu dilakukan


MQTT-spy
* Klik new connection, masukan IP server (misalnya 192.168.0.100)
Conclusion
* Kalau anonymous tidak di ijinkan, masukan username & password, untuk percobaan mqtt-spt 123456
* masuk ke salah satu topik misalnya "lampu"


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.
Buka terminal di server, ketik misalnya,


mosquitto_sub -v -t 'lampu' -u mqtt-spy -P 123456


dimana


-v  verbosity
-t  topik yang di ikuti


coba ketik dari aplikasi java misalnya on, akan keluar
mosquitto_sub -v -t 'lampu' -u mqtt-spy -P 123456
lampu ON
lampu ON
lampu ON
lampu ON
lampu ON
lampu ON
lampu ON


==Referensi==
==Referensi==


* http://linoxide.com/tools/setup-mosquitto-mqtt-server-ubuntu-16-04/
* http://linoxide.com/tools/setup-mosquitto-mqtt-server-ubuntu-16-04/
==Pranala Menarik==
* [[MQTT]]

Latest revision as of 08:41, 11 May 2018

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,

sudo su
apt update
locale-gen id_ID.UTF-8
apt 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.5.gz
tar xvzf mosquitto-1.5.tar.gz
cd mosquitto-1.5/
make && sudo make install

Konfigurasi Mosquitto MQTT Server

Pada dasarnya mosquitto memungkinkan anonymous access.

Jika dibutuhkan, kita bisa membuat password untuk user mqtt-spy,

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

masukan password untuk mqtt-spy user yang akan digunakan untuk connect dari client. JIka masih belajar ada baiknya password 123456. Kita perlu menambahkan ijin ke mosquitto user pada directory yang relevan.

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

Atau kalau mau aman

cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf


Setelah config di simpan, jalankan 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

Jalankan

Jalankan

sudo systemctl start mosquitto.service

Set supaya mosquitto jalan saat boot,

sudo systemctl enable mosquitto.service

Cek status

systemctl status mosquitto.service

Hasilnya kira-kira,

● mosquitto.service - Insite MQTT Broker
   Loaded: loaded (/etc/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
   Active: active (running) since Sab 2017-05-20 08:18:28 WIB; 1h 5min ago
 Main PID: 751 (mosquitto)
    Tasks: 1 (limit: 512)
   Memory: 2.8M
      CPU: 6.170s
   CGroup: /system.slice/mosquitto.service
           └─751 /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Mei 20 08:18:30 refserver mosquitto[751]: 1495243110: Config loaded from /etc/mosquitto/mosquitto.conf.
Mei 20 08:18:30 refserver mosquitto[751]: Config loaded from /etc/mosquitto/mosquitto.conf.
Mei 20 08:18:30 refserver mosquitto[751]: 1495243110: Opening ipv4 listen socket on port 1883.
Mei 20 08:18:30 refserver mosquitto[751]: Opening ipv4 listen socket on port 1883.
Mei 20 08:18:30 refserver mosquitto[751]: 1495243110: Opening ipv6 listen socket on port 1883.
Mei 20 08:18:30 refserver mosquitto[751]: Opening ipv6 listen socket on port 1883.
Mei 20 08:48:30 refserver mosquitto[751]: 1495244910: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Mei 20 08:48:30 refserver mosquitto[751]: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Mei 20 09:18:31 refserver mosquitto[751]: 1495246711: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Mei 20 09:18:31 refserver mosquitto[751]: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.

Setup MQTT-Spy dan connnecting

Instalasi apps pendukung

apt-get install openjfx


MQTT-Spy adalah Java based client untuk menyambungkan diri ke MQTT server. MQTT-Spy bisa di ambil di

https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads
https://github.com/kamilfb/mqtt-spy/releases/download/mqtt-spy_v0.5.4/mqtt-spy-0.5.4-jar-with-dependencies.jar

download

cd /usr/local/src
wget https://github.com/kamilfb/mqtt-spy/releases/download/mqtt-spy_v0.5.4/mqtt-spy-0.5.4-jar-with-dependencies.jar

Menjalankan dengan

java -jar mqtt-spy-0.5.4-jar-with-dependencies.jar

Langkah yang perlu dilakukan

  • Klik new connection, masukan IP server (misalnya 192.168.0.100)
  • Kalau anonymous tidak di ijinkan, masukan username & password, untuk percobaan mqtt-spt 123456
  • masuk ke salah satu topik misalnya "lampu"

Buka terminal di server, ketik misalnya,

mosquitto_sub -v -t 'lampu' -u mqtt-spy -P 123456

dimana

-v  verbosity
-t  topik yang di ikuti

coba ketik dari aplikasi java misalnya on, akan keluar

mosquitto_sub -v -t 'lampu' -u mqtt-spy -P 123456
lampu ON
lampu ON
lampu ON
lampu ON
lampu ON
lampu ON
lampu ON

Referensi


Pranala Menarik