Centos7はRabbitMQと構成をインストールします

  • 1.依存環境Erlangをインストールします

このように直接インストールしないと言う人もいます。

yum install erlang

erlangバージョンは必ずしも新しいものではないため、

試してみたところ、結果は次のようになりました。

 

  • 2.rabbitmqをインストールします

https://www.rabbitmq.com/install-rpm.html

RabbitMQには、Erlangバージョン(公式バージョン要件対応表に対する特定の要件があります

Erlang R16B03-1(erts-5.10.4)は、3.6バージョンのrabbitmqをサポートしていません。

以前に誰かがそれを構築しているのを見ました:RabbitMQ 3.3.5、Erlang R16B03-1

yum list rabbitmq-server

バージョン3.3.5も参照してください

インストールを直接実行します。

yum install rabbitmq-server.noarch

 

インストールディレクトリを探す

# which rabbitmq-server
/usr/sbin/rabbitmq-server


ls /usr/sbin/rabbitmq*
rabbitmqctl  rabbitmq-plugins  rabbitmq-server

 

サービス操作/構成リファレンス:https//www.rabbitmq.com/install-rpm.html#running-rpm

#将服务器作为守护程序启动,在系统引导时默认启动守护程序,以管理员身份运行
chkconfig rabbitmq-server on

#启动
/sbin/service rabbitmq-server start

#停止
/sbin/service rabbitmq-server stop

起動中にエラーが報告されました:

# systemctl status rabbitmq-server.service -l
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2021-02-28 17:02:05 CST; 45s ago
  Process: 17283 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server (code=exited, status=1/FAILURE)
 Main PID: 17283 (code=exited, status=1/FAILURE)

Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: Starting RabbitMQ broker...
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 rabbitmq-server[17283]: ERROR: node with name "rabbit" already running on "hecs-x-medium-2-linux-20210131110450"
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: Failed to start RabbitMQ broker.
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: Unit rabbitmq-server.service entered failed state.
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: rabbitmq-server.service failed.

関連するプロセスを見つけて終了します。

ps -ef|grep rabbitmq

kill -9 进程id


#启动
/sbin/service rabbitmq-server start


プラグインの状況を確認します。

# rabbitmq-plugins list
[ ] amqp_client                       3.3.5
[ ] cowboy                            0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap                             3.3.5-gite309de4
[ ] mochiweb                          2.7.0-rmq3.3.5-git680dba8
[ ] rabbitmq_amqp1_0                  3.3.5
[ ] rabbitmq_auth_backend_ldap        3.3.5
[ ] rabbitmq_auth_mechanism_ssl       3.3.5
[ ] rabbitmq_consistent_hash_exchange 3.3.5
[ ] rabbitmq_federation               3.3.5
[ ] rabbitmq_federation_management    3.3.5
[ ] rabbitmq_management               3.3.5
[ ] rabbitmq_management_agent         3.3.5
[ ] rabbitmq_management_visualiser    3.3.5
[ ] rabbitmq_mqtt                     3.3.5
[ ] rabbitmq_shovel                   3.3.5
[ ] rabbitmq_shovel_management        3.3.5
[ ] rabbitmq_stomp                    3.3.5
[ ] rabbitmq_test                     3.3.5
[ ] rabbitmq_tracing                  3.3.5
[ ] rabbitmq_web_dispatch             3.3.5
[ ] rabbitmq_web_stomp                3.3.5
[ ] rabbitmq_web_stomp_examples       3.3.5
[ ] sockjs                            0.3.4-rmq3.3.5-git3132eb9
[ ] webmachine                        1.10.3-rmq3.3.5-gite9359c7

Webプラグインを開きます。

# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.

# rabbitmq-plugins list
[e] amqp_client                       3.3.5
[ ] cowboy                            0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap                             3.3.5-gite309de4
[e] mochiweb                          2.7.0-rmq3.3.5-git680dba8
[ ] rabbitmq_amqp1_0                  3.3.5
[ ] rabbitmq_auth_backend_ldap        3.3.5
[ ] rabbitmq_auth_mechanism_ssl       3.3.5
[ ] rabbitmq_consistent_hash_exchange 3.3.5
[ ] rabbitmq_federation               3.3.5
[ ] rabbitmq_federation_management    3.3.5
[E] rabbitmq_management               3.3.5
[e] rabbitmq_management_agent         3.3.5
[ ] rabbitmq_management_visualiser    3.3.5
[ ] rabbitmq_mqtt                     3.3.5
[ ] rabbitmq_shovel                   3.3.5
[ ] rabbitmq_shovel_management        3.3.5
[ ] rabbitmq_stomp                    3.3.5
[ ] rabbitmq_test                     3.3.5
[ ] rabbitmq_tracing                  3.3.5
[e] rabbitmq_web_dispatch             3.3.5
[ ] rabbitmq_web_stomp                3.3.5
[ ] rabbitmq_web_stomp_examples       3.3.5
[ ] sockjs                            0.3.4-rmq3.3.5-git3132eb9
[e] webmachine                        1.10.3-rmq3.3.5-gite9359c7

ポートが正常かどうかを確認します。

# netstat -an|grep 5672
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN
tcp6       0      0 :::5672                 :::*                    LISTEN

ポート15672が開始されておらず、Web管理端末にアクセスできないことがわかりました。再起動するだけです。

/sbin/service rabbitmq-server restart

RabbitMQノードは、クライアントおよびCLIツールからの接続を受け入れるために、ポート(オープンサーバーTCPソケット)にバインドされます。SELinuxなどの他のプロセスやツールにより、RabbitMQがポートにバインドされない場合があります。これが発生すると、ノードは起動に失敗します。

CLIツール、クライアントライブラリ、RabbitMQノードも接続(クライアントTCPソケット)を開くことができます。ファイアウォールは、ノードとCLIツールが相互に通信するのを防ぐことができます。次のポートにアクセスできることを確認してください。

  • 4369:epmd、RabbitMQノードとCLIツールで使用されるピアツーピア検出サービス
  • 5672、5671:TLSなしおよびTLSありのAMQP0-9-1および1.0クライアントで使用
  • 25672:ノード間およびCLIツール通信(アーラン分布サーバーポート)に使用され、ダイナミックレンジから割り当てられます(デフォルトでは単一のポートに制限され、AMQPポート+ 20000として計算されます)。これらのポートでの外部接続が本当に必要な場合を除いて(たとえば、クラスターがフェデレーション認証を使用するか、CLIツールがサブネット外のコンピューターで使用される)、これらのポートを公開しないでください。詳細については、ネットワークガイドを参照してください
  • 35672-35682:CLIツール(アーラン分布クライアントポート)がノードと通信するために使用し、ダイナミックレンジから割り当てられます(サーバー分布ポート+10010によってサーバー分布ポート+10000として計算されます)。詳細については、ネットワークガイドを参照してください
  • 15672:HTTP APIクライアント、管理UI、およびRabbitmqadmin  (管理プラグインが有効になっている場合のみ
  • 61613、61614:TLSなしおよびTLS付きのSTOMPクライアントSTOMPプラグインが有効になっている場合のみ
  • 1883、8883:TLSを有効化および有効化しないMQTTクライアントMQTTプラグインが有効になっている場合
  • 15674:STOMP-over-WebSocketsクライアント(Web STOMPプラグインが有効になっている場合のみ
  • 15675:MQTT-over-WebSocketsクライアント(Web MQTTプラグインが有効になっている場合のみ
  • 15692:Prometheusメトリック(Prometheusプラグインが有効になっている場合のみ

RabbitMQは、さまざまなポートと特定のネットワークインターフェイス を使用するように構成できます

 

すべてのユーザーを表示

rabbitmqctl list_users

默认账号密码:guest guest(这个账号只允许本机访问)

ユーザーを追加する

rabbitmqctl add_user fuckrabbit 123456

権限を構成する

rabbitmqctl set_permissions -p "/" fuckrabbit ".*" ".*" ".*"

ユーザー権限の表示

rabbitmqctl list_user_permissions fuckrabbit

タグを設定する

# 赋予用户管理员角色
rabbitmqctl set_user_tags fuckrabbit administrator



或者普通管理:
rabbitmqctl set_user_tags fuckrabbit management

ユーザーの削除(安全のため、デフォルトのユーザーを削除してください)

rabbitmqctl delete_user guest

パスワードを変更する:

rabbimqctl change_password username newpassword

 

サービスプロバイダーのセキュリティグループとサーバーのファイアウォールが開いているポート:5672、15672

# firewall-cmd --zone=public --add-port=5672/tcp --add-port=15672/tcp --permanent

# firewall-cmd --reload
success

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 81/tcp 889/tcp 5672/tcp 15672/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Webアクセス:http:// server IP:15672 /

新しいアカウントを入力して、正常にログインします。

 

抜粋:ユーザーを作成するときに、ユーザーが仮想マシンにアクセスできることを指定します。ユーザーは仮想マシンの下のキューとスイッチにのみアクセスできます。指定しない場合、デフォルトは「/」です。 rabbitmqサーバー複数のvhostは、さまざまなビジネスニーズに適しています。これにより、権限構成の要件を満たすだけでなく、さまざまなvhostが分離されているため、キュー間の名前の競合や異なるサービス間のスイッチの問題を回避できます。
元のリンク:https://blog.csdn.net/leisure_life/article/details/78707338

仮想マシンの追加/削除

#添加
rabbitmqctl add_vhost /aaaaa

#给用户分配虚拟机
rabbitmqctl set_permissions -p /aaaaa fuckrabbit ".*" ".*" ".*"

#删除虚拟机
rabbitmqctl delete_vhost /aaaaa

#查看虚拟机列表
rabbitmqctl list_vhosts

スイッチを追加します。

rabbitmqctl eval 'rabbit_exchange:declare({resource, <<"/aaaaa">>, exchange, <<"to_server">>}, fanout, true, false, false, []).'

rabbitmqctl eval 'rabbit_exchange:declare({resource, <<"/aaaaa">>, exchange, <<"from_server">>}, fanout, true, false, false, []).'


#查看
rabbitmqctl list_exchanges

 

 

 

  • 参照:

Centos7は最新のRabbitMQと構成をインストールします

CentOS7にRabbitMQをインストールします

必要なもの:erlang> = 20.3利用可能:erlang-R16B-03.18.el7.x86_64

rabbitmq起動エラー

启PXrabbitmq、入力エラー:「U57 ...」ですでに実行されている「rabbit」という名前のノード

Rabbitmqの仮想ホストとユーザー管理

rabbitmq管理コマンド

 

おすすめ

転載: blog.csdn.net/yyws2039725/article/details/114217155