- 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と構成をインストールします
必要なもの:erlang> = 20.3利用可能:erlang-R16B-03.18.el7.x86_64
启PXrabbitmq、入力エラー:「U57 ...」ですでに実行されている「rabbit」という名前のノード