본문으로 바로가기

Ubuntu 에 Mosquitto Broker 설치하기

category Linux/Ubuntu 2015.03.08 01:41

Mosquitto 란 MQTT 의 오픈소스로 간단히 말하면 메세지 서버 입니다.



간단히 개념을 짚고 넘어 가자면


Mosquitto_pub -> Mosquitto Broker -> Mosquitto_sub


Mosquitto_pub 는 Publish 로 발행자를 의미합니다. 메세지를 보내는 역할을 하고요.


Mosquitto Broker 는 중간에 메세지를 각 클라이언트한테 전달, 관리 하는 역할으르 합니다.


Mosquitto_sub 는 Subscribe 로 구독자, 메세지를 받는자를 뜻합니다. 각 토픽(채널)에 접속해서 다른 메세지를 받을수 있으며 기본적으로 아이디와 비밀번호의 적용이 가능합니다.


더욱 자세한 내용은 구글링을 추천 드립니다.


Ubuntu 에서의 설치 방법은 간단합니다.


우선 저장소 업데이트를 위해 아래의 명령어를 실행하여 주도록 합니다.


sudo apt-get install python-software-properties
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update


그리고 정상적으로 업데이트 되었는지 확인하여 봅니다.


sudo apt-cache search mosquitto





이제 mosquitto를 설치하시면됩니다.


sudo apt-get install mosquitto 


설치가 모두 완료 되었다면 이제 실행해서 정상적으로 작동하는지 확인합니다.


mosquitto



기본적으로 1883 포트를 이용하며 설정 파일은 패키지 설치시 /etc/mosquitto/conf.d 에 *.conf 로 넣으시면 됩니다.


이제 다른 컴퓨터 혹은 다른 장비에서 클라이언트를 설치하고 접속을 확인해 보도록합니다.

*여기서는 VM 을 이용하여 테스트해보았습니다.


클라이언트는 위와 같은 방법으로 저장소 업데이트 까지 진행한 후 mosquitto 대신 mosquitto-client 를 설치합니다.

*클라이언트는 여러 종류가 있을 수 있습니다. 여기서는 간단하게 하기위해 mosquitto-client 를 이용할 뿐입니다.


sudo apt-get install mosquitto-clients


그리고 아래의 명령어로 위에서 실행한 서버에 접속을 시도 합니다.


mosquitto_sub -h 서버 주소 -t /토픽


위는 구독할때 그리고 아래는 메세지를 보낼때 사용하는 명령입니다.


mosquitto_pub - h 서버 주소 -t /토픽 -m "메세지"


토픽은 채널과 같은 역할을 하며 서버 주소는 말그대로 IP 혹은 도메인을 뜻합니다.

아래는 예제 결과 입니다.


-p 는 포트를 말합니다. 저 같은경우 기본 포트가 아닌 다른 포트를 이용하였기 때문에 넣어 주었습니다.




저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요

  1. 2015.05.16 04:40

    비밀댓글입니다

  2. shinyryu09 2015.07.16 11:40 신고

    좋은 정보 감사합니다!
    mosquitto broker를 사용중에 궁금한 점이 있습니다.

    mosquitto.conf 파일에서 max_connections -1로 설정을 하였으나,
    서버당 클라이언트 연결수가 1024를 넘지를 못하고 있습니다.

    최대 접속자 수를 늘리고 싶은데, 어떻게 해야 하나요???

    구글링을 몇일 동안 해보고 있지만, 방법을 못 찾아 질문을 남깁니다.

    • 개발자 눈싹 2015.07.16 20:04 신고

      제가 정확한 테스트 환경에 대해서 알지 못해서 설명을 드릴수가 없내요.

      심지어 저도 Mosquitto 프로젝트가 드랍 되버려서... 다 기억이 나진 않지만 ;;

      제가 알고 있는 것들을 일단 설명을 드려보겠습니다.

      * 혹시 -1 이 아닌 값들로는 정상적으로 적용이 되고 있나요?

      - mosquitto 문제가 아닐수도 있습니다.

      * 리눅스상의 네트워크 커넥션 제한 일 가능성도 있습니다. sudo sysctl net.core.somaxconn 이나 sudo sysctl 을 키워드로 구글링 하여 하여 확인해 보시기 바랍니다. https://rtcamp.com/tutorials/linux/sysctl-conf/

      * 리눅스의 경우 ulimit -a 명령어로 확인해보시면 open files 한번에 최대로 열수있는 파일수가 정해져 있습니다. 이와 같은 설정을 찾아 보시기 바랍니다.

      당장 제가 설명 드릴수 있는 부분이 없내요.;; 제 경험상 Mosquitto 의 설정이 메뉴얼 대로 재대로 되어 있다면 OS 상에서의 제한일 가능성이 높습니다.

튜토리얼북
블로그 이미지 눈싹 님의 블로그
VISITOR 오늘61 / 전체554,733