CentOS에 Mosquitto 최신 버전 설치 및 실행

냥무룩·2023년 11월 22일
0

리눅스 알아가기

목록 보기
2/2

MQTT 브로커 서버로 activeMQ를 사용하고 있었는데 MQTT 프로토콜 버전 5.0을 지원하지 않아 Mosquitto로 바꾸기로 하였다.

처음엔 yum을 이용하여 간편하게 설치하였는데 버전이 1.6.10 이었다.

그리고 MQTT 3.1.1을 사용한다고 적혀 있었다.
검색해보니 1.6 이후 부터 MQTT 5.0을 지원한다고 써있긴 하지만
확실하게 최신 버전으로 깔고 싶어졌다.

공식 홈페이지 기준으로

2.0.18이 최신 버전인데 처음에는 tar 파일을 받아 설치할까도 생각했지만 패키지 관리가 힘들어질 것 같아 다른 방법을 찾던 중에 snap을 발견하였다.

먼저 yum을 통해 스탭을 설치해 준다.

// 권한 필요시 앞에 sudo
 yum install snap -y

스냅이 설치되면 약간의 시간을 기다려 준다.

셋팅의 시간이 필요한 건지 설치 직후 바로 사용하면 에러가 발생한다.
그 후엔 mosquitto를 설치해 준다.

snap install mosquitto

snap으로 설치하면 기본적으로 외부 접속이 허용되어 있지 않다.
그러므로 config 파일을 수정해 주어야 한다.
모스키토의 config 파일은 mosquitto.conf 이며
snap 기준 conf 파일은 /var/snap/mosquitto/common에 위치한다.
기본적으로 mosquitto_example.conf 가 있을 건데 이것을 기준으로 수정하여 사용하면 편하다.

전체 접속을 허용하려면 2가지만 적어주면 된다.
설정을 바꾸고 나서는 꼭 snap restart mosquitto 를 해주어 재시작 해야 한다.

// snap 패키지 mosquitto 설정파일 위치
cd /var/snap/mosquitto/common

// mosquitto_example.conf을 바탕으로 mosquitto.conf 생성
cp -Rf mosquitto_example.conf mosquitto.conf

vi mosquitto.conf

mosquitto.conf에 들어가면 아마 주석으로 처리된 수 많은 옵션들이 있을 것이다. 그곳에 밑에 내용을 추가해 준다.


allow_anonymous = true
listener 1883

예제 파일에 주석을 제거하여도 되고 따로 작성하여도 무방하다.

allow_anonymous 옵션은 로그인 없이(유저네임과 패스워드 없이) 익명으로 로그인을 허락하는 것이며
listener 1883 은 1883 포트를 리스너 설정하는 것이다.

그 외에 옵션이 궁금하다면 아래의 공식 docs를 참고하길 바란다.
https://mosquitto.org/man/mosquitto-conf-5.html

그리고 만약 전체 접속 허용이 아닌 비밀번호와 같은 인증을 이용하고 싶으면 이 문서를 참고하길 바란다.
https://mosquitto.org/documentation/authentication-methods/

잘 설치되었는지 확인하려면 mosquitto clients인 sub 와 pub을 사용하면 된다.

Mosquitto Test 방법

  • subscribe (메세지 확인)
    
    mosquitto_sub -h 192.168.5.250 -p 1883 -t TOPIC_NAME
    
    mosquitto_sub man page
    • h
      • hostname, 연결하려는 브로커 서버
    • p
      • port, 연결하는 포트
    • t
      • topic, 받을 토픽 이름
  • publish (메세지 전송)
    mosquitto_pub -h 192.168.5.250 -p 1883 -t TOPIC_NAME -m "hello"
    
    mosquitto_pub -h 192.168.5.250 -p 1883 -t TOPIC_NAME -f ./data
    mosquitto_pub man page
    • h
      • hostname, 보내려는 브로커 서버
    • p
      • port, 연결하는 포트
    • t
      • topic, 받을 토픽 이름
    • m
      • message, 전달할 메세지
    • f
      • file, 넘길 파일
    • u
      • username, 유저명 (보안설정 했을 시)
    • P, —pw
      • password, 비밀번호 (보안설정 했을 시)

0개의 댓글