CentOS 7 RabbitMQ 설치
RabbitMQ 는 AMQP(Advanced Message Queuing Protocol) 를 지원하는 메시징 큐 브로커 입니다. 큐(Queue) 자료구조의 동작방법 그대로 서버로서 역활을 하도록 만든 서버 입니다.
CentOS 7 RabbitMQ 설치 방법을 설명 합니다.
1. EPEL 저장소 추가.
RabbitMQ 는 Erlang 이라는 언어로 작성되었습니다. 따라서 이 패키지가 설치되어 있어야 하는데, CentOS 7 에서는 패키지로 제공하지 않습니다. 대신에 EPEL 저장소를 추가해서 사용 합니다.
1 2 3 4 |
# Epel 저장소 설치. yum install http://mirror.premi.st/epel/7/x86_64/e/epel-release-7-1.noarch.rpm # Erlang 을 설치 yum install erlang |
2. RabbitMQ 설치.
현재(2014년 9월 16일) RabbitMQ 서버의 최신 버전은 ‘3.3.5-1’ 입니다. 이를 설치 합니다.
1 2 3 4 5 6 7 8 |
# rpm 사인 키 추가. rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc # wget 을 이용해 최신의 rabbitmq 버전을 다운로드. wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.5/rabbitmq-server-3.3.5-1.noarch.rpm # yum 을 이용해서 rpm 패키지 설치. yum install rabbitmq-server-3.3.5-1.noarch.rpm |
3. Web Console 활성화.
RabbitMQ 는 Web Console 을 지원 합니다. 이를 위해서 RabbitMQ 의 Console Management 플러그인을 활성화 해주고 서버를 재시작 해줍니다.
1 2 |
# Management 활성화 rabbitmq-plugins enable rabbitmq_management |
4. 서비스 등록
CentOS 7 부터 서비스 관리는 systemd 에서 하도록 변경되었지만 RabbitMQ 는 아직 여기에 대응하지 않습니다. 예전과 같이 chkconfig 도구를 이용해서 서비스를 런레벨(run level) 에 등록해 줍니다.
1 2 |
# RabbitMQ 서버 서비스 등록. chkconfig --level 3 rabbitmq-server on |
5. CentOS 7 에서 시작 문제.
RabbitMQ 의 최신 패키지는 CentOS 7 의 Systemd 를 지원하지 않아 구동을 한다고 하더라도 다음과 같은 오류를 만나게 됩니다.
1 2 3 4 5 |
Aug 20 15:08:51 localhost rabbitmq-server: Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err} Aug 20 15:08:51 localhost rabbitmq-server: rabbitmq-server. Aug 20 15:08:51 localhost systemd: rabbitmq-server.service: control process exited, code=exited status=1 Aug 20 15:08:51 localhost systemd: Failed to start LSB: Enable AMQP service provided by RabbitMQ broker. Aug 20 15:08:51 localhost systemd: Unit rabbitmq-server.service entered failed state. |
이는 SELINUX 를 disabled 처리해주면 구동이 가능합니다.
6. Web Console 에 로그인 계정 추가.
메뉴얼에 의하면 Web Console 의 기본 계정인 guest/guest 는 로컬호스트에서 접속할때만 가능합니다. 외부에서 접속할때는 불가능 합니다. 그래서 새로운 계정을 다음과 같이 추가해줍니다.
1 2 3 4 5 6 7 8 |
# 사용자/패스워드 로 계정 생성 rabbitmqctl add_user test test # 계정의 권한을 관리자로 지정 rabbitmqctl set_user_tags test administrator # 접속관련 퍼미션을 지정해 줍니다. rabbitmqctl set_permissions -p / test ".*" ".*" ".*" |
7. firewalld 로 Web Console 접속 포트 개발
RabbitMQ 의 Web Console 은 15672 포트를 사용 합니다. 이를 firewalld 를 이용해서 개방해 줍니다.
1 2 3 4 5 6 7 8 |
# public 존에 15672 TCP 포트 추가 firewall-cmd --permanent --zone=public --add-port=15672/tcp # 적용하기 firewall-cmd --reload # 체크하기 firewall-cmd --zone=public --list-ports |
8. http://서버IP:15672 접속.
이제 웹 브라우저를 열고 http://서버ip:15672 를 하면 로그인 화면이 나옵니다. 여기서 아까 생성한 관리자 아이디/패스워드를 입력해서 로그인이 되면 정상입니다.