개발

[RabbitMQ] - 1. Mac에서 RabbitMQ 설치하기

primayy 2021. 11. 24. 20:10
728x90

개요

메시지큐를 간단하게 사용해보고 싶어서 RabbitMQ를 설치하려고 합니다.

차근차근 같이 설치하고 실행도 해봅시다.

 

목차는 다음과 같습니다.

  1. RabbitMQ 설치
  2. 실행
    1. 포그라운드 실행
    2. 백그라운드 실행
  3. GUI 관리 페이지 확인
  4. 유저 생성 및 삭제
    1. GUI로 유저 생성 및 삭제
    2. CLI로 유저 생성 및 삭제

 

1. RabbitMQ 설치

hombrew를 설치해놨다면 rabbitmq 설치는 간단합니다.

터미널을 열고 brew install rabbitmq를 입력하면 됩니다.

# 설치 전에 업데이트할 항목이 있는지 확인하고 업데이트 해줍시다.
brew update
# rabbitmq 설치 명령어입니다.
brew install rabbitmq

다운로드가 되고 있네요

 

설치 후 메시지

설치를 완료하면 위처럼 완료 메시지를 볼 수 있습니다.

- 기본 포트: 15672

- 포그라운드 실행: 위 설치 위치에서 rabbitmq-server를 실행

- 백그라운드 실행: brew services restart rabbitmq

저희가 확인해야 하는 내용은 이 정도겠네요.

2. 실행

자, 그럼 설치도 마쳤으니 서버를 실행시켜봅시다.

2.1 포그라운드 실행

우선 포그라운드로 돌려볼까요.

rabbitmq-server 명령어를 터미널에 입력하면 되는 것 같습니다.

자신감 넘치게 위에서 알려준 명령어를 치면 이렇게 실패합니다.

저는 환경변수로 /usr/local/opt/rabbitmq/sbin/을 등록해놓지 않았기 때문이에요.

환경변수를 추가하는건 귀찮으니, 설치를 완료했을 때 알려준 path를 그대로 복사해서 실행하겠습니다. (혹은 해당 path로 이동하셔도 좋습니다.)

> /usr/local/opt/rabbitmq/sbin/rabbitmq-server
2021-11-24 18:32:46.526909+09:00 [info] <0.221.0> Feature flags: list of feature flags found:
2021-11-24 18:32:46.538001+09:00 [info] <0.221.0> Feature flags:   [ ] implicit_default_bindings
2021-11-24 18:32:46.538042+09:00 [info] <0.221.0> Feature flags:   [ ] maintenance_mode_status
2021-11-24 18:32:46.538059+09:00 [info] <0.221.0> Feature flags:   [ ] quorum_queue
2021-11-24 18:32:46.538074+09:00 [info] <0.221.0> Feature flags:   [ ] stream_queue
2021-11-24 18:32:46.538126+09:00 [info] <0.221.0> Feature flags:   [ ] user_limits
2021-11-24 18:32:46.538137+09:00 [info] <0.221.0> Feature flags:   [ ] virtual_host_metadata
2021-11-24 18:32:46.538151+09:00 [info] <0.221.0> Feature flags: feature flag states written to disk: yes
2021-11-24 18:32:46.872761+09:00 [noti] <0.44.0> Application syslog exited with reason: stopped
2021-11-24 18:32:46.872827+09:00 [noti] <0.221.0> Logging: switching to configured handler(s); following messages may not be visible in this log output

  ##  ##      RabbitMQ 3.9.10
  ##  ##
  ##########  Copyright (c) 2007-2021 VMware, Inc. or its affiliates.
  ######  ##
  ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com

  Erlang:      24.1.7 [jit]
  TLS Library: OpenSSL - OpenSSL 1.1.1l  24 Aug 2021

  Doc guides:  https://rabbitmq.com/documentation.html
  Support:     https://rabbitmq.com/contact.html
  Tutorials:   https://rabbitmq.com/getstarted.html
  Monitoring:  https://rabbitmq.com/monitoring.html

  Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
        /usr/local/var/log/rabbitmq/rabbit@localhost_upgrade.log
        <stdout>

  Config file(s): (none)

  Starting broker... completed with 7 plugins.

터미널에 위 처럼 출력된다면 실행 성공입니다~

2.2 백그라운드 실행

다만! 포그라운드로 서버를 계속 띄워놓는 건 꽤나 불편합니다.

집중적으로 터미널에 출력되는 로그를 확인해야 하는 게 아닌 이상, 백그라운드로 서버를 돌려놓고 다른 작업을 할 수 있다면 더욱 좋겠죠?

그래서 이번에는 백그라운드로 서버를 돌려보도록 하겠습니다.

 

rabbitmq 서버를 백그라운드로 돌리는 방법은 더 쉽습니다.

터미널에 brew services restart rabbitmq 를 입력하면 됩니다.

> brew services restart rabbitmq
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 1535, done.
remote: Counting objects: 100% (414/414), done.
remote: Compressing objects: 100% (303/303), done.
remote: Total 1535 (delta 171), reused 283 (delta 101), pack-reused 1121
Receiving objects: 100% (1535/1535), 448.66 KiB | 1.31 MiB/s, done.
Resolving deltas: 100% (648/648), done.
Tapped 1 command (38 files, 558.7KB).
==> Successfully ran `rabbitmq` (label: homebrew.mxcl.rabbitmq)

 

3. GUI 관리 페이지 확인

서버를 실행했다면 15672 포트로 gui 관리자 페이지에 접속할 수 있습니다.

브라우저에서 http://localhost:15672로 접속하면 됩니다.

처음 설치를 하면 초기로 주어지는 계정의 아이디와 비밀번호는 guest입니다.

로그인하면 위처럼 rabbitmq 서버의 상황을 한눈에 파악할 수 있습니다.

4. 유저 생성

하지만 초기값으로 주어진 계정을 그대로 사용하는건 아무래도 찝찝합니다.

그래서 새로운 계정을 생성하고 관리자 권한을 준 뒤, 초기값으로 생성된 guest 계정은 삭제하도록 하겠습니다.

 

default로 GUI옵션이 활성화 되어있기 때문에 관리 페이지에서 작업할 수도 있고, 터미널 상에서 명령어로 작업할 수도 있습니다.

한 번씩 다 해보도록 합시다.

 

4.1 GUI로 유저 생성 및 삭제

http://localhost:15672로 접속한 뒤, guest계정으로 로그인합시다.

로그인 한 뒤, 상단에 Admin 탭으로 이동하면 아래와 같이 RabbitMQ서버에 등록된 계정을 확인할 수 있습니다.

하단에 Add a user를 클릭해서 계정을 추가해봅시다.

위에서부터 차례대로 id, pw, pw 확인, 권한입니다.

권한은 Set Admin | Monitoring | Policymaker | Management |Impersonator | None이 있네요.

권한별 특징은 회색 박스를 클릭하면 확인할 수 있습니다.

권한별 특징

저는 user라는 계정에 Admin권한을 줘서 생성해보도록 하겠습니다.

Add user를 누르면 계정이 추가됩니다.

user 계정이 추가됐습니다!

 

4.2 CLI로 유저 생성 및 삭제

이번에는 cli로 유저를 생성해봅시다. 터미널로 유저를 생성하고 권한을 설정하기 위해서는 rabbitmqctl을 사용해야 합니다.

이 놈 역시 rabbitmq-server와 같은 path에 존재하기 때문에 이전에 해당 path를 환경 변수로 등록했다면!

# 이렇게 계정을 추가할 수 있습니다.
rabbitmqctl add_user {id} {pw}

path를 환경 변수로 등록하지 않았다면 저처럼 하면 됩니다.

/usr/local/opt/rabbitmq/sbin/rabbitmqctl add_user user2 123456
Adding user "user2" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.

계정은 생성됐으니 권한만 설정하면 됩니다.

권한은 rabbitmqctl set_user_tags {id} {권한}으로 추가할 수 있습니다.

# rabbitmqctl set_user_tags {id} {권한}
/usr/local/opt/rabbitmq/sbin/rabbitmqctl set_user_tags user2 administrator
Setting tags for user "user2" to [administrator] ...

이 외에도 rabbitmqctl을 통해 사용할 수 있는 명령어는 다음과 같습니다.

  • add_user {id} {pw}: 유저 추가
  • delete_user {id}: 유저 삭제
  • set_user_tags {id} {권한}: 유저 권한 설정
  • list_users: 유저 목록

user2 계정이 잘 생성되었는지 rabbitmqctl list_users를 입력해서 확인해봅시다.

앞서 gui로 추가한 계정과 cli로 추가한 계정 모두 존재함을 알 수 있습니다.

이어서 cli로 guest 계정을 삭제해봅시다.

삭제는 rabbitmqctl delete_user {id}를 이용하면 됩니다.

guest가 삭제되었습니다.

삭제 후 다시 유저 목록을 확인하면 guest 계정이 지워진 것을 확인할 수 있습니다.

 

여기까지 따라왔다면 설치와 실행 모두 문제가 없었을 거라고 생각합니다~

 

rabbitmq 설치, 실행, 유저 생성에 대해서 가볍게 다뤄봤습니다.

추가로 궁금한 내용은 rabbitmq 공식 사이트에서 확인하시면 좋을 것 같습니다.

https://www.rabbitmq.com/

 

Messaging that just works — RabbitMQ

Developer Experience Deploy with BOSH, Chef, Docker and Puppet. Develop cross-language messaging with favorite programming languages such as: Java, .NET, PHP, Python, JavaScript, Ruby, Go, and many others.

www.rabbitmq.com

 

다음에는 RabbitMQ 공식 사이트에서 제공하는 예제 프로젝트를 진행하도록 하겠습니다.

안녕~

728x90
반응형