Ubuntu'ya Mosquitto MQTT Broker / Server Kurulumu

 MQTT , ESP8266 , Raspberry Pi, vb. Gibi "Nesnelerin İnterneti" cihazları arasında iletişim için TCP / IP üzerinden yayınlama / abone olma modeline dayalı "hafif" bir mesajlaşma protokolüdür. Düşük kaynaklar ve ev gibi pille çalışan uygulamalar arasında çok popülerdir. Otomasyon, güvenlik alarm sistemleri ve pille çalışan sensör ağları vb. gibi.

Mosquitto, MQTT protokolleri  için bir  açık kaynak mesajı komisyoncu (veya sunucu) 'dur. Güçlü topluluk desteği, dokümantasyonu ve kurulum kolaylığı ile en popüler MQTT brokerlerinden biri haline geldi.

Önkoşullar

  • rootErişimi olan bir Ubuntu sunucusu (deneme için rpi veya benzeri mini pc işinizi görecektir)
  • TCP:1883Güvenlik duvarında bağlantı noktasını açın. (ufw allow a bkz.)

Birinci Adım: Mosquitto Broker'ı Kurun

Ubuntu'nun paket listesini güncelleyin ve mevcut en son Mosquitto Broker'ı yükleyin

sudo apt-get update
sudo apt-get install mosquitto


Mosquitto servis olarak kurulumdan sonra başlayacaktır.


MQTT istemcilerini yükleyin

sudo apt-get install mosquitto-clients

   Mosquitto istemcileri, MQTT'yi bir komut satırı yardımcı programı aracılığıyla kolayca test etmemize yardımcı olur.  Biri "test"   olarak adlandırılmış konuya abone olmak ve diğerinde ise ona bir mesaj yayınlamak için iki komut penceresi kullanacağız .

Konular , aracı tarafından bağlı her bir istemci için iletileri filtrelemek için kullanılan etiketlerdir. Bir konuya abone olan bir müşteri programı "Home1/BedroomTemp"yalnızca aynı konuya diğer müşteriler tarafından yayınlanan mesajları dinleyecektir.

 "test" Konusuna abone olalım

mosquitto_sub -h 127.0.0.1 -p 1883 -t "test"


mosquito_subönceki komutta kurduğumuz bir abone istemcisidir. Yani bununla abone olduğumuz konuyu dinliyoruz. Konumuza  gelen bir mesaj olursa görebilmek için.

-t parametresi ile abone olacağımız konuyu belirtiyoruz.

-h parametresi mosquitto sunucumuzun adresidir. Bu adres uzak bir sunucu da olabilir

-p parametresi mosquitto sunucumuzun portunu değer olarak alır.

bu iki parametresi yazmasınız da normalde siste çalışacaktır. Ama güvenlik için port ve sunucu adresinizi değiştirmişseniz bu parametreleri girmeniz gerekli. Ben şahsen her seferinde yazıyorum. 


"test" Konusuna bir mesaj yayınlayın 

Terminalde ikinci bir örnek olarak sekme açın ve "test"  adlı konuya bir mesaj yayınlayın .

mosquitto_pub -m "mesajımız bu" -t "test"

-m parametresi istemcilere gidecek olan mesajın içeriğini oluşturuyor. Eğer rakam harici bir değer gönderiyorsanız tırnak (") içerisinde mesajın içeriğini yazın.



Üçüncü Adım: Parola ile Güvenlik Sağlayın

Mosquitto bir şifre dosyası oluşturma yardımcı programıyla birlikte gelir. 

mosquitto_passwd komutu ile Mosquitto sunucumuza bir kullanıcı adı ve şifre belirleyip sistem güvenliğimizi sağlayabiliriz.

sudo mosquitto_passwd -c /etc/mosquitto/passwd aydin

şifre isteyecektir. Password: 1234 olarak belirledim ben.

Mosquitto için az önce oluşturduğumuz şifre dosyasına işaret eden bir yapılandırma dosyası oluşturun.


Mosquitto için az önce oluşturduğumuz şifre dosyasına işaret eden bir yapılandırma dosyası oluşturun.

sudo nano /etc/mosquitto/conf.d/default.conf

Bu boş bir dosya açacaktır. Aşağıdakini içine yapıştırın.

allow_anonymous false
password_file /etc/mosquitto/passwd

F2 ile kaydedip çıkın .


Şimdi Mosquitto sunucusunu yeniden başlatın ve değişikliklerimizi test edin.

sudo systemctl restart mosquitto

Abone olma istemcisi penceresinde, abone olma istemcisinden Ctrl+Cçıkmak için düğmesine basın ve aşağıdaki komutla yeniden başlatın.

mosquitto_sub -t "test" -u "aydin" -P "1234"

-P' ye dikkat edin . Bu port değil belirlediğimiz şifremiz.


İstemci yayınla penceresinde şifresiz bir mesaj yayınlamayı deneyin.

mosquitto_pub -t "test" -m "message from mosquitto_pub client"

Mesaj aşağıdaki hata mesajı ile reddedilecektir.

Connection Refused: not authorised.
Error: The connection was refused.

Şimdi kullancı adımız ve şifremiz ile bir mesaj yayınlayın.

mosquitto_pub -t "test" -m "deneme" -u "aydin" -P "1234"

Enterbastığınızda, İkinci Adımda olduğu gibi, istemciye abone olunup penceresinde mesajı göreceksiniz.

Sonuç

Şimdi şifre korumalı bir MQTT sunucusu kurduk. Ubuntu sunucunuzun Genel IP' sini projeleriniz için bir MQTT aracısı olarak kullanabilirsiniz.


İnşallah daha sonra bunları video ders olarak hazırlayacağım.









Yorumlar

Bu blogdaki popüler yayınlar

Openhab2 Kurulum Maceram - 2. Bölüm

Ubuntu Üzerine openHAB 3 Kurulumu