Monitorowanie komunikatów mosquitto za pomocą mosquitto_sub

Połączenie do serwera mosquitto pod adresem 192.168.1.1 i prenumerata wszystkich komunikatów w temacie "dc/test":

mosquitto_sub -h 192.168.1.1 -t "dc/test"

Jeżeli chcemy dobierać wszystkie komunikaty z podatematów test to należy zastosować:

mosquitto_sub -h 192.168.1.1 -t "+/test"

Należy mieć na uwadze, że jeżeli pojawi się komunikat w temacie nadrzędnym do "test" np.: xy/test/beta to nie zostanie on odebrany.

Subskrypcja wszystkich komuniktów ze wszystkich tematów zaczynących się od "dc":

mosquitto_sub -h 192.168.1.1 -t "dc/#"

Pobieranie wszystkich komunikatów w których pojawia się podtemat "test":

mosquitto_sub -h 192.168.1.1 -t "+/test/#"

Pobieranie wszystkich komunikatów ze wszystkich tematów:

mosquitto_sub -h 192.168.1.1 -t "#"

Tworzenie połączenia między brokerami (bridge)

Połączenie między serwerami MQTT technicznie wygląda tak jakby jeden z brokerów stawał się klientem drugiego brokera. W pliku konfiguracyjnym brokera który będzie pełnił rolę klienta definiujemy parametry połączenia. W pl

# Nazwa połączenia
connection external-bridge

# Adres zdalnego brokera
address 192.168.1.1

# Nazwa którą klient będzie się przedstawiał zdalnemu brokerowi
remote_clientid xyz

topic # in

topic określa które tematy i jak mają być współdzielone, składnia tego polecenie wyląda następująco:

topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix]

Jako pierwszy parametr podajemy wzorzec który określa z których tematów komunikaty mają być współdzielone.

Przekazywanie komunikatów w tematach może odbywać się na trzy sposoby:

  • in odbierać wiadomości z innego serwera (nie wypuszczając lokalnych komunikatów na zewnątrz)
  • out wysyłać wszystkie lokalne komunikaty do drugiego serwera nie pobierając z niego żadnych komunikatów
  • both replikuje komuniakty w dwie strony

Możemy określić poziom QoS używając 0, 1 lub 2.

Ostatnia część to ewentualna translacja tematów. Mamy możliwość zmiany prefixów tematów z jednego brokera przy odbiorze/wysyłaniu komunikatów do drugiego brokera. Pomijając te parametry otrzymamy efekt "bezpośredniego spięcia" brokerów - komuniakty będą przesyłane bez jakichkolwiek zmian w tematach.

topic # both 2 local/topic/ remote/topic/

Powyższe polecenie spowoduje, że wszystkie lokalne tematy po przesłaniu na zdalnego brokera pojawią się na nim z prefixem remote/ a odbierane z niego pojawią się lokalnie z prefixem local/.

topic "" both 2 local_topic remote_topic

Nic nie stoi na przeszkodzie by zamiast parametrów użyć pustego parametru "" - w zamieszczonym wyżej przypadku broker całkowicie zmieni tematy.

Połącznie typu bridge z SSL

Podajemy namiary na plik z certyfikatem publicznym serwera bridge_cafile ca.crt

Podajemy dane do logowania na zdalny serwer:

remote_username user
remote_password pass

Poprzedni wpis Następny wpis