RabbitMQは、無料のオープンソースのエンタープライズメッセージブローカーソフトウェアです。これはErlangで記述されており、Advanced Message Queuing Protocol(AMQP)を実装しています。すべての主要なプログラミング言語でクライアントライブラリを提供します。複数のメッセージングプロトコル、メッセージキューイング、配信確認応答、キューへの柔軟なルーティング、複数の交換タイプをサポートします。また、使いやすいHTTP-API、コマンドラインツール、およびRabbitMQを管理するためのWebUIも提供します。
このチュートリアルでは、CentOS7サーバーにRabbitMQをインストールします。
前提条件
- 最小限のCentOS7サーバー
- root権限。このガイドはrootユーザーとして作成されています。sudoユーザーとしてログインしている場合は、sudo-iを実行してください。
パッケージをインストールする前に、次のコマンドを使用してパッケージとリポジトリを更新することをお勧めします。
yum -y update
システムが更新されたら、さらにErlangのインストールに進みます。
RabbitMQはErlang言語で書かれています。このチュートリアルでは、最新バージョンのErlangをサーバーにインストールします。 ErlangはデフォルトのYUMリポジトリでは使用できないため、EPELリポジトリをインストールする必要があります。同じように次のコマンドを実行します。
yum -y install epel-release
yum -y update
次のコマンドを使用してErlangをインストールします。
yum -y install erlang socat
次のコマンドを使用して、Erlangのバージョンを確認できるようになりました。
erl -version
次の出力が得られます。
[[email protected] ~]# 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 を押すと、シェルを終了できます。 2回。これでErlangがシステムにインストールされ、RabbitMQのインストールに進むことができます。
RabbitMQは、プリコンパイルされて直接インストールできるエンタープライズLinuxシステム用のRPMパッケージを提供します。必要な依存関係は、Erlangをシステムにインストールすることだけでした。 Erlangをインストールしたので、さらにRabbitMQのダウンロードに進むことができます。実行してErlangRPMパッケージをダウンロードします。
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
wgetがインストールされていない場合は、yum -yinstallwgetを実行できます。最新バージョンのRabbitMQダウンロードページへのリンクはいつでも見つけることができます。
次のコマンドを実行して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の開始
次のコマンドを実行して、RabbitMQサーバープロセスを開始できます。
systemctl start rabbitmq-server
起動時にRabbitMQを自動的に起動するには、次のコマンドを実行します。
systemctl enable rabbitmq-server
RabbitMQサーバーのステータスを確認するには、次のコマンドを実行します。
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をインストールして実行している場合は、ポート8161がファイアウォールを通過できるようにする必要があります。同じように次のコマンドを実行します。
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サービスを許可するには、次のコマンドを実行する必要があります。
setsebool -P nis_enabled 1
次のコマンドを実行して、RabbitMQWeb管理コンソールを有効にします。
rabbitmq-plugins enable rabbitmq_management
次のコマンドを実行して、RabbitMQファイルの所有権をRabbitMQユーザーに提供します。
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
次に、RabbitMQWeb管理コンソールの管理ユーザーを作成する必要があります。同じように次のコマンドを実行します。
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
adminを管理者ユーザーの好みのユーザー名に変更します。必ずStrongPasswordを非常に強力なパスワードに変更してください。
RabbitMQの管理パネルにアクセスするには、お気に入りのWebブラウザーを使用して、次のURLを開きます。
http://Your_Server_IP:15672/
次のログインページが表示されます。
ログインすると、管理ダッシュボードが表示されます。
ユーザー、仮想ホスト、ポリシーのリストは、管理者にあります。 ダッシュボードのタブ。 ゲストを削除する必要があります セキュリティを考慮したユーザー。
メッセージキューのリストは、キューにあります。 タブ。このインターフェースを使用して、新しいキューを作成したり、既存のキューを削除したりできます。
現在の接続のリストは、接続にあります。 タブ
同様に、チャネルとエクスチェンジはそれぞれのタブで見つけることができます。
プロセス、サーバー、およびクライアント間でメッセージキューを作成するためにRabbitMQを簡単にインストールできるようになりました。 RabbitMQの詳細については、RabbitMQサイトを参照してください。