본문 바로가기

Message Queue/Rabbit MQ

Rabbit MQ - Master Server 구성

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