기술 가이드

CentOS 7에 RabbitMQ 설치 가이드

4 min read 메시징 업데이트됨 20 Oct 2025
CentOS 7에 RabbitMQ 설치 가이드
CentOS 7에 RabbitMQ 설치 가이드

요약

간단히: 이 가이드는 CentOS 7 서버에 Erlang과 RabbitMQ를 설치하고, 방화벽/SELinux 설정을 조정하며 관리 콘솔을 활성화하는 전체 절차를 제공합니다. 단계별 명령과 웹 관리 로그인 방법, 보안 권장사항, 문제 해결 체크리스트를 포함합니다.

중요: 문서의 모든 명령은 루트(root) 권한으로 실행하도록 작성되어 있습니다. sudo 사용자라면 sudo -i로 전환하세요.

소개

RabbitMQ는 오픈 소스 엔터프라이즈 메시지 브로커입니다. Erlang으로 작성되었으며 AMQP(Advanced Message Queueing Protocol)를 구현합니다. 주요 프로그래밍 언어용 클라이언트 라이브러리를 제공합니다. 메시지 큐잉, 전송 확인(ack), 유연한 라우팅, 여러 교환 타입, HTTP API와 웹 UI를 지원합니다.

간단한 용어정의: AMQP — 메시지 브로커와 클라이언트 사이의 표준 프로토콜.

사전 요구사항

  • 최소한의 CentOS 7 서버
  • 루트 권한(또는 sudo 권한)

시스템 업데이트

패키지와 레포지토리를 최신으로 유지하는 것이 권장됩니다.

yum -y update

업데이트가 완료되면 Erlang 설치로 진행합니다.

Erlang 설치

RabbitMQ는 Erlang으로 구현되어 있습니다. CentOS 기본 YUM 레포지토리에는 최신 Erlang이 없을 수 있으므로 EPEL 저장소를 추가합니다.

yum -y install epel-release

레포지토리를 반영하려면 다시 업데이트합니다.

yum -y update

Erlang과 socat을 설치합니다.

yum -y install erlang socat

설치 후 Erlang 버전을 확인합니다.

erl -version

예시 출력(환경에 따라 다름):

[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4

Erlang 셸로 들어가려면:

erl

셸 예시 출력:

Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.4  (abort with ^G)
1>

셸에서 나오려면 Ctrl+C를 두 번 누르세요.

RabbitMQ 설치

RabbitMQ는 Enterprise Linux 계열용 RPM 패키지를 제공합니다. 먼저 RabbitMQ 서버 RPM을 다운로드합니다. 예시 명령(원문 링크 사용):

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

wget이 없다면 다음으로 설치하세요:

yum -y install wget

GPG 키를 가져옵니다:

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

다운로드한 RPM을 설치합니다:

rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm

설치가 완료되면 RabbitMQ 관련 바이너리가 시스템에 추가됩니다.

RabbitMQ 시작 및 자동 시작 설정

서버를 시작합니다:

systemctl start rabbitmq-server

부팅 시 자동 시작을 설정합니다:

systemctl enable rabbitmq-server

상태 확인:

systemctl status rabbitmq-server

성공 시 예시 출력(환경에 따라 다름):

? rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-07-15 18:59:14 UTC; 3min 22s ago
 Main PID: 29006 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ??29006 /usr/lib64/erlang/erts-9.0/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K tr...
           ??29149 /usr/lib64/erlang/erts-9.0/bin/epmd -daemon
           ??29283 erl_child_setup 1024
           ??29303 inet_gethost 4
           ??29304 inet_gethost 4

Jul 15 18:59:13 centos rabbitmq-server[29006]: Starting broker...
Jul 15 18:59:14 centos rabbitmq-server[29006]: systemd unit for activation check: "rabbitmq-server.service"
Jul 15 18:59:14 centos systemd[1]: Started RabbitMQ broker.
Jul 15 18:59:14 centos rabbitmq-server[29006]: completed with 0 plugins.

방화벽(firewalld) 및 SELinux 설정

기본적으로 RabbitMQ는 여러 포트를 사용합니다. firewalld를 사용하는 경우 필요한 포트를 허용하세요:

firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp

변경 사항을 적용합니다:

firewall-cmd --reload

SELinux가 활성화된 경우 RabbitMQ 작동을 위해 적절한 boolean을 설정하세요:

setsebool -P nis_enabled 1

참고: 운영 환경에서는 포트 범위와 접근 제어를 최소 권한 원칙으로 구성하세요.

웹 관리 콘솔 활성화 및 관리자 계정 생성

웹 관리 플러그인을 활성화합니다:

rabbitmq-plugins enable rabbitmq_management

RabbitMQ 파일 소유권을 rabbitmq 사용자로 설정합니다:

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

관리자 계정을 추가합니다(아래 예시에서 admin과 StrongPassword는 변경하세요):

rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

관리 콘솔 접속 URL:

http://Your_Server_IP:15672/

로그인 페이지 예시:

RabbitMQ 로그인 화면

로그인 후 관리자 대시보드가 표시됩니다:

RabbitMQ 개요 대시보드

Admin 탭에서 사용자와 가상 호스트, 정책을 관리할 수 있습니다. 기본 Guest 계정은 보안상 삭제하거나 접근을 제한하세요.

RabbitMQ 사용자 목록

Queues 탭에서 큐를 만들고 삭제할 수 있습니다.

RabbitMQ 큐 목록

Connections 탭에서 현재 연결을 확인합니다.

RabbitMQ 연결 목록

Exchanges 탭에서 채널과 교환(exchange)을 관리합니다.

RabbitMQ 익스체인지 목록

보안 권장사항

  • 관리 UI는 가능한 경우 내부 네트워크 전용으로 하거나 프록시에서 인증/ACL을 추가하세요.
  • 관리자 계정의 비밀번호는 길고 복잡하게 설정하세요. 비밀번호 관리 도구 사용을 권장합니다.
  • TLS를 사용해서 AMQP(5671)와 관리 포트(HTTPS 리버스 프록시)를 보호하세요.
  • Guest 사용자는 비활성화하거나 삭제하세요.
  • 필요 없는 플러그인은 비활성화하세요.

중요: 공개 인터넷에 15672 포트를 직접 노출하지 마세요.

운영 설치를 위한 권장 절차(간단한 방법론)

  1. 테스트 환경(로컬 또는 스테이징)에 동일한 버전으로 먼저 설치 및 기능 검증.
  2. 구성(사용자/권한/정책)을 코드화(스크립트 또는 구성 관리)하여 재현 가능하게 유지.
  3. 모니터링 지표(메시지 큐 길이, 소비자 지연, 연결 수)를 수집하고 SLI/SLO를 정의.
  4. 백업 및 복구 절차 문서화(구성 파일, 정의된 큐/바인딩 등).
  5. 롤백 계획과 최소 중단 시간 전략 수립.

문제 해결 및 인시던트 런북

일반 이슈와 대응 순서:

  • RabbitMQ가 기동하지 않음

    1. systemctl status rabbitmq-server 확인
    2. /var/log/rabbitmq/에서 최근 로그 확인
    3. Erlang 버전 호환성 확인(로그에 관련 에러 표시)
    4. 포트 충돌(fuser 또는 ss 명령) 여부 확인
  • 노드 간 통신 문제(클러스터링 실패)

    1. 방화벽 포트(4369,25672 등) 개방 확인
    2. 호스트명과 /etc/hosts 설정 확인
    3. Erlang cookie(~/.erlang.cookie) 동일성 확인
  • 관리 콘솔 접속 문제

    1. 플러그인 활성화 확인(rabbitmq-plugins list)
    2. 포트 15672가 방화벽/프록시에서 허용되는지 확인
    3. 사용자 권한 확인(rabbitmqctl list_users, list_permissions)

롤백(예: 새 버전에서 문제 발생 시):

  1. 서비스 중지: systemctl stop rabbitmq-server
  2. 패키지 롤백(예전 RPM 재설치): rpm -Uvh –oldpackage rabbitmq-server-.rpm
  3. 데이터 디렉터리 백업과 복원(/var/lib/rabbitmq 보존)
  4. 서비스 시작 및 기능 확인

역할별 체크리스트

운영팀(DevOps)

  • Erlang/RabbitMQ 패키지 버전 관리
  • 방화벽과 SELinux 규칙 설정
  • 자동 시작 및 모니터링 설정

개발팀

  • 연결 설정(호스트, 포트, TLS) 확인
  • 큐와 교환 설계(내구성, 라우팅 키) 정의
  • 메시지 크기/유효성 테스트

보안팀

  • 관리 UI 접근 제어
  • TLS 설정 검토
  • 사용자 권한 최솟값 적용

수용 기준

  • RabbitMQ 서버가 systemctl에서 active(running) 상태여야 함.
  • 관리 콘솔에 관리자 계정으로 로그인 가능해야 함.
  • 메시지 발송/수신 간단한 E2E 테스트(프로듀서→큐→컨슈머)가 성공해야 함.

간단한 테스트 케이스

  • 프로듀서가 퍼블리시한 메시지를 컨슈머가 정상 수신하는지 확인.
  • 큐에 메시지가 쌓일 때 모니터링 지표가 증가하는지 확인.
  • 관리 UI에서 큐/사용자 생성 및 삭제가 가능한지 확인.

1줄 용어집

  • 큐: 메시지를 저장하는 버퍼.
  • 교환(exchange): 메시지를 큐로 라우팅하는 엔티티.
  • 바인딩: 교환과 큐를 연결하는 규칙.

마이그레이션/호환성 팁

  • RabbitMQ나 Erlang을 업그레이드하기 전에는 릴리스 노트를 확인하세요. 주요 변경점(특히 프로토콜/플러그인 관련)은 동작에 영향을 줄 수 있습니다.
  • 클러스터 환경에서는 롤링 업그레이드를 권장합니다.

결론

이제 CentOS 7에 RabbitMQ를 설치하고 웹 관리 콘솔을 활성화하는 기본 절차를 완료했습니다. 운영 환경에서는 보안 강화(비밀번호, TLS, 네트워크 접근 제어)와 모니터링을 우선 적용하시기 바랍니다. 추가 학습은 공식 RabbitMQ 문서를 참고하세요.

요약 정리

  • Erlang 설치 → RabbitMQ RPM 설치 → 서비스 시작 → 방화벽/SELinux 설정 → 웹 콘솔 활성화 및 관리자 생성
  • 운영 시 보안·모니터링·백업을 반드시 구성하세요.
공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

iOS 26 애니메이션 줄이기 가이드
iOS 팁

iOS 26 애니메이션 줄이기 가이드

iPhone(iOS 17)에서 Emergency Bypass 활성화 방법
모바일 팁

iPhone(iOS 17)에서 Emergency Bypass 활성화 방법

Windows 온라인 문제 해결 서비스 오류 해결 방법
Windows

Windows 온라인 문제 해결 서비스 오류 해결 방법

넷플릭스 구독 해지 방법: 모든 기기에서 빠르게 취소하기
가이드

넷플릭스 구독 해지 방법: 모든 기기에서 빠르게 취소하기

Twitter X 오류 '무언가 잘못됨' 해결 가이드
트러블슈팅

Twitter X 오류 '무언가 잘못됨' 해결 가이드

테마 적용 중에도 Windows 기본 아이콘·포인터 유지하기
Windows

테마 적용 중에도 Windows 기본 아이콘·포인터 유지하기