안녕하세요.
이전 내용에서는 Docker를 사용해서 Mosquitto 소스를 컴파일해서 설치해 보았는데요.
그렇게 말고 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
'Embedded > RaspberryPI' 카테고리의 다른 글
[MQTT] CM4 RaspberryPi에 Node-RED 설치하기 (0) | 2023.12.26 |
---|---|
[MQTT] CM4 RaspberryPi에 InfluxDB 설치와 설정하기 (2) | 2023.12.22 |
Waveshare IO Board + Raspberry PI CM4에 MQTT broker mosquitto2.0.9 컴파일과 도커(docker) 이미지 생성하기 (2) | 2023.12.18 |
Waveshare IO Board + Raspberry PI CM4에 OS 설치하기 (2) | 2023.11.27 |
Raspberry Pi 4 Compute Module (CM4) Raspberry OS 설치 및 I/O 보드별 설정 방법 비교 (0) | 2023.11.24 |