GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04LTSでRabbitMQクラスターをセットアップする方法

RabbitMQは、AMQP(Advanced Message Queuing Protocol)プロトコルを最初に実装したオープンソースのメッセージブローカーソフトウェアですが、STOMP(Streaming Text Oriented Messaging Protocol)やMQTT(Streaming Text Oriented Messaging Protocol)などの他のプロトコルをサポートするために開発および拡張されています。メッセージキューテレメトリトランスポート)。

メッセージキュー/メッセージブローカーソフトウェアは、分散システム、アプリケーション、サービス間でメッセージを送受信するために使用されます。 RabbitMQはErlangプログラミング言語で記述されており、Python、NodeJS、Java、PHPなどのすべての主要なプログラミング言語のクライアントインターフェイスとライブラリをサポートしています。

このチュートリアルでは、Ubuntu18.04サーバーでRabbitMQクラスターを設定する方法を説明します。 3つのUbuntuサーバーを使用してRabbitMQクラスターをインストールし、RabbitMQ管理を有効にして、すべてのノードのHAポリシーを設定します。

前提条件
  • 3台以上のUbuntu18.04サーバー
    • 10.0.15.21 hakase-ubuntu01
    • 10.0.15.22 hakase-ubuntu02
    • 10.0.15.23 hakase-ubuntu03
  • root権限

何をしますか?

  1. Hostsファイルのセットアップ
  2. RabbitMQサーバーをインストールする
  3. 管理プラグインを有効にする
  4. UFWファイアウォールのセットアップ
  5. RabbitMQクラスターのセットアップ
  6. 新しい管理者ユーザーを設定する
  7. RabbitMQセットアップキューミラーリング
  8. テスト
ステップ1-ホストファイルのセットアップ

このステップでは、すべてのサーバーの「/ etc / hosts」ファイルを編集し、各サーバーのIPアドレスをホスト名としてマップします。

vimエディタを使用して「/etc/hosts」ファイルを編集します。

sudo vim /etc/hosts

次に、次の構成をそこに貼り付けます。

10.0.15.21 hakase-ubuntu01
10.0.15.22 hakase-ubuntu02
10.0.15.23 hakase-ubuntu03

保存して終了します。

ステップ2-RabbitMQサーバーをインストールする

RabbitMQサーバーをインストールする前に、すべてのリポジトリが更新されていることを確認してください。

次のコマンドを実行します。

sudo apt update
sudo apt upgrade

次に、以下のaptコマンドを使用してUbuntuリポジトリからRabbitMQサーバーパッケージをインストールします。

sudo apt install rabbitmq-server -y

インストールが完了したら、RabbitMQサービスを開始し、システムの起動時に毎回起動できるようにします。

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

RabbitMQサーバーはUbuntu18.04にインストールされています。

ステップ3-RabbitMQ管理プラグインを有効にする

このステップでは、RabbitMQ管理プラグインを有効にします。これは、デフォルトのTCPポート「15672」で実行されているWebブラウザからRabbitMQサーバーを監視および処理できるようにするインターフェイスです。

以下のコマンドを実行して、RabbitMQ管理プラグインを有効にします。

sudo rabbitmq-plugins enable rabbitmq_management

エラーがないことを確認してから、RabbitMQサービスを再起動します。

sudo systemctl restart rabbitmq-server

RabbitMQ管理プラグインが有効になっています。

ステップ4-UFWファイアウォールのセットアップ

このチュートリアルでは、UbuntuUFWファイアウォールを有効にします。 RabbitMQサーバーで使用されるいくつかのポートを開く必要があります。

sshサービスをUFWファイアウォールに追加し、ファイアウォールサービスを有効にします。

sudo ufw allow ssh
sudo ufw enable

次に、新しいRabbitMQtcpポート「5672,15672,4369,25672」を追加します。

sudo ufw allow 5672,15672,4369,25672/tcp

次に、UFWファイアウォールポートリストを確認します。

sudo ufw status

Ubuntu UFWファイアウォールの構成が完了し、RabbitMQクラスターをセットアップする準備が整いました。

ステップ5-RabbitMQクラスターのセットアップ

RabbitMQクラスターをセットアップするには、「。erlang.cookie」ファイルがすべてのノードで同じであることを確認する必要があります。 '/ var / lib/rabbitmq'ディレクトリの'.erlang.cookie'ファイルを'hakase-ubuntu01'から他のノード'hakase-ubuntu02'および'hakase-ubuntu03'にコピーします。

'hakase-ubuntu01'からscpコマンドを使用して'.erlang.cookie'ファイルをコピーします。

scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/

両方のサーバーにエラーがないことを確認してください。

次に、クラスター「hakase-ubuntu01」に参加するために「hakase-ubuntu02」と「hakase-ubuntu03」を設定する必要があります。

注:

  • hakase-ubuntu02'および'hakase-ubuntu03'サーバーで以下のコマンドを実行します。

RabbitMQサービスを再起動し、アプリを停止します。

sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app

次に、両方のノードのRabbitMQサーバーを「hakase-ubuntu01」のクラスターに参加させてから、アプリを起動します。

sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app

完了したら、RabbitMQクラスターのステータスを確認します。

sudo rabbitmqctl cluster_status

そして、以下のような結果が得られます。

RabbitMQクラスターが作成され、hakase-ubuntu01、hakase-ubuntu02、およびhakase-ubuntu03がメンバーになっています。

ステップ6-新しい管理者ユーザーを設定する

このチュートリアルでは、RabbitMQサーバーの新しい管理者ユーザーを作成し、デフォルトの「ゲスト」ユーザーを削除します。 'hakase-ubuntu01'から新しいユーザーを作成し、クラスター上のすべてのノードに自動的に複製します。

「hakase」という名前の新しいユーザーをパスワード「[emailprotected]」で追加します。

sudo rabbitmqctl add_user hakase [email protected]

'hakase'ユーザーを管理者として設定します。

sudo rabbitmqctl set_user_tags hakase administrator

そして、すべてのvhostを変更、書き込み、および読み取るための「hakase」ユーザー権限を付与します。

sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

次に、デフォルトの「ゲスト」ユーザーを削除します。

sudo rabbitmqctl delete_user guest

そして、利用可能なすべてのユーザーを確認します。

sudo rabbitmqctl list_users

そして、以下のような結果が得られます。

新しいRabbitMQ管理者ユーザーが作成され、デフォルトの「guest」ユーザーが削除されます。

ステップ7-RabbitMQセットアップキューミラーリング

デフォルトでは、RabbitMQクラスター内のキューの内容は、単一のノード(キューが宣言されたノード)にあります。

この設定は必須です。キューミラーリングとすべてのクラスターノードへのレプリケーション用に「hapolicy」クラスターを構成する必要があります。キューマスターをホストするノードに障害が発生した場合、「ha-mode」および「ha-params」ポリシーに応じて、同期されている限り、最も古いミラーが新しいマスターに昇格します。

以下に、RabbitMQhaポリシーに関するいくつかの例を示します。

「ha-all」という名前のhaポリシーを設定します。これにより、RabbitMQクラスター上のすべてのキューがクラスター上のすべてのノードにミラーリングされます。

sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

すべてのキュー名が「two」で始まる「ha-two」という名前のhaポリシーを設定します。クラスタ上の2つのノードにミラーリングされます。

sudo rabbitmqctl set_policy ha-two "^two\." \
   '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

「ha-nodes」という名前の高可用性ポリシーを設定します。これには、名前が「nodes」で始まるすべてのキューが含まれます。クラスタ内の2つの特定のノード「hakase-ubuntu02」と「hakase-ubuntu03」にミラーリングします。

sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
   '{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'

RabbitMQリストhaポリシー。

sudo rabbitmqctl list_policies;

RabbitMQは特定のhaポリシーを削除します。

sudo rabbitmqctl clear_policy ha-two

ステップ8-テスト

Webブラウザを開き、ポート「15672」のノードのIPアドレスを入力します。

http://10.0.15.21:15672/

ユーザー名「hakase」とパスワード「[emailprotected]」を入力します。

そして、以下に示すようなRabbitMQ管理ダッシュボードが表示されます。

すべてのクラスターノードのステータスは稼働中です。

次に、[管理者]タブメニューをクリックし、横にある[ユーザー]メニューをクリックします。

そして、hakaseユーザーがリストに追加されます。

次に、[管理]タブメニューをクリックし、横にある[ポリシー]メニューをクリックします。

そして、私たちが作成したすべてのRabbitMQhaポリシーを取得します。

Ubuntu18.04サーバーへのRabbitMQクラスターのインストールと構成が正常に完了しました。


Ubuntu
  1. Ubuntu18.04および16.04LTSにRabbitMQサーバーをインストールする方法

  2. Ubuntu18.04LTSにRをインストールする方法

  3. Ubuntu20.04LTSにRをインストールする方法

  1. Ubuntu 16で3つのノードを使用してMongoDBクラスターをセットアップするにはどうすればよいですか?

  2. CentOS7でRabbitMQクラスターを設定する方法

  3. Ubuntu16.04LTSにOctoberCMSをインストールする方法

  1. Ubuntu16.04LTSにAbanteCartをインストールする方法

  2. Ubuntu18.04LTSにHubzillaをインストールする方法

  3. Ubuntu18.04LTSにERPNextをインストールする方法