구축 & 운영/RabbitMQ

RabbitMQ 설치

단칸이 2022. 3. 19. 12:02

Erlang 설치

RabbitMQ는 Erlang 언어로 개발되었으며, 구동을 위해서는 해당 언어를 설치해야 합니다. 

# erlang과 종속적인 패키지 설치
sudo yum install socat
sudo yum install logrotate

# erlang을 repository에 추가
wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-2.0-1.noarch.rpm 

# erlang 설치
sudo yum install erlang

# erlang 설치 확인
erl

Erlang과 RabbitMQ의 호환되는 버전은 [링크] 페이지를 통해 확인할 수 있습니다.


RabbitMQ 설치

RabbitMQ 설치를 진행합니다. (wget 명령에 사용된 설치 주소는 [링크] 페이지에서 버전 별로 확인할 수 있습니다.)

# CentOS8이나 RHEL8은 el8, CentOS7은 el7을 설정합니다.
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.8/rabbitmq-server-3.9.8-1.el7.noarch.rpm

sudo rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo yum install rabbitmq-server-3.9.8-1.el7.noarch.rpm

여기까지 진행하면 RabbitMQ 설치가 완료되며, 서비스의 실행 및 부팅 시 자동 실행을 등록합니다.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

RabbitMQ에서 사용하는 포트의 방화벽을 해제합니다.

# 클러스터링에 사용되는 포트
sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp

# 클러스터링 되어있는 노드 간 통신을 위해 사용되는 포트 (AMQP + 20000으로 동적 계산)
sudo firewall-cmd --zone=public --permanent --add-port=25672/tcp

# TLS를 사용하는 AMQP 클라이언트
sudo firewall-cmd --zone=public --permanent --add-port=5671/tcp

# TLS를 사용하지 않는 AMQP 클라이언트
sudo firewall-cmd --zone=public --permanent --add-port=5672/tcp

# 관리 플러그인에서 사용하는 포트
sudo firewall-cmd --zone=public --permanent --add-port=15672/tcp

# TLS를 사용하지 않는 STOMP 클라이언트
sudo firewall-cmd --zone=public --permanent --add-port=61613/tcp

# TLS를 사용하는 STOMP 클라이언트
sudo firewall-cmd --zone=public --permanent --add-port=61614/tcp

# (MQTT 플러그인이 활성화된 경우) TLS를 사용하는 MQTT 클라이언트
sudo firewall-cmd --zone=public --permanent --add-port=1883/tcp

# (MQTT 플러그인이 활성화된 경우) TLS를 사용하지 않는 MQTT 클라이언트
sudo firewall-cmd --zone=public --permanent --add-port=1883/tcp

# (웹 STOMP 플러그인이 활성화된 경우에만) STOMP-over-WebSocket
sudo firewall-cmd --zone=public --permanent --add-port=15674/tcp

# (웹 MQTT 플러그인이 활성화된 경우에만) MQTT-over-WebSocket
sudo firewall-cmd --zone=public --permanent --add-port=15670/tcp

# 방화벽 설정 reload
sudo firewall-cmd --reload

SELinux를 사용하고 있는 경우 다음 명령을 입력합니다.

sudo setsebool -P nis_enabled 1

관리 플러그인 설치

RabbitMQ는 자체적으로 관리 플러그인을 제공하고 있으며, 이를 이용하면 웹 UI 상에서 상태 모니터링 및 메시지 큐 관리 등을 간편하게 사용할 수 있습니다.

# RabbitMQ 관리 플러그인 사용 설정
sudo rabbitmq-plugins enable rabbitmq_management

# 파일 소유권 변경 (기본적으로 설정 되어 있습니다.)
sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

RabbitMQ의 관리 계정을 생성하고 권한을 부여합니다. Configure / Read / Write 권한을 설정할 수 있습니다.

# 계정 추가
sudo rabbitmqctl add_user 계정명 비밀번호

# 생성한 계정을 관리 그룹으로 설정
sudo rabbitmqctl set_user_tags 계정명 administrator

# 생성한 계정을 루트 가상호스트('/')에 모든 권한을 부여하도록 설정
sudo rabbitmqctl set_permissions --vhost / 계정명 “.*” “.*” “.*”

위 설정까지 완료한 후 브라우저에서 http://IP:15672 주소를 입력하면 RabbitMQ의 관리 페이지가 표시됩니다.

'구축 & 운영 > RabbitMQ' 카테고리의 다른 글

RabbitMQ - 메시지 큐의 주요 속성  (0) 2022.03.19
Web STOMP 플러그인 설치  (0) 2022.03.19
메시지 브로커 비교 (Apache Kafks vs RabbitMQ vs ActiveMQ)  (0) 2022.03.08
ActiveMQ 조사  (0) 2022.03.08
RabbitMQ 조사  (0) 2022.03.08