Embedded/RaspberryPI

[MQTT]CM4 RaspberryPi에 Mosquitto 간편하게 설치하고 사용자 추가하기

변화의 물결1 2023. 12. 21. 18:33

 

안녕하세요.

 

이전 내용에서는 Docker를 사용해서 Mosquitto 소스를 컴파일해서 설치해 보았는데요.

 

 

Waveshare IO Board + Raspberry PI CM4에 MQTT broker mosquitto2.0.9 컴파일과 도커(docker) 이미지 생성하기

안녕하세요. 최근 들어 AIoT라고도 하며 인공지능과 IoT를 접목한 기술들을 많이 선보이고 있습니다. 그중의 기술인 MQTT에 대해서 확인해 보면 좋을 거라 생각됩니다. 센서단 IoT 기계들도 데이터

remnant24c1.tistory.com

그렇게 말고 apt를 이용해서 쉽게 설치하고 계정까지 설정하는 하는 방법을 확인해 보겠습니다. 작은 서버로 사용하기 위해서 RaspberryPi는 64bit Lite(bookworm) 버전으로 설치했습니다.


 

1. MQTT(mosquitto) 설치

1) 프로그램 설치

sudo apt install mosquitto mosquitto-clients

 

 

  

2) 사용자 생성

 

 - 사용자가 원하는 아이디와 암호를 설정합니다.

 

echo “mqtt_id:mqtt_pw” > pwfile
cat pwfile

 

  

3) 설정파일 암호화 

 

 - 암호문자열을 암호화(data encryption) 하고 파일을 mosquitto 설정 디렉터리에 이동합니다.

 

mosquitto_passwd -U pwfile
cat pwfile
sudo mv pwfile /etc/mosquitto/

 

 

 

4) 사용자 설정 적용하기

 

 - 설정파일에 들어가서 익명사용자 접속을 막고 추가한 사용자만 접속할 수 있도록 합니다.

 - 포트 설정 부분을 해주지 않으면 내부에서도 멀티 레벨(Multi Level) 기호(“#”)로 메시지를 다 볼 수 있습니다.

     

sudo vim /etc/mosquitto/mosquitto.conf

 

- 설정 파일 내부

 

allow_anonymous false
password_file /etc/mosquitto/pwfile

listener 1883 0.0.0.0

 

  

5) mosqutto 재시작

   

sudo /etc/init.d/mosquitto restart  혹은 sudo service mosquitto restart

 

 

6) 구독 설정하기 (멀티 레벨)

 

 - 추가한 사용자는 구독한 토픽의 메시지를 받을 수 있습니다.

 

  (6-1) 권한 없이 토픽을 구독하려면 에러 발생

 

mosquitto_sub -v -t “#”

 

  

  (6-2) 권한을 설정하고 구독하면 토픽의 메시지를 기다리는 상태가 됩니다.

 

mosquitto_sub -h localhost -v -u mqtt_id -P mqtt_pw -t "#"

 

 

 

7) 메시지 발행하기

 

- shell에서 메시지 발행하기

 

 mosquitto_pub -h localhost -t /sersor1 -u mqtt_id -P mqtt_pw -m "this is sensor1"

 

  

- 외부 툴을 이용해서 메시지 발행하기

 

 

- 발행한 메시지를 받은 것을 확인할 수 있습니다.

 

 

8) 사용자 추가하는 방법

 

- 사용자를 추가하고 서비스를 재시작해주어야 적용이 됩니다.

 

sudo mosquitto_passwd -b /etc/mosquitto/pwfile admin 1234
cat /etc/mosquitto/pwfile
sudo mosquitto restart

 

 

 

감사합니다.

 

 

<참고 사이트>

1. MQTT Essentials

https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/

2. MQTT broker 암호화

https://chichi-story.tistory.com/34   

 

 

반응형