GNU/Linux >> Linux の 問題 >  >> Cent OS

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

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

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

このチュートリアルでは、CentOS7サーバーでRabbitMQクラスターをセットアップする方法を段階的に説明します。 3つのCentOSサーバーを使用してRabbitMQクラスターをセットアップし、RabbitMQ管理を有効にして、すべてのノードのHAポリシーをセットアップします。

前提条件
  • 3台以上のCentOS7サーバー
    • 10.0.15.21 node01
    • 10.0.15.22 node02
    • 10.0.15.23 node03
  • root権限

何をしますか?

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

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

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

sudo vim /etc/hosts

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

10.0.15.21 node01
10.0.15.22 node02
10.0.15.23 node03

保存して終了します。

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

このステップでは、EPEL(Enterprise Linux用の追加パッケージ)リポジトリからRabbitMQサーバーパッケージをインストールします。

EPELリポジトリをCentOS7システムに追加します。

sudo yum -y install epel-release

次に、以下のyumコマンドを使用して、RabbitMQサーバーをすべてのノード「node01」、「node02」、および「node03」にインストールします。

sudo yum -y install rabbitmq-server

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

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

RabbitMQサーバーはすべてのノードクラスターCentOS7にインストールされています。

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

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

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

sudo rabbitmq-plugins enable rabbitmq_management

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

sudo systemctl restart rabbitmq-server

そして、RabbitMQ管理が有効になりました。

ステップ4-CentOSFirewalldを設定する

このチュートリアルでは、CentOSのfirewalldサービスを有効にするため、RabbitMQサーバーが使用するポートを開く必要があります。

RabbitMQサーバー「5672」を使用するポート、RabbitMQ管理用のポート「15672」、およびRabbitMQクラスター用のポート「4369、25672」を開きます。

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

sudo firewall-cmd --add-port=15672/tcp --permanent
sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --add-port={4369/tcp,25672/tcp} --permanent

次に、firewalldをリロードし、リストで開いているすべてのポートを確認します。

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

CentOSのfirewalld構成が完了し、RabbitMQクラスターをセットアップする準備が整いました。

ステップ5-RabbitMQクラスターをセットアップする

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

'node01'から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/

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

次に、クラスター「node01」に参加するために「node02」と「node03」を設定する必要があります。

「node02」および「node03」サーバーで以下のすべてのコマンドを実行します。

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

sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app

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

sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app

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

sudo rabbitmqctl cluster_status

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

'node02'で。

'node03'で。

ノード01、ノード02、ノード03をメンバーとしてRabbitMQクラスターが作成されました。

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

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

「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セットアップキューミラーリング

この設定は必須です。キューミラーリングとすべてのクラスターノードへのレプリケーション用に「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」という名前のhaポリシーを設定します。クラスター上の2つの特定のノード「node02」と「node03」にミラーリングされます。

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

次に、以下のコマンドを使用して、使用可能なすべてのポリシーを確認します。

sudo rabbitmqctl list_policies;

また、ポリシーを削除する場合は、次のコマンドを使用してください。

sudo rabbitmqctl clear_policy ha-two

ステップ8-テスト

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

http://10.0.15.21:15672/

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

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

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

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

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

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

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

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


Cent OS
  1. CentOS7にKubernetesクラスターをインストールする方法

  2. CentOS7にVagrantをインストールする方法

  3. CentOS8にGiteaをインストールする方法

  1. CentOS8でWireGuardVPNを設定する方法

  2. CentOS8にMemcachedをインストールする方法

  3. CentOS7にNginxをインストールする方法

  1. CentOS7にApacheをインストールする方法

  2. CentOSでSudoユーザーを作成する方法

  3. CentOS7にTomcat8.5をインストールする方法