avatar RicalDocs

The Daily Stack

  • HOME
  • CATEGORIES
  • TAGS
  • ARCHIVES
  • ABOUT
  • MUSIC
Home Panduan Lengkap Instalasi MQTT Broker dengan Docker & Mosquitto untuk IoT
Article

Panduan Lengkap Instalasi MQTT Broker dengan Docker & Mosquitto untuk IoT

Pelajari cara install dan konfigurasi MQTT Broker untuk proyek Internet of Things (IoT) menggunakan Docker & Mosquitto. Tutorial lengkap mulai dari prasyarat, setup Docker Compose, autentikasi user, hingga testing koneksi MQTT dan WebSocket.

Published Feb 1, 2026 Updated Feb 1, 2026
By Risnanda Pascal
5 min read
Panduan Lengkap Instalasi MQTT Broker dengan Docker & Mosquitto untuk IoT
Panduan Lengkap Instalasi MQTT Broker dengan Docker & Mosquitto untuk IoT

Prasyarat dan Instalasi Docker

Sistem Operasi yang Didukung

  • Ubuntu 20.04 LTS atau lebih baru
  • Debian 10 atau lebih baru
  • Distribusi Linux berbasis APT lainnya

Instalasi Docker Engine

Ikuti panduan resmi Docker untuk menginstal Docker Engine di Ubuntu. Setelah instalasi selesai, tambahkan pengguna saat ini ke grup docker:

1
2
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

Konfigurasi Hak Akses Docker

1
2
3
4
5
sudo usermod -aG docker $USER
newgrp docker  # Muat ulang grup, atau log out/in

# Verifikasi instalasi berhasil
docker --version

Penggunaan sudo dengan docker dapat dihindari dengan menambahkan pengguna ke grup docker. Pastikan hanya pengguna tepercaya yang memiliki akses ini.

Persiapan Struktur Direktori

Struktur direktori yang terorganisir memudahkan manajemen konfigurasi dan data:

1
2
3
4
5
6
# Buat direktori utama untuk proyek MQTT
mkdir ~/mqtt
cd ~/mqtt

# Buat subdirektori untuk konfigurasi, data, dan log
mkdir -p config data log

Konfigurasi Mosquitto Broker

Membuat File Konfigurasi Mosquitto

Buat file konfigurasi utama:

1
nano config/mosquitto.conf

Konten Konfigurasi Mosquitto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Konfigurasi Jaringan dan Port
allow_anonymous false
listener 1883 0.0.0.0
listener 9001 0.0.0.0
protocol websockets

# Keamanan dan Autentikasi
password_file /mosquitto/config/pwfile

# Persistensi Data
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/

# Logging dan Monitoring
log_dest file /mosquitto/log/mosquitto.log
log_type all

# Performa dan Optimasi
# max_connections -1
# persistent_client_expiration 1d

# Untuk Banyak Koneksi
# max_connections 10000
# max_keepalive 300
# message_size_limit 268435455

Inisialisasi Sistem Autentikasi

Buat file password kosong (akan diisi nanti):

1
touch config/pwfile

Konfigurasi Docker Compose

Membuat File docker-compose.yml

1
nano docker-compose.yml

Konten Docker Compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
services:
  mqtt-broker:
    image: eclipse-mosquitto:latest
    container_name: mosquitto-local
    restart: unless-stopped
    ports:
      - "1883:1883"            # MQTT standard port
      - "9001:9001"            # MQTT websocket port
      - "8080:8080"            # Port untuk monitoring web (opsional)
    volumes:
      - ./config:/mosquitto/config:rw
      - ./data:/mosquitto/data:rw
      - ./log:/mosquitto/log:rw
    networks:
      - mqtt-network

networks:
  mqtt-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

Deployment Container Mosquitto

Menjalankan Container

1
2
3
docker compose up -d
docker compose ps
docker compose logs -f

Verifikasi Instalasi

1
2
3
4
5
# Cek versi Mosquitto di dalam container
docker exec mosquitto-local mosquitto -v

# Periksa kesehatan container
docker compose ps --format "table \t\t"

Manajemen Pengguna dan Autentikasi

Membuat Pengguna Pertama

Akses shell container:

1
docker exec -it mosquitto-local sh

Buat pengguna admin dengan password:

1
2
mosquitto_passwd -c /mosquitto/config/pwfile admin
# Masukkan password ketika diminta (contoh: Admin@2024!)

Tambah pengguna tambahan:

1
2
mosquitto_passwd /mosquitto/config/pwfile user1
mosquitto_passwd /mosquitto/config/pwfile user2

Verifikasi daftar pengguna:

1
2
cat /mosquitto/config/pwfile
exit

Restart Service untuk Menerapkan Perubahan

1
2
docker compose restart
docker compose logs --tail=20

Konfigurasi Jaringan dan Discovery

Mendapatkan Informasi Jaringan Container

1
2
3
4
5
# Dapatkan IP address container
docker inspect mosquitto-local | grep IPAddress

# Atau gunakan format output yang lebih bersih
docker inspect -f '' mosquitto-local

Instalasi MQTT Client Tools

Untuk Ubuntu/Debian:

1
2
3
4
5
6
# Install Mosquitto Client Utilities
sudo apt install -y mosquitto-clients

# Verifikasi instalasi
mosquitto_sub --version
mosquitto_pub --version

Testing dan Validasi Koneksi

Test 1: Koneksi Dasar dengan Localhost

1
2
3
4
5
# Terminal 1: Subscribe ke topic tertentu
mosquitto_sub -h localhost -t "test/connection" -u user1 -P "user1" -v

# Terminal 2: Publish pesan test
mosquitto_pub -h localhost -t "test/connection" -m "MQTT Broker berjalan dengan baik" -u user1 -P "user1"

Test 2: Koneksi dengan WebSocket

1
2
3
4
5
// Contoh kode JavaScript untuk koneksi WebSocket
const client = mqtt.connect('ws://localhost:9001', {
  username: 'user1',
  password: 'user1'
});

Integrasi dengan Systemd untuk Auto-start

Membuat Service Systemd untuk Subscriber

1
2
# Buat file service systemd
sudo nano /etc/systemd/system/mosquitto-subscriber.service

Konfigurasi Service Systemd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Mosquitto MQTT Subscriber untuk iot/device1
After=network.target
Wants=network.target

[Service]
Type=simple
User=your_username
ExecStart=/usr/bin/mosquitto_sub -h ip/domain -t "test/connection" -u user1 -P user1 -v
Restart=always
RestartSec=10
StandardOutput=append:/var/log/mosquitto-sub.log
StandardError=append:/var/log/mosquitto-sub-error.log

[Install]
WantedBy=multi-user.target

Manajemen Service Systemd

1
2
3
4
5
sudo systemctl daemon-reload
sudo systemctl enable mosquitto-subscriber.service
sudo systemctl start mosquitto-subscriber.service
sudo systemctl status mosquitto-subscriber.service
sudo journalctl -u mosquitto-subscriber.service -f

Monitoring dan Maintenance

Melihat Log Container

1
2
3
4
5
6
7
8
# Log secara real-time
docker compose logs -f

# Log dengan filter waktu
docker compose logs --since 1h

# Log hanya untuk service tertentu
docker compose logs mqtt-broker

Update Container

1
2
3
sudo docker compose pull
sudo docker compose up -d
sudo docker image prune -f

Troubleshooting Umum

Problem: Koneksi Ditolak

1
2
3
4
5
6
7
8
9
# Periksa firewall
sudo ufw status
sudo ufw allow 1883/tcp

# Verifikasi container berjalan
docker compose ps

# Cek binding port
netstat -tlnp | grep 1883

Problem: Autentikasi Gagal

Verifikasi file password:

1
docker exec mosquitto-local cat /mosquitto/config/pwfile

Reset password pengguna:

1
docker exec mosquitto-local mosquitto_passwd -b /mosquitto/config/pwfile admin new_password

Optimasi Performa

Monitoring Resource

Monitor resource container:

1
docker stats mosquitto-local

Cek penggunaan disk:

1
docker system df

Optimasi storage:

1
docker system prune -a

Kesimpulan

MQTT broker dengan Docker dan Mosquitto memberikan solusi IoT yang scalable, secure, dan mudah dikelola. Konfigurasi ini cocok untuk:

  1. Pengembangan aplikasi IoT lokal
  2. Validasi sistem sebelum deployment produksi
  3. Deployment untuk jumlah device terbatas

Langkah Selanjutnya

  • Implementasi SSL/TLS untuk enkripsi data
  • Setup cluster Mosquitto untuk high availability
  • Integrasi dengan database untuk penyimpanan data historis
  • Implementasi dashboard monitoring dengan Grafana

Disclaimer

Konfigurasi ini dioptimalkan untuk lingkungan lokal. Untuk deployment produksi di lingkungan publik, pertimbangkan:

  1. Implementasi firewall yang ketat
  2. Penggunaan sertifikat SSL/TLS
  3. Mekanisme autentikasi yang lebih kuat
  4. Monitoring dan alerting yang komprehensif
Tech Sovereign, Telecommunications
internet of things
This content is licensed under CC BY 4.0 by the author.
Share
External Links
  • RicalNet

Table of Contents

Related Articles

Jan 12, 2026

Panduan Konfigurasi PlatformIO untuk ESP32 dengan Sensor Ultrasonik HC-SR04

Tutorial implementasi sistem pengukur tinggi badan anak menggunakan ESP32 dan sensor ultrasonik dengan PlatformIO. Pelajari konfigurasi lingkungan, filter data, kalibrasi, dan deployment firmware s...

Apr 28, 2025

Mosquitto on Debian-based Linux

Panduan instalasi, konfigurasi, dan implementasi broker MQTT Mosquitto pada sistem operasi berbasis Debian, dilengkapi dengan contoh integrasi platform simulasi Wokwi untuk pengembangan solusi Inte...

Mar 8, 2025

Connect Devices to a Home Gateway and Monitor Your Network

Penghubungan perangkat IoT ke Home Gateway melibatkan konfigurasi jaringan menggunakan Cisco Packet Tracer.

Implementasi SSH Tunnel Aman Menggunakan Cloudflare Tunnel

-

RicalNet © Some rights reserved

Last updated on February 01, 2026

Loading...

Privacy Policy • Source code

Trending Tags

linux cloud computing privacy self-hosted cryptography docker telecommunications android cisco packet tracer internet of things

An updated version of this content is available