RabbitMQ · 1 min read · Dec 21, 2025
Ubuntu 22.04にRabbitMQクラスタをインストールする方法

RabbitMQは無料でオープンソースのメッセージブローカーです。複数のメッセージプロトコルをサポートしており、RabbitMQはインターネット上で最も広く使用されているメッセージブローカーです。AMQP、STOMP、MQTT、HTTP、WebSocketsなどのプロトコルや、RabbitMQ Streamをサポートしています。
RabbitMQはJMS 1.1標準に完全に準拠しており、小規模から中規模、大規模な展開環境まで、さまざまな開発シナリオに適しています。
メッセージブローカーとして、RabbitMQはアプリケーション間に位置し、非同期的かつ信頼性が高く便利に通信できるようにします。RabbitMQはアプリケーション間の一時的なストレージを提供し、データ損失から保護します。
このチュートリアルでは、複数のUbuntu 22.04マシン間にRabbitMQサーバーをインストールして設定します。また、RabbitMQの管理者ユーザーを設定し、HAポリシーを介してクラシックキューのミラーリングを設定する方法も学びます。
前提条件
このガイドを完了するには、以下の要件が必要です:
- 2台以上のUbuntu 22.04サーバー - この例では、3台のUbuntuマシン、’rabbitmq1‘、’rabbitmq2‘、および’rabbitmq3‘を使用します。
- sudo/root管理者権限を持つ非ルートユーザー。
マシンの準備
始める前に、システムリポジトリを更新してリフレッシュします。その後、各サーバーの/etc/hostsファイルを設定して、サーバーがシステムホスト名を介して接続できるようにします。
以下のaptコマンドを使用して、Ubuntuパッケージリポジトリを更新してリフレッシュします。
sudo apt update次に、以下のnanoエディタコマンドを使用して’/etc/hosts’ファイルを編集します。
sudo nano /etc/hosts以下の設定を追加し、各IPアドレスとホスト名を現在の環境の詳細に変更してください。
192.168.5.21 rabbitmq1
192.168.5.22 rabbitmq2
192.168.5.23 rabbitmq3ファイルを保存して、終了したらエディタを終了します。すべてのUbuntuサーバーが準備できたら、RabbitMQをインストールしてクラスタを設定します。
RabbitMQサーバーのインストール
Ubuntuマシンの準備ができたら、ターゲットマシンすべてにRabbitMQサーバーをインストールする準備が整いました。デフォルトのUbuntu 22.04リポジトリは、APTを介して簡単にインストールできる最新の安定版RabbitMQを提供します。
以下のaptコマンドを実行して、Ubuntuパッケージインデックスを更新してリフレッシュします。

以下のaptコマンドを使用してRabbitMQをインストールします。
sudo apt install rabbitmq-serverこれにより確認が求められますので、yを入力して確認し、ENTERを押して続行します。

RabbitMQがインストールされたら、以下のsystemctlコマンドを実行してRabbitMQサービスを確認し、サービスが有効で実行中であることを確認します。
sudo systemctl is-enabled rabbitmq-server
sudo systemctl status rabbitmq-server出力 - RabbitMQが実行中であり、有効であることが確認できます。RabbitMQは起動時に自動的に実行されます。

RabbitMQサーバーがインストールされたので、次にRabbitMQプラグイン’rabbitmq_management‘を有効にします。
RabbitMQ管理プラグインの有効化
RabbitMQは、Webブラウザを介してRabbitMQノードとクラスタを管理および監視するための管理プラグインを提供します。’rabbitmq_management‘プラグインは、コマンドラインツール’rabbitmqadmin‘と同様の機能を持つHTTPベースのAPIです。
RabbitMQクラスタの設定を開始する前に、ターゲットマシンで’rabbitmq_management‘プラグインを有効にします。
以下の’rabbitmq-plugins’コマンドを使用してRabbitMQプラグイン’rabbitmq_management’を有効にします。このコマンドは、’rabbitmq_management‘に必要なプラグインも有効にします。
sudo rabbitmq-plugins enable rabbitmq_management次に、RabbitMQサービスを再起動して新しい変更を適用し、’rabbitmq_management‘プラグインを有効にします。
sudo systemctl restart rabbitmq-server
デフォルトの’rabbitmq_management’プラグインは、デフォルトポート’15672‘で実行されています。以下のssコマンドを実行して、rabbitmq_managementポート’15672‘が開いていることを確認します。
ss -plnt出力 - rabbitmq_managementポートがアクティブで開いています。

UFWファイアウォールの設定
RabbitMQ管理プラグインを有効にした後、すべてのシステムでUFWファイアウォールを設定します。デフォルトのUbuntuインストールにはUFWパッケージがインストールされているため、UFWファイアウォールプロセスを簡単に開始および有効にできます。
以下のufwコマンドを実行してOpenSSHサービスを追加し、ufwファイアウォールを有効にします。
sudo ufw allow OpenSSH
sudo ufw enable確認を求められたら、yを入力して確認し、ENTERを押して続行します。これでufwファイアウォールが実行され、有効になっているはずです。

次に、以下のufwコマンドを使用してRabbitMQクラスタ用のTCPポートをいくつか開きます。その後、ufwファイアウォールを再読み込みして新しい変更を適用します。
sudo ufw allow 15672/tcp
sudo ufw allow 5672/tcp
sudo ufw allow 4369/tcp
sudo ufw allow 25672/tcp
sudo ufw reload
最後に、以下のufwコマンドを実行してRabbitMQポートがufwファイアウォールに追加されていることを確認します。
sudo ufw status出力 - RabbitMQクラスタで使用されるいくつかのポートがufwファイアウォールに追加されました。

RabbitMQクラスタの設定
‘rabbitmq_management‘プラグインを有効にし、ufwファイアウォールを設定した後、’rabbitmqctl’コマンドを使用してRabbitMQクラスタの作成と設定を開始します。
すべてのRabbitMQインストールには、’/var/lib/rabbitmq’ディレクトリに’.erlang.cookie’ファイルがあります。クラスタを設定するには、クラスタ全体のすべてのノードが同じ’.erlang.cookie’ファイルを持っていることを確認する必要があります。
この例では、’rabbitmq1‘を最初の初期クラスタとして使用するため、’.erlang.cookie’ファイルを’rabbitmq2‘および’rabbitmq3‘サーバーにコピー/転送する必要があります。
‘rabbitmq1‘サーバーで、以下のコマンドを実行して’.erlang.cookie’ファイルを確認し、ファイルが利用可能であることを確認します。
ls -lah /var/lib/rabbitmq/次に、’.erlang.cookie’ファイルを’rabbitmq2‘および’rabbitmq3‘サーバーにコピー/転送します。この例では、SCPコマンドを使用して’.erlang.cookie’ファイルをサーバー’192.168.5.22‘および’192.168.5.23‘にコピーします。
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/‘.erlang.cookie’ファイルがコピー/転送されたら、作業サーバーセッションを’rabbitmq2‘および’rabbitmq3‘に移動します。

‘rabbitmq2‘および’rabbitmq3‘の両方で以下のコマンドを実行してRabbitMQサービスを再起動し、新しい変更を適用します。その後、RabbitMQアプリケーションを停止します。
sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app以下は’rabbitmq2‘サーバーの出力です。
以下は’rabbitmq3‘サーバーの出力です。
その後、以下のコマンドを使用して’rabbitmq2‘および’rabbitmq3‘サーバーをRabbitMQクラスタに追加します。次に、RabbitMQアプリケーションを開始します。
sudo rabbitmqctl join_cluster rabbit@rabbitmq1
sudo rabbitmqctl start_app以下は’rabbitmq2‘がRabbitMQクラスタに参加し、RabbitMQアプリケーションを開始する際の出力です。

以下は’rabbitmq3‘がRabbitMQクラスタに参加し、RabbitMQアプリケーションを開始する際の出力です。

最後に、’rabbitmq1‘サーバーに戻り、以下のコマンドを実行してRabbitMQクラスタの状態を確認します。
sudo rabbitmqctl cluster_statusRabbitMQクラスタが’rabbitmq1‘、’rabbitmq2‘、および’rabbitmq3‘の3つのノードで作成されていることが確認できます。また、各ノードのRabbitMQの現在のバージョンとクラスタ全体のノードのメンテナンス状況も確認できます。

RabbitMQ管理者の設定
RabbitMQクラスタが作成されたので、’rabbitmqctl’を介してRabbitMQサーバーの新しい管理者ユーザーを作成および設定します。これはRabbitMQサーバーを管理するための主要なコマンドラインです。
以下のコマンドを実行して新しいRabbitMQユーザーを追加します。この例では、ユーザー’alice‘をRabbitMQに追加します。また、新しいパスワードに変更する必要があります。
sudo rabbitmqctl add_user alice password次に、以下のコマンドを実行して新しいユーザー’alice’をRabbitMQクラスタの管理者にします。
sudo rabbitmqctl set_user_tags alice administratorユーザー’alice’にRabbitMQクラスタ内のすべてのエンティティに対する権限を設定します。
sudo rabbitmqctl set_permissions -p / alice ".*" ".*" ".*"次に、以下のコマンドを実行してRabbitMQインストールからデフォルトユーザー’guest’を削除します。
sudo rabbitmqctl delete_user guestRabbitMQで利用可能なユーザーのリストを確認します。新しいユーザー’alice’が作成され、RabbitMQサーバーの管理者として使用できることが確認できます。
sudo rabbitmqctl list_users
これで、RabbitMQクラスタのインストールと設定が完了し、RabbitMQの管理者が設定されました。次に、RabbitMQポリシーを介してクラシックキューのミラーリングを設定します。
クラシックキューのミラーリングの設定
RabbitMQは、ミラーリングキューを設定するための2つの方法を提供します。RabbitMQポリシーを介してクラシックキューのミラーリングを使用するか、クオーラムキューを使用して設定できます。
この例では、RabbitMQポリシーを介してキューのミラーリングを設定する方法を学びます。
以下のコマンドを実行して新しいポリシー’ha-all‘を作成します。このポリシーは、すべてのキューがRabbitMQクラスタのノード間でミラーリングされることを許可します。
sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'クラスタ全体でミラーリングされるキューを指定したい場合は、この例では、名前が’two‘のキューをミラーリングする新しいポリシー’ha-two-‘を作成します。
sudo rabbitmqctl set_policy ha-two "^two\." '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'最後に、RabbitMQクラスタの特定のノードにミラーリングされるキューを設定する新しいポリシー’ha-nodes‘を作成することもできます。この例では、名前が’nodes‘のキューを特定のノード’rabbitmq2‘および’rabbitmq3‘にミラーリングします。
sudo rabbitmqctl set_policy ha-nodes "^nodes\." '{"ha-mode":"nodes","ha-params":["rabbit@rabbitmq2", "rabbit@rabbitmq3"]}'以下のコマンドを使用してRabbitMQクラスタのポリシーのリストを確認します。ポリシー’ha-all‘、’ha-two‘、および’ha-nodes‘がRabbitMQクラスタに存在することが確認できます。
sudo rabbitmqctl list_policiesRabbitMQ管理プラグインを介してRabbitMQクラスタにアクセス
Webブラウザを開き、サーバーのIPアドレスの後にデフォルトのRabbitMQポート15672を追加してアクセスします(例:http://192.168.5.21)。RabbitMQのログインページが表示されます。
作成した新しいユーザーとパスワードでログインし、’Login‘をクリックします。

RabbitMQ管理ダッシュボードが’rabbitmq_management‘プラグインによって提供されていることが確認できます。

次に、’Admin‘タブをクリックし、’Policies‘をクリックして、作成したRabbitMQポリシーが利用可能であることを確認します。
以下のスクリーンショットでは、3つの異なるポリシー、’ha-all‘、’ha-two‘、および’ha-nodes‘が表示されています。

結論
おめでとうございます!RabbitMQサーバーをインストールし、3台のUbuntu 22.04サーバーでRabbitMQクラスタを構成しました。また、RabbitMQの展開を保護するためにUFWファイアウォールを設定し、RabbitMQの管理者ユーザーを構成し、RabbitMQポリシーを介してRabbitMQクラスタでクラシックキューのミラーリングを作成しました。
これにより、RabbitMQをアプリケーションとインフラストラクチャのメッセージブローカーとして使用できるようになります。ただし、クオーラムキューの設定、TLSを介したRabbitMQのセキュリティ強化など、RabbitMQの展開を次のレベルに引き上げることもできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。