Mosquitto: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(18 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 Brocker MQTT ''open source'', que pode ser utilizado desde computadores de placa única até servidores.
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 '''brocker''', respectivamente, além de bibliotecas em C para implementação de cliente MQTT.
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===
==Instalação e inicialização do Mosquitto no Ubuntu==
  sudo apt-get update
  sudo apt update
  sudo apt-get mosquitto
  sudo apt install mosquitto
  sudo apt-get install mosquitto-clients
  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


===Porta TCP de escuta do Mosquitto===
==Teste do Mosquitto==
O Mosquitto de escuta por padrão na '''porta TCP''' '''1883'''.
 
A porta pode ser alterada com um parâmetro na inicialização:
mosquitto -p 1888
:ou especificando no arquivo de configuração:
/etc/mosquitto/mosquitto.conf
 
===Teste do Mosquitto===


Use um terminal para '''subscrever''' um '''tópico''':
Use um terminal para '''subscrever''' um '''tópico''':
  mosquitto_sub -t "teste"
  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 "Mensagem" -t "teste"
  mosquitto_pub -m mensagem -t teste
Usuários e senhas podem ser configurados para uso no Mosquito, ver <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> <ref>[https://fazbe.github.io/Instalando-testando-e-conhecendo-o-MQTT-no-Ubuntu/ Faz-B. Instalando, testando e conhecendo o MQTT no Ubuntu, 2017.] </ref>.


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==
Rodando o Mosquitto em um contêiner '''[[Docker]]''' com [https://alpinelinux.org/ Alpine Linux] <ref>[https://hub.docker.com/r/trafex/alpine-mosquitto/ Mosquitto Docker container, Trafex, 2019.]</ref>
;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==
==Referências==

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

Referências: [1], [2].

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)