RabbitMQはAMQPのオープンソース実装です。サーバーはErlang言語で記述されており、Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMPなどのさまざまなクライアントをサポートし、AJAXをサポートします。分散システムでメッセージを保存および転送するために使用され、使いやすさ、スケーラビリティ、および高可用性の点で優れたパフォーマンスを発揮します。
AMQP、つまりAdvanced message Queuing Protocol、Advanced [Message Queuing](https://cloud.tencent.com/product/cmq?from=10680)プロトコルは、メッセージ指向のミドルウェア用に設計された、アプリケーション層プロトコルのオープンスタンダードです。メッセージミドルウェアは主にコンポーネント間の分離に使用され、メッセージの送信者はメッセージユーザーの存在を知る必要はありません。その逆も同様です。
AMQPの主な特徴は、メッセージ指向、キュー、ルーティング(ポイントツーポイントおよび公開/サブスクライブを含む)、信頼性、およびセキュリティです。
ファイアウォールをオフにする
Centos 6.x close iptables
$ service iptables stop #コマンドを閉じる:
Centos7.xクローズファイアウォール
$ systemctl stop firewalld.service #ファイアウォールを停止します
ファイアウォールをオフにしたくない場合は、ポート15672を開くだけです。設定後、Webを介してMQを管理できます。
iptablesファイアウォールをインストールします
yum install iptables-services
構成の編集
$ vi /etc/sysconfig/iptables-config
構成を追加する
iptables -I INPUT -p tcp --dport 5672-j ACCEPT
iptables -I INPUT -p tcp --dport 15672-j ACCEPT
構成を保存する
$ service iptables save
リブート
systemctl restart iptables.service
自動起動を設定する
systemctl enable iptables.service
[ CentOS7.3インストールiptablesと詳細な使用法https://segmentfault.com/a/1190000010713423](https://segmentfault.com/a/1190000010713423)
RabbitMQのインストールはErlang環境に依存する必要があります
$ cd /opt
$ wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
$ yum install erlang-19.0.4-1.el7.centos.x86_64.rpm
$ cd /opt
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
$ yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm
$ service rabbitmq-server start
$ service rabbitmq-server status
# service rabbitmq-server status
Redirecting to /bin/systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded:loaded(/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
Active:active(running) since Wed 2017-08-1611:43:33 CST; 8s ago
Main PID:17919(beam)
Status:"Initialized"
CGroup:/system.slice/rabbitmq-server.service
├─17919/usr/lib64/erlang/erts-8.0.3/bin/beam -W w -A 64-P 1048576-t 5000000-stbt db -zdbbl 32000-K true---root /usr/lib64/erlang -progname erl ---home /var/lib/rabbitmq ---pa /us...
├─18062/usr/lib64/erlang/erts-8.0.3/bin/epmd -daemon
├─18160 erl_child_setup 1024
├─18165 inet_gethost 4
└─18166 inet_gethost 4
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: RabbitMQ 3.6.10.Copyright(C)2007-2017 Pivotal Software, Inc.
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: ## ## Licensed under the MPL. See http://www.rabbitmq.com/
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: ## ##
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: ########## Logs:/var/log/rabbitmq/[email protected]
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: ###### ## /var/log/rabbitmq/[email protected]
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: ##########
Aug 1611:43:32 localhost.localdomain rabbitmq-server[17919]: Starting broker...
Aug 1611:43:33 localhost.localdomain rabbitmq-server[17919]: systemd unit for activation check:"rabbitmq-server.service"
Aug 1611:43:33 localhost.localdomain systemd[1]: Started RabbitMQ broker.
Aug 1611:43:33 localhost.localdomain rabbitmq-server[17919]: completed with0 plugins.
$ less /var/log/rabbitmq/[email protected]
= INFO REPORT====16-Aug-2017::11:43:32===
Starting RabbitMQ 3.6.10 on Erlang 19.0.4Copyright(C)2007-2017 Pivotal Software, Inc.
Licensed under the MPL. See http://www.rabbitmq.com/=INFO REPORT====16-Aug-2017::11:43:32===
node : rabbit@localhost
home dir :/var/lib/rabbitmq
config file(s):/etc/rabbitmq/rabbitmq.config(not found)
cookie hash : kuUba2xGLitNNO48qE0Hrg==
log :/var/log/rabbitmq/[email protected]
sasl log :/var/log/rabbitmq/[email protected]
database dir :/var/lib/rabbitmq/mnesia/rabbit@localhost
= INFO REPORT====16-Aug-2017::11:43:33===
Memory limit set to 390MB of 976MB total.=INFO REPORT====16-Aug-2017::11:43:33===
Enabling free disk space monitoring
= INFO REPORT====16-Aug-2017::11:43:33===
Disk free limit set to 50MB
= INFO REPORT====16-Aug-2017::11:43:33===
Limiting to approx 924 file handles(829 sockets)=INFO REPORT====16-Aug-2017::11:43:33===
FHC read buffering: OFF
FHC write buffering: ON
= INFO REPORT====16-Aug-2017::11:43:33===
Database directory at /var/lib/rabbitmq/mnesia/rabbit@localhost is empty. Initialising from scratch...=INFO REPORT====16-Aug-2017::11:43:33===
Waiting for Mnesia tables for30000 ms,9 retries left
= INFO REPORT====16-Aug-2017::11:43:33===
Waiting for Mnesia tables for30000 ms,9 retries left
ここに表示されている構成ファイルが見つかりません。このファイルは自分で作成できます
config file(s):/etc/rabbitmq/rabbitmq.config(not found)
**rabbitmq.config
**を作成します
$ cd /etc/rabbitmq/
$ vi rabbitmq.config
編集内容は以下のとおりです。
[{ rabbit,[{loopback_users,[]}]}].
構成を保存した後、サービスを再起動します
$ service rabbitmq-server restart
$ /sbin/rabbitmq-plugins enable rabbitmq_management
サービスを再開します
$ service rabbitmq-server restart
http:// ip:15672を介してゲストを使用し、ゲストはログインします
アクセスできない場合は、ファイアウォールを確認してください
セキュリティ上の理由から、ゲストのデフォルトユーザーは http:// localhost:15672
を介してのみログインでき、他のIPはこのアカウントを直接使用できません。デスクトップがサーバーにインストールされていない状況を管理および維持することは不可能です。外部にサービスを提供するためにエージェントのレイヤーを前面に追加しない限り、これは少し面倒です。この機能を実現するための構成ファイルを次に示します。
コマンドフォーマット
rabbitmqctl add_user <username><newpassword>
$ rabbitmqctl add_user ymq 123456
Creating user "ymq"
コマンドフォーマット
rabbitmqctl delete_user <username>
$ rabbitmqctl delete_user penglei
Deleting user "penglei"
コマンドフォーマット
rabbitmqctl change_password <username><newpassword>
$ rabbitmqctl change_password ymq 123456
Changing password for user "ymq"
コマンドフォーマット
rabbitmqctl set_permissions [-pvhostpath]{user}{conf}{write}{read}
このコマンドを使用すると、ユーザーymq /(仮想ホストにアクセスできます)は、すべてのリソースのリソースを管理するために、すべてのリソースのアクセス許可を構成、書き込み、および読み取ることができます。
$ rabbitmqctl set_permissions -p "/" ymq ".*"".*"".*"
Setting permissions for user "ymq"in vhost "/"
コマンドフォーマット
rabbitmqctl list_permissions [-p VHostPath]
$ rabbitmqctl list_permissions -p /
Listing permissions in vhost "/"
guest .*.*.*
ymq .*.*.*
ユーザーが正常に追加されたことがわかりますが、これは「管理者」の役割ではありません。
$ rabbitmqctl list_users
Listing users
guest [administrator]
ymq []
ここでは、ymqユーザーを administrator
ロールに設定します
コマンドフォーマット
rabbitmqctl set_user_tags <username><tag>
$ rabbitmqctl set_user_tags ymq administrator
Setting tags for user "ymq" to [administrator]
権限をもう一度確認してください
$ rabbitmqctl list_users
Listing users
guest [administrator]
ymq [administrator]
許可情報を明確にする
コマンドフォーマット
rabbitmqctl clear_permissions [-p VHostPath] ymq
rabbitmqctl clear_permissions -p / ymq
Clearing permissions for user "ymq"in vhost "/"
ymqとguestが同じ権限を持っていることがわかります
マウスでクリックして赤い線を引き、1つ選択します
ユーザーには、仮想ホストにアクセスする権限がありません
[権限の設定]をクリックします
Recommended Posts