Scroll untuk baca artikel
Programming

Install Mqtt ActiveMQ Artemis di Docker

66
×

Install Mqtt ActiveMQ Artemis di Docker

Sebarkan artikel ini

Install Mqtt ActiveMQ Artemis di Docker

ActiveMQ Artemis
ActiveMQ Artemis
58 / 100 Skor SEO

Bagi pengguna integrasi sudah tidak aneh lagi dengan mqtt.

Product Active MQ ada beberapa tapi yang sama pake itu ActiveMQ Artemis, mungkin ada pertanyaan mana yang bagus

 

ActiveMQ Classic (rmohr/activemq)

  • Stabil & banyak digunakan di sistem lama atau integrasi legacy.

  • ✅ Cocok buat aplikasi yang masih pakai OpenWire, JMS 1.1, dan protokol lama.

  • ⚠️ UI-nya agak ketinggalan zaman.

  • ⚠️ Tidak aktif dikembangkan lagi, fokusnya udah pindah ke Artemis.


ActiveMQ Artemis (apache/activemq-artemis)

  • Lebih modern, performa lebih bagus.

  • ✅ Dukungan protokol banyak: AMQP, MQTT, OpenWire, STOMP, dsb.

  • ✅ Cocok buat sistem baru, microservices, dan performa tinggi.

  • ⚠️ Agak beda API-nya, jadi kalau migrasi dari Classic, butuh penyesuaian.


Rekomendasi:

  • Kalau proyek baru atau microservicepakai Artemis.

  • ️ Kalau sistem lama atau integrasi JMS lamapakai Classic.

 

✅ 1. Volume di luar Docker (host path)

Supaya data tetap ada meskipun kontainernya dihapus/restart:

mqtt-docker-compose.yml lengkap (production-ready base)

services:
  artemis:
    image: apache/activemq-artemis:2.31.2
    container_name: artemis
    environment:
      ARTEMIS_USER: secureuser
      ARTEMIS_PASSWORD: strong@Password123
    ports:
      - "8161:8161"     # Web console
      - "61616:61616"   # Protocols (AMQP, CORE, OpenWire, etc)
      - "1883:1883"   # MQTT
    volumes:
      - artemis-data:/var/lib/artemis-instance
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8161"]
      interval: 30s
      timeout: 10s
      retries: 5
    restart: unless-stopped
    networks:
      - internal_net

volumes:
  artemis-data:
    driver: local
    driver_opts:
      type: none
      device: /opt/data/artemis
      o: bind

networks:
  internal_net:
    driver: bridge

untuk ActiveMQ Artemis yang:

  • Menggunakan volume di luar Docker (/opt/data/artemis)

  • Sudah diset username/password yang aman

  • Menggunakan internal Docker network (tidak expose port ke host tanpa perlu)

  • Tambah healthcheck

  • Siap untuk dikembangkan ke arah production

✅ 2. Security tambahan

a. Ganti username dan password default

Jangan pakai admin:admin di production , ganti jadi yang lebih aman:

Untuk password di buatkan ada angka, huruf besar, huruf kecil, simbol

environment:
  ARTEMIS_USER: secureuser
  ARTEMIS_PASSWORD: strong@Password123

b. Gunakan firewall atau network policy

Kalau pakai VPS/VM biasa:

sudo ufw allow from [trusted_ip] to any port 8161,61616 proto tcp

Bonus: Tambahkan healthcheck

Supaya Docker bisa tahu kapan Artemis siap dipakai, maka di yml di atas ada:

healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:8161"]
  interval: 30s
  timeout: 10s
  retries: 5

Langkah persiapan di host (Linux):

sudo mkdir -p /opt/data/artemis
sudo chown 1000:1000 /opt/data/artemis  # Sesuaikan UID jika perlu

✅ Cara menjalankannya:

docker compose -f mqtt-docker-compose.yml up -d

Penjelasan:

  • -f mqtt-docker-compose.yml → pakai file yang kamu tentukan

  • up → mulai servicenya

  • -d → jalan di background (detached mode)

✅ Kalau mau stop servicenya:

docker compose -f mqtt-docker-compose.yml down

✅ Lihat status servicenya:

docker compose -f mqtt-docker-compose.yml ps

✅ Lihat logs servicenya:

docker compose -f mqtt-docker-compose.yml logs -f

1. Akses Web Console (GUI Admin)

URL: http://localhost:8161/console

Kalau kamu akses dari komputer lain, ganti localhost dengan IP server, contoh:
http://10.60.78.16:8161/console

Login dengan:

  • Username: yang kamu set di ARTEMIS_USER (misal: secureuser)

  • Password: yang kamu set di ARTEMIS_PASSWORD (misal: strong@Password123)

 

2. Port dan Protokol Aktif (dari log):

 

Port Protokol Keterangan
5445 HORNETQ, STOMP Legacy & integrasi
5672 AMQP Cocok buat microservices (RabbitMQ-style)
1883 MQTT Buat IoT, ringan, cocok buat sensor dll
61613 STOMP Umum dipakai untuk WebSocket over STOMP
61616 OpenWire Protokol JMS (default ActiveMQ Classic)
8161 HTTP/Web UI Console dan REST API

3. Contoh Akses MQTT Client

Kalau kamu pakai MQTT client (misal: MQTT.fx, Mosquitto, atau Paho), koneksinya:

yaml
Broker URL: tcp://localhost:1883
Username: secureuser Password: strong@Password123

Langkah Akses Artemis di MQTT Explorer

  1. Buka MQTT Explorer

  2. Klik tombol “New Connection”

  3. Isi settingannya seperti ini:

Connection Settings

 

Setting Nilai yang Diisi
Name Artemis MQTT (atau terserah kamu)
Protocol MQTT (tcp)
Host localhost (atau IP server)
Port 1883
Username secureuser (atau ARTEMIS_USER kamu)
Password strong@Password123 (atau ARTEMIS_PASSWORD kamu)
Client ID mqtt-explorer-1234 (bebas, unik)
Clean session ✅ centang
SSL/TLS ❌ tidak perlu (kecuali kamu aktifkan TLS)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Verified by MonsterInsights