Instalar MQTT-Broker no Linux (Debian /Ubuntu)

Fernando Veiga
THT Brasil
Published in
3 min readApr 23, 2018

MQTT é um protocolo muito utilizado em internet das coisas para comunicação entre maquinas e servidores muito simples. Se baseia em publicar mensagens, e assinar no protocolo TCP. Com ele podemos reunir dados de vários devices como Arduino, ESP8266, ESP32, Raspberry e enviar para um Gateway ou nuvem.

Para fazer essa comunicação, utilizamos o Masquitto, um software open source que nos permite utilizar de forma fácil o MQTT, por ser open, a comunidade tem ajudado muito na documentação, tornando muito simples de se utilizar.

Instalando MQTT — Broker, (Mosquitto)

O primeiro passo é a atualização dos pacotes do Linux (Ubuntu / Debian)

sudo apt-get update
sudo apt-get upgrade
ou sudo apt-get update -y && sudo apt-get upgrade -y

Em seguida, faça a instalação do software mosquitto

sudo apt-get install mosquittosudo apt-get install mosquitto-clients

Utilizamos o mosquitto client para nos ajudar nos testes de MQTT via linhas de comando no terminal. Para se utilizar ele, precisaremos abrir dois terminais de comando, em uma delas vamos criar um tópico assinado (/teste) e no outro vamos publicar as mensagens.

Tópicos são rótulos que utilizamos no Mosquitto para filtrar mensagens de cada cliente conectado. Quando enviamos algo no tópico específico, só receberá quem estiver esperando aquela mensagem por aquele tópico, assim podemos separar e organizar as informações de formas simples.

Enviando e Escutando mensagens MQTT

Para se receber mensagens via MQTT no mosquito, usamos o comando mosquitto_subutilizamos o comando -t para definir em qual tópico enviaremos a mensagem.

EX:

mosquitto_sub -t "test"

Após fazer isso no segundo terminal, vamos enviar a mensagem, para isso utilizaremos o comando mosquitto_pub junto aos comandos -m onde definimos o corpo da mensagem e -tpara definir o tópico, ao final aperte enter para enviar.

mosquitto_pub -m "Mensagem" -t "test"

Seguindo as instruções a cima, você receberá a mensagem publicada no terminal com cliente sub aberto.

Criando usuário e senhas de segurança no MQTT

No Software do Mosquitto MQTT podemos criar senhas para o tráfego de mensagens, para isso usamos o comando mosquito_passwd.

OBS: Para se fazer esse controle, é necessário ser super usuário via sudo.

sudo mosquitto_passwd -c /etc/mosquitto/passwd tht
Password: senha123

Depois crie um arquivo de configuração para o mosquitto e que aponte para a senha que acabamos de criar.

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

Cole o seguinte comando no arquivo que foi criado.

allow_anonymous false
password_file /etc/mosquitto/passwd

Para terminar salve seu arquivo com o comando de teclado Ctrl+o , Enter e em seguida Ctrl+X e reinicie seu software do Mosquitto MQTT com o Comando.

sudo systemctl restart mosquitto

Agora quando chamamos o mosquitto_sub precisamos passar as informações de usuário e senha, para isso utilizamos os comandos -u e -P, se por um acaso alguem tentar enviar uma mensagem sem os referencias de úsuario e senha, aparecerá a seguinte mensagem.

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

Chamando o Mosquitto_sub com usuário e senha para escutar o tópico /teste.

mosquitto_sub -t "/teste" -u "tht" -P "senha123"

Enviando mensagens com o Mosquito_Pub com usuário e senha.

mosquitto_pub -t "/teste" -m "mensagem" -u "tht" -P "senha123"

Ao pressionar Enter, a mensagem chegará ao terminal com cliente sub aberto no tópico selecionado.

Com isso conseguimos fazer uma comunicação segura e bem organizada com MQTT.

Agradecimento especial ao Matheus Marabesi que me ensinou muito o conceito de utilização do MQTT configurando tanto em terminal quanto no proprio Node Red.

Nos sigam nas redes sociais para ficar por dentro das novidades do Node Red.

Things Hacker Team

facebook.com/ThingsHackerTeam

instagram.com/tht.br

NodeRed-Brasil

facebook.com/NodeREDBrasil/

instagram.com/noderedbrasil/

twitter.com/noderedbrasil

Me sigam também nas redes Sociais.

Fernando Veiga

linkedin.com/in/pfveiga7

facebook.com/fernando.veiga.3950

instagram.com/pfveiga7

--

--

Fernando Veiga
THT Brasil

Community Manager abro caminho para a o crescimento da comunidade com relações publicas e criando elos com outras entidades para dissiminação do saber.