(1). CentOS에서 Erlang 컴파일 및 설치
RabbitMQ는 Erlang에 의존하므로 RabbitMQ를 설치하기 전에 먼저 Erlang을 설치해야 합니다. 참고로, Erlang과 RabbitMQ 버전 간의 호환성은 다음 링크에서 확인할 수 있습니다: https://www.rabbitmq.com/which-erlang.html.
본 예제에서는 Erlang 24.2와 RabbitMQ 3.9.11을 사용합니다.
- 우선 필요한 컴파일 도구와 라이브러리를 설치합니다.
[root@server ~]# yum -y install make gcc gcc-c++ m4 perl openssl openssl-devel ncurses-devel
- 다운로드한 소스 파일을 압축 해제하고 컴파일하여 설치합니다.
[root@server ~]# tar zxvf otp_src_24.2.tar.gz
[root@server ~]# cd otp_src_24.2/
[root@server otp_src_24.2]# ./configure --prefix=/usr/local/erlang
[root@server otp_src_24.2]# make && make install
[root@server otp_src_24.2]# echo $?
0
주의: --prefix 옵션을 지정하지 않으면 기본 경로 /usr/local/bin, /usr/local/lib 등에 파일이 배치됩니다.
- 환경 변수 설정 및 적용
[root@server otp_src_24.2]# vi /etc/profile
// 마지막 줄에 아래 내용 추가 후 저장 및 종료
export PATH=$PATH:/usr/local/erlang/bin
[root@server otp_src_24.2]# source /etc/profile
- Erlang 설치 여부 확인
[root@server otp_src_24.2]# erl
Erlang/OTP 24 [erts-12.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V12.2 (abort with ^G)
1>
(2). RabbitMQ 이진 패키지 설치
- RabbitMQ 이진 파일을 다운로드하고 압축을 풉니다.
[root@server ~]# mkdir /usr/local/rabbitmq
[root@server ~]# tar xvf rabbitmq-server-generic-unix-3.9.11.tar.xz -C /usr/local/rabbitmq/
- RabbitMQ 환경 변수 설정
[root@server ~]# vi /etc/profile
// 마지막 줄에 아래 내용 추가 후 저장 및 종료
export PATH=$PATH:/usr/local/rabbitmq/rabbitmq_server-3.9.11/sbin
[root@server ~]# source /etc/profile
- RabbitMQ 실행 방법
// 백그라운드 모드 실행
[root@server ~]# rabbitmq-server -detached
// 프론트 모드 실행 (테스트 용도)
[root@server ~]# rabbitmq-server start
추가적으로 상태 확인 및 서비스 중단 명령어:
[root@server ~]# rabbitmqctl status // 상태 확인
[root@server ~]# rabbitmqctl stop // 서비스 중단
- 웹 관리 플러그인 활성화
[root@server rabbitmq]# rabbitmq-plugins enable rabbitmq_management
완료 후 브라우저에서 [IP주소]:15672으로 접속 가능합니다.
- 사용자 관리
기본 제공되는 guest 계정은 로컬에서만 사용 가능하며 원격 서버에서 접근하려면 새로운 계정을 생성해야 합니다.
// 사용자 추가
[root@server ~]# rabbitmqctl add_user admin 비밀번호
// 권한 부여
[root@server ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
// 사용자 태그 설정 (역할 지정)
[root@server ~]# rabbitmqctl set_user_tags admin administrator