Print
카테고리: [ Miscellaneous ]
조회수: 6107

Ubuntu Linux에서 RabbitMQ를 설치해보자!


1. RabbitMQ 소개

Pivotal에서 만든 오픈 소스 MQ이다.

Queue의 성격이 강하기 때문에 메시지를 별도로 저장하지는 않는다. 메시지를 로그로 남기는 Kafka와의 차이점이라고 할 수 있다.

또 Kafka는 TCP 기반 메시지 브로커인데, RabbitMQ는 HTTP, WebSocket, MQTT, AMQP 등 여러 프로토콜을 지원한다. Kafka는 애플리케이션에서 처리가 필요한 부분이다.


2. 사전확인

$ apt list --installed rabbitmq-server
Listing... Done

3. apt를 통한 설치

$ sudo apt install rabbitmq-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  erlang-asn1 erlang-base erlang-corba erlang-crypto erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen erlang-eunit erlang-ic erlang-inets erlang-mnesia erlang-nox erlang-odbc erlang-os-mon
  erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl erlang-syntax-tools erlang-tools erlang-xmerl libltdl7 libodbc1 libpython-stdlib libpython2.7-minimal
  libpython2.7-stdlib libsctp1 python python-minimal python2.7 python2.7-minimal
Suggested packages:
  erlang erlang-manpages erlang-doc xsltproc fop erlang-ic-java libmyodbc odbc-postgresql tdsodbc unixodbc-bin lksctp-tools python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  erlang-asn1 erlang-base erlang-corba erlang-crypto erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen erlang-eunit erlang-ic erlang-inets erlang-mnesia erlang-nox erlang-odbc erlang-os-mon
  erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl erlang-syntax-tools erlang-tools erlang-xmerl libltdl7 libodbc1 libpython-stdlib libpython2.7-minimal
  libpython2.7-stdlib libsctp1 python python-minimal python2.7 python2.7-minimal rabbitmq-server
0 upgraded, 35 newly installed, 0 to remove and 14 not upgraded.
Need to get 28.5 MB of archives.
After this operation, 57.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython2.7-minimal amd64 2.7.15-4ubuntu4~18.04 [335 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python2.7-minimal amd64 2.7.15-4ubuntu4~18.04 [1,295 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 python-minimal amd64 2.7.15~rc1-1 [28.1 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython2.7-stdlib amd64 2.7.15-4ubuntu4~18.04 [1,915 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python2.7 amd64 2.7.15-4ubuntu4~18.04 [239 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 libpython-stdlib amd64 2.7.15~rc1-1 [7,620 B]
Get:7 http://archive.ubuntu.com/ubuntu bionic/main amd64 python amd64 2.7.15~rc1-1 [140 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-base amd64 1:20.2.2+dfsg-1ubuntu2 [7,323 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-asn1 amd64 1:20.2.2+dfsg-1ubuntu2 [724 kB]
Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-mnesia amd64 1:20.2.2+dfsg-1ubuntu2 [724 kB]
Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-runtime-tools amd64 1:20.2.2+dfsg-1ubuntu2 [178 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-crypto amd64 1:20.2.2+dfsg-1ubuntu2 [104 kB]
Get:13 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-public-key amd64 1:20.2.2+dfsg-1ubuntu2 [561 kB]
Adding group `rabbitmq' (GID 114) ...
Done.
Adding system user `rabbitmq' (UID 112) ...
Adding new user `rabbitmq' (UID 112) with group `rabbitmq' ...
Not creating home directory `/var/lib/rabbitmq'.
Created symlink /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service → /lib/systemd/system/rabbitmq-server.service.
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for systemd (237-3ubuntu10.24) ...

4. 설치 확인

$ service rabbitmq-server status
● rabbitmq-server.service - RabbitMQ Messaging Server
   Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-27 23:49:07 UTC; 6min ago
 Main PID: 3459 (rabbitmq-server)
    Tasks: 86 (limit: 4661)
   CGroup: /system.slice/rabbitmq-server.service
           ├─3459 /bin/sh /usr/sbin/rabbitmq-server
           ├─3472 /bin/sh /usr/lib/rabbitmq/bin/rabbitmq-server
           ├─3634 /usr/lib/erlang/erts-9.2/bin/epmd -daemon
           ├─3734 /usr/lib/erlang/erts-9.2/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -B i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/r
           ├─3855 erl_child_setup 65536
           ├─3915 inet_gethost 4
           └─3916 inet_gethost 4
 
Aug 27 23:49:00 buntu103 systemd[1]: Starting RabbitMQ Messaging Server...
Aug 27 23:49:03 buntu103 rabbitmq[3460]: Waiting for rabbit@buntu103
Aug 27 23:49:03 buntu103 rabbitmq[3460]: pid is 3472
Aug 27 23:49:07 buntu103 systemd[1]: Started RabbitMQ Messaging Server.

5. 관리 기능 활성화

$ sudo rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management
 
Applying plugin configuration to rabbit@jinsbuntu... started 6 plugins.

관리 기능 추가하면 15672 포트가 오픈된다.

$ netstat -an | grep 15672
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN