MQTT Broker Nasıl Test Edilir? MQTT Test Client ile 6 Adım

MQTT Broker Nasıl Test Edilir? MQTT Test Client ile 6 Adım
Rehber
Ahmet Korkmaz7 dk

MQTT Broker Nasıl Test Edilir?

MQTT, cihazların bir merkez sunucu (broker) üzerinden “topic” adı verilen kanallara mesaj yayınladığı (publish) ve bu kanallara abone olduğu (subscribe) hafif bir mesajlaşma protokolüdür. Bir MQTT bağlantısını test etmek, broker’a ulaşılabildiğini, kimlik doğrulamanın geçtiğini ve mesajın doğru topic’e doğru biçimde düştüğünü sırayla doğrulamak demektir. Bu rehber bunu bir MQTT test client ile altı adımda yapar.

MQTT’de bilmeniz gereken beş kavram

KavramAnlamı
BrokerMesajları alıp abonelere dağıtan sunucu (Mosquitto, EMQX, HiveMQ vb.)
TopicMesajın adresi, ör. saha1/inverter3/guc
Client IDHer bağlantının benzersiz kimliği
QoSTeslim garantisi: 0 (en fazla bir), 1 (en az bir), 2 (tam bir kez)
RetainedBroker’ın topic’teki son mesajı saklayıp yeni abonelere hemen göndermesi

Adım 1: Port ve ağ erişimi

Varsayılan portlar:

PortKullanım
1883Şifresiz MQTT
8883TLS ile MQTT
8083 / 8084WebSocket / güvenli WebSocket (broker’a göre değişir)

Bağlanamıyorsanız önce broker adresinin ve portun sizin ağınızdan erişilebilir olduğunu kontrol edin. Kurumsal ağlar ve mobil modemler 1883’ü sıklıkla kapatır.

Adım 2: Bağlan ve CONNACK cevabını oku

Client, broker’a CONNECT gönderir; broker CONNACK ile cevap verir. MQTT 3.1.1’de dönüş kodları şunlardır:

KodAnlamıNe yapmalı
0Kabul edildiDevam
1Protokol sürümü desteklenmiyorClient’ta 3.1.1 / 5.0 seçimini değiştirin
2Client ID reddedildiBoş veya geçersiz karakterli ID kullanmayın
3Sunucu kullanılamıyorBroker servisini kontrol edin
4Kullanıcı adı / şifre hatalıKimlik bilgilerini doğrulayın
5YetkisizKullanıcının bu broker’a bağlanma izni yok

Adım 3: Client ID çakışmasına dikkat

Aynı client ID ile ikinci bir bağlantı açıldığında broker ilk bağlantıyı düşürür. Sahadaki cihazın client ID’sini test programına yazarsanız cihaz sürekli kopar, test programı da kopar ve döngüye girer. Test için her zaman benzersiz bir ID kullanın (ör. test-laptop-01).

Adım 4: Önce her şeye abone ol

Hangi topic’e veri geldiğinden emin değilseniz geniş bir abonelikle başlayın:

  • # → broker’daki tüm topic’ler (yetkiniz varsa)
  • saha1/# → saha1 altındaki her şey
  • saha1/+/guc → her inverter’ın guc topic’i

Mesajları gördükten sonra aboneliği daraltın. Paylaşımlı veya yoğun bir broker’da # binlerce mesaj getirebilir; dikkatli kullanın.

Adım 5: Yayınla ve geri oku

Bir topic’e test mesajı yayınlayın (ör. test/ping → merhaba) ve aynı topic’e abone olan bir pencerede mesajın geldiğini görün. Bu, yazma (ACL) izinlerinin de çalıştığını gösterir.

Payload’ı da kontrol edin: Cihaz JSON gönderiyorsa alan adları ve sayı biçimi (ondalık nokta/virgül) karşı taraftaki yazılımın beklentisiyle aynı mı?

Adım 6: TLS ile tekrar dene

Üretim ortamında 8883 ve TLS kullanılır. Sık görülen TLS hataları:

  • Sertifika doğrulanamadı: Broker sertifikasını imzalayan CA dosyası client’a verilmemiş.
  • Hostname uyuşmuyor: IP adresiyle bağlanıyorsunuz ama sertifika alan adına kesilmiş.
  • İstemci sertifikası isteniyor: Broker karşılıklı TLS (mTLS) kullanıyor.

Sık hatalar

BelirtiOlası sebep
Bağlantı zaman aşımıPort kapalı, yanlış adres, güvenlik duvarı
Bağlanıp birkaç saniyede kopuyorClient ID çakışması veya keep-alive ayarı
Bağlantı var, mesaj yokTopic adı farklı (büyük/küçük harf, baştaki /)
Publish başarılı ama abone almıyorACL izni yok veya QoS/retained beklentisi farklı
Eski değer geliyorTopic’te retained mesaj kalmış

Test için herkese açık broker’lar

Kendi broker’ınız yokken test.mosquitto.org, broker.hivemq.com veya broker.emqx.io kullanılabilir. Bunlar paylaşımlıdır; gerçek saha verisi veya şifre göndermeyin.

Ranaliz iOT Tester ile MQTT testi

Ranaliz iOT Tester, MQTT tarafında bir MQTT test client gibi çalışır: broker’a bağlanma, subscribe, publish ve isteğe bağlı TLS. Ayrı bir MQTT Explorer kurmadan topic’in doğru olup olmadığını ve payload’ın gelip gelmediğini görürsünüz.

Asıl farkı aynı uygulamada Modbus ve IEC 104 araçlarının da bulunmasıdır. Bir gateway’in Modbus ile okuyup MQTT ile yayınladığı senaryoda iki tarafı aynı pencerede doğrulayabilirsiniz: önce Modbus register’ını okuyun, sonra aynı değerin MQTT topic’ine düştüğünü görün. Uygulama ücretsizdir; Windows ve macOS’ta çalışır.

SSS

MQTT bağlantısı nasıl kontrol edilir?

Bir MQTT test client ile broker’a bağlanın, CONNACK kodunun 0 olduğunu görün, ardından bir topic’e abone olup aynı topic’e mesaj yayınlayın. Mesaj geri geliyorsa bağlantı ve izinler çalışıyordur.

MQTT hangi portu kullanır?

Şifresiz 1883, TLS ile 8883. WebSocket portları broker’a göre değişir.

MQTT Explorer ile MQTTX arasındaki fark nedir?

İkisi de MQTT test client’ıdır. MQTT Explorer topic ağacını görselleştirmeye, MQTTX çoklu bağlantı ve script desteğine odaklanır. Endüstriyel protokolleri de aynı yerde test etmek istiyorsanız iOT Tester bir alternatiftir.

Kaynaklar

  • OASIS — MQTT Version 3.1.1 Specification
  • OASIS — MQTT Version 5.0 Specification
Ranaliz Platform

Santralinizi Ranaliz ile izleyin

Gerçek zamanlı izleme, akıllı alarmlar ve yapay zeka destekli analizlerle enerji tesislerinizi tek platformdan yönetin.

Demo Talep Et