安裝erlang:
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install erlang
安裝rabbitmq:
yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm
安裝時如果遇到下面的依賴錯誤:
Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel) Requires: libreadline.so.5()(64bit)
可以嘗試先執行:
yum install socat
RabbitMQ的一些基本操作:
# 添加開機啟動RabbitMQ服務
systemctl enable rabbitmq-server.service
# 查看服務狀態
systemctl status rabbitmq-server.service
# 啟動服務
systemctl start rabbitmq-server.service
# 停止服務
systemctl stop rabbitmq-server.service
# 查看當前所有用戶
rabbitmqctl list_users
# 查看默認guest用戶的權限
rabbitmqctl list_user_permissions guest
# 由於RabbitMQ默認的賬號用戶名和密碼都是guest。為了安全起見, 先刪掉默認用戶
rabbitmqctl delete_user guest
# 添加新用戶
rabbitmqctl add_user username password
# 設置用戶tag
rabbitmqctl set_user_tags username administrator
# 賦予用戶默認vhost的全部操作權限
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
# 查看用戶的權限
rabbitmqctl list_user_permissions username
更多關於rabbitmqctl
的使用,可以參考幫助手冊。
開啟web管理接口
如果只從命令行操作RabbitMQ,多少有點不方便。幸好RabbitMQ自帶了web管理界面,只需要啟動插件便可以使用。
rabbitmq-plugins enable rabbitmq_management
訪問: http://localhost:15672
配置RabbitMQ
關於RabbitMQ的配置,可以下載RabbitMQ的配置文件模板到/etc/rabbitmq/rabbitmq.config
, 然后按照需求更改即可。
關於每個配置項的具體作用,可以參考官方文檔。
開啟用戶遠程訪問
默認情況下,RabbitMQ的默認的guest
用戶只允許本機訪問, 如果想讓guest
用戶能夠遠程訪問的話,只需要將配置文件中的loopback_users
列表置為空即可,如下:
{loopback_users, []}
另外關於新添加的用戶,直接就可以從遠程訪問的,如果想讓新添加的用戶只能本地訪問,可以將用戶名添加到上面的列表, 如只允許admin
用戶本機訪問。
{loopback_users, ["admin"]}
restart …
設置權限
rabbitmqctl add_vhost admin
rabbitmqctl set_permissions -p admin admin ".*" ".*" ".*"
注釋:主要是set_permissions的使用,先看下命令的格式:
set_permissions [-p vhost] {user} {conf} {write} {read}
需要注意以下幾點的理解:
1.這里的權限,只是針對一般用戶的訪問權限,注意和角色的區分。舉個例子來說,非管理用戶(普通用戶),角色設置為none,然后在這里配置conf、write、read的權限。
2.conf、write、read采用正則表達式,這里的正則主要是針對exchange和queue。主要2種特殊的表達式:
^$:表示完全不匹配(即沒有權限)
.*:表示匹配所有(即所有權限)
常用命令
add_user <UserName> <Password>
delete_user <UserName>
change_password <UserName> <NewPassword>
list_users
add_vhost <VHostPath>
delete_vhost <VHostPath>
list_vhostsset_permissions [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>
clear_permissions [-p <VHostPath>] <UserName>
list_permissions [-p <VHostPath>]
list_user_permissions <UserName>
list_queues [-p <VHostPath>] [<QueueInfoItem> ...]
list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]
list_bindings [-p <VHostPath>]
list_connections [<ConnectionInfoItem> ...]
轉自--https://www.linuxidc.com/Linux/2018-04/151796.htm