Mosquitto: mudanças entre as edições
(15 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
=Mosquitto= | =Mosquitto= | ||
O [https://mosquitto.org/ Mosquitto] é um | O [https://mosquitto.org/ Mosquitto] é um Broker MQTT ''open source'', que pode ser utilizado desde computadores de placa única até servidores. | ||
O Mosquitto implementa o modelo '''publilsher/subscriber''' e pode ser utilizado em aplicações de '''Internet das Coisas''', as quais fazem uso de sensores de baixa potência, atuadores, dispositivos móveis, microcontroladores e outros dispositivos programáveis. | O Mosquitto implementa o modelo '''publilsher/subscriber''' e pode ser utilizado em aplicações de '''Internet das Coisas''', as quais fazem uso de sensores de baixa potência, atuadores, dispositivos móveis, microcontroladores e outros dispositivos programáveis. | ||
O Mosquitto oferece comandos de linha como '''mosquitto_pub''' e '''mosquitto_sub''' para publicar e subscrever no ''' | O Mosquitto oferece comandos de linha como '''mosquitto_pub''' e '''mosquitto_sub''' para publicar e subscrever no '''broker''', respectivamente, além de bibliotecas em C para implementação de cliente MQTT. | ||
==Instalação e inicialização do Mosquitto no Ubuntu== | |||
sudo apt | sudo apt update | ||
sudo apt | sudo apt install mosquitto | ||
sudo apt | sudo apt install mosquitto-clients | ||
Depois de instalado no Ubuntu o Mosquito é automaticamente iniciado, assim como é iniciado a cada reboot. Para verificar se está rodando, pode utilizar o comando: | Depois de instalado no Ubuntu o Mosquito é automaticamente iniciado, assim como é iniciado a cada reboot. Para verificar se está rodando, pode utilizar o comando: | ||
Linha 26: | Linha 26: | ||
man mosquitto | man mosquitto | ||
==Teste do Mosquitto== | |||
Use um terminal para '''subscrever''' um '''tópico''': | Use um terminal para '''subscrever''' um '''tópico''': | ||
mosquitto_sub -t | mosquitto_sub -t teste | ||
Use outro terminal para '''publicar''' uma '''mensagem''' em um '''tópico''': | Use outro terminal para '''publicar''' uma '''mensagem''' em um '''tópico''': | ||
mosquitto_pub -m | mosquitto_pub -m mensagem -t teste | ||
Ver detalhes e exemplos destes comandos em: | Ver detalhes e exemplos destes comandos em: | ||
man mosquitto_pub | man mosquitto_pub | ||
man mosquitto_sub | man mosquitto_sub | ||
==Conexão ao Mosquitto a partir de clientes externos== | |||
Por padrão o Mosquitto vem habilitado para aceitar conexões a partir do ''localhost''. | |||
Para habilitar conexão a partir de clientes externos, deve-se habilitar nos arquivos de configuração do Mosquitto. | |||
/etc/mosquitto/conf.d/mosquitto.conf | |||
:inserir as linhas: | |||
allow_anonymous true | |||
listener 1883 0.0.0.0 | |||
A '''porta TCP''' padrão de escuta do Mosquitto é '''1883'''. | |||
Esta porta pode ser alterada com um parâmetro na inicialização: | |||
mosquitto -p 1888 | |||
:ou especificando no arquivo de configuração: | |||
/etc/mosquitto/conf.d/mosquitto.conf | |||
==Segurança no Mosquitto== | |||
; | |||
Referências: <ref>[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-18-04 How to Install and Secure the Mosquitto MQTT Messaging Broker]</ref>, <ref>[https://medium.com/tht-things-hackers-team/instalar-mqtt-broker-no-linux-debian-ubuntu-f8861da70ef6 Fernando Veiga. Instalar MQTT-Broker no Linux, Things Hackers Team, 2018.]</ref>. | |||
==Mosquitto em contêiner Docker== | ==Mosquitto em contêiner Docker== |
Edição atual tal como às 20h32min de 27 de outubro de 2022
Mosquitto
O Mosquitto é um Broker MQTT open source, que pode ser utilizado desde computadores de placa única até servidores.
O Mosquitto implementa o modelo publilsher/subscriber e pode ser utilizado em aplicações de Internet das Coisas, as quais fazem uso de sensores de baixa potência, atuadores, dispositivos móveis, microcontroladores e outros dispositivos programáveis.
O Mosquitto oferece comandos de linha como mosquitto_pub e mosquitto_sub para publicar e subscrever no broker, respectivamente, além de bibliotecas em C para implementação de cliente MQTT.
Instalação e inicialização do Mosquitto no Ubuntu
sudo apt update sudo apt install mosquitto sudo apt install mosquitto-clients
Depois de instalado no Ubuntu o Mosquito é automaticamente iniciado, assim como é iniciado a cada reboot. Para verificar se está rodando, pode utilizar o comando:
ps -aux|grep mosquitto
Parar, iniciar ou reiniciar Mosquitto:
service mosquitto stop service mosquitto start service mosquitto restart
Iniciar o Mosquitto com verbose dos logs de operação:
mosquitto -v
Páginas man:
man mosquitto
Teste do Mosquitto
Use um terminal para subscrever um tópico:
mosquitto_sub -t teste
Use outro terminal para publicar uma mensagem em um tópico:
mosquitto_pub -m mensagem -t teste
Ver detalhes e exemplos destes comandos em:
man mosquitto_pub man mosquitto_sub
Conexão ao Mosquitto a partir de clientes externos
Por padrão o Mosquitto vem habilitado para aceitar conexões a partir do localhost.
Para habilitar conexão a partir de clientes externos, deve-se habilitar nos arquivos de configuração do Mosquitto.
/etc/mosquitto/conf.d/mosquitto.conf
- inserir as linhas:
allow_anonymous true listener 1883 0.0.0.0
A porta TCP padrão de escuta do Mosquitto é 1883.
Esta porta pode ser alterada com um parâmetro na inicialização:
mosquitto -p 1888
- ou especificando no arquivo de configuração:
/etc/mosquitto/conf.d/mosquitto.conf
Segurança no Mosquitto
Mosquitto em contêiner Docker
Rodando o Mosquitto em um contêiner Docker com Alpine Linux [3]
- Comando para rodar o mosquitto no contêiner
docker run -p 1883:1883 --name mosquitto trafex/alpine-mosquitto
- Roda o contêiner para escutar na porta 1883 padrão do host, com nome mosquitto.
- trafex/alpine-mosquitto é o nome da imagem.
O servidor Mosquitto fica acessível como se estivesse rodando na máquina que está hospedando o Docker.
- Subscrever tópicos e e publicar mensagens
Usando o cliente para subscrever um tópico:
docker exec -ti mosquitto mosquitto_sub -h 127.0.0.1 -v -t '#'
- O comando exec executa o mosquitto_sub no contêiner rodando.
Usando o cliente para publicar no tópico:
docker exec -ti mosquitto mosquitto_pub -h 127.0.0.1 -t 'hello' -m 'world'
- O comando exec executa o mosquitto_pub no contêiner rodando.
Referências
Evandro.cantu (discussão) 11h06min de 13 de abril de 2020 (-03)