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 |