1. RabbitMQ 의존 라이브러리 설치
- erlang 설치
$ sudo wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
$ sudo yum install erlang
2. RabbitMQ 설치
2-1. rabbitmq-server 설치
$ sudo wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.5/rabbitmq-server-3.3.5-1.noarch.rpm
$ sudo rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
$ sudo yum install rabbitmq-server-3.3.5-1.noarch.rpm
- 별도로 설정하지 않을 경우 /usr/sbin 아래의 rabbimq 관련 스크립트들이 실행되는데, rabbiqmq 계정으로 시작되어 관리에 어려움이 있다. irteam 계정으로 운영하기 쉽도록 이 스크립트들은 비활성화 시킨다.
$ sudo mv /usr/sbin/rabbitmqctl /usr/sbin/rabbitmqctl_dont_use
$ sudo mv /usr/sbin/rabbitmq-plugins /usr/sbin/rabbitmq-plugins_dont_use
$ sudo mv /usr/sbin/rabbitmq-server /usr/sbin/rabbitmq-server_dont_use
- rabbitmq bin 디렉토리를 path에 추가하여 편하게 운영할 수 있도록 한다.
$ sudo vi /home1/irteam/.bashrc
PATH=$PATH:/usr/lib/rabbitmq/bin : 추가
2-2. rabbitmq 설정
1) 설정파일은 irteam의 rabbitmq 폴더를 사용하도록 한다.
$ sudo rmdir /etc/rabbitmq/
$ sudo mkdir /home1/irteam/rabbitmq
$ sudo chown irteam:irteam /home1/irteam/*
$ sudo ln -s /home1/irteam/rabbitmq /etc/rabbitmq
2) host 확인 및 변경
$ vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
MQ1번IP mq1호스트
MQ2번IP mq2호스트
3) irteam으로 로그인 변경
- 데이터, 로그, 설정은 irteam 폴더 아래에 생성되도록 한다.
$ vi /home1/irteam/rabbitmq/rabbitmq-env.conf
BASE=/home1/irteam/rabbitmq
CONFIG_FILE=/home1/irteam/rabbitmq/rabbitmq
MNESIA_BASE=/home1/irteam/rabbitmq/mnesia
MNESIA_DIR=/home1/irteam/rabbitmq/mnesia/irteam@MQ1번호스트
LOG_BASE=/home1/irteam/rabbitmq/log
LOGS=/home1/irteam/rabbitmq/log/irteam@MQ1번호스트.log
SASL_LOGS=/home1/irteam/rabbitmq/log/irteam@MQ1번호스트-sasl.log
PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-3.3.5/plugins
PLUGINS_EXPAND_DIR=/home1/irteam/rabbitmq/mnesia/irteam@MQ1번호스트-plugins-expand
ENABLED_PLUGINS_FILE=/home1/irteam/rabbitmq/enabled_plugins
PID_FILE=/home1/irteam/rabbitmq/mnesia/irteam@MQ1번호스트.pid
$ vi /home1/irteam/rabbitmq/rabbitmq.config
[
{rabbitmq_management, [
{http_log_dir, '/home1/irteam/rabbitmq/log/management'}
]},
{rabbit, [
{heartbeat, 200},
{log_levels, [
{connection, info},
{mirroring, info},
{federation, info}
]}
]}
].
2-3. management-plugin 활성화
$ rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
2-4. 계정 추가
- guest/guest 계정이 기본적으로 생성은 되어있지만, 기본적으로 localhost에서만 이 계정으로 접근 가능하다.
- 보안을 고려하여 이 정책을 변경없이 그대로 사용하고, 새로운 계정을 추가하여 사용한다.
$ rabbitmqctl add_user ssingssing2 ssingssing2
$ rabbitmqctl set_user_tags ssingssing2 administrator
$ rabbitmqctl set_permissions -p / ssingssing2 ".*" ".*" ".*"
$ rabbitmqctl change_password ssingssing2 ssingssing2 1234
2-5. 서버 시작
$ rabbitmq-server -detached
2-6. 관리자 페이지
- http://MQ1번 IP:15672/
3. RabbitMQ 클러스터링 구성 & HA 정책 설정
3-1. 쿠키 확인
$ cat /home1/irteam/.erlang.cookie
YKUTBKUGBJJTHKIID
3-2. vhost 추가
# virtual-host '/ssingssing2' 로 MQ를 운영한다.
$ rabbitmqctl add_vhost /ssingssing2
$ rabbitmqctl set_permissions -p /ssingssing2 ssingssing2 ".*" ".*" ".*"
3-3. HA 정책 추가
$ rabbitmqctl set_policy -p /ssingssing2 ha-all "" '{"ha-mode":"all"}'
'Message Queue > Rabbit MQ' 카테고리의 다른 글
Rabbit MQ - RAM Node Server 구성 (0) | 2020.02.07 |
---|