原文連接:http://www.linuxe.cn/post-455.html
系統環境:Centos7
erlang版本:21
RabbitMQ版本:3.7.8
一、下載和安裝erlang環境
由於RabbitMQ是erlang語言所開發,所以需要先安裝erlang環境。在erlang官方https://www.erlang-solutions.com/resources/download.html可以進行RPM包的下載和安裝,不過為了解決依賴關系,推薦安裝官方yum倉庫(還需要配置下EPEL的yum倉庫用於其他包的安裝)
1 |
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm |
2 |
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm |
3 |
yum install erlang |
二、下載和安裝rabbitmq
在RabbitMQ官方http://www.rabbitmq.com/install-rpm.html#downloads進行RPM包的下載,然后安裝RPM包
1 |
yum install rabbitmq-server-3.7.8-1.el7.noarch.rpm |
三、開啟RabbitMQ的Web訪問插件,最終效果如圖:
1 |
rabbitmq-plugins list #查看插件情況 |
2 |
rabbitmq-plugins enable rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch #安裝插件 |
四、啟動與關閉RabbitMQ服務
服務監聽在5672端口,而Web端是15672。直接運行rabbitmq-server命令可以讓服務在前台啟動,並且能看到日志信息等提示,當然更多情況我們都是后台啟動的
1 |
rabbitmq-server |
2 |
rabbitmq-server -detached #后台啟動 |
關閉RabbitMQ服務
1 |
rabbitmqctl stop |
當然也可以通過腳本管理服務:
1 |
systemctl start rabbitmq-server.service |
五、服務啟動后可以用瀏覽器訪問驗證
默認管理賬戶和密碼都是guset,不過這個時候應該會出現User can only log in via localhost 的提示,意思是說這個用戶默認只能通過本地登錄。修改配置文件可以解除該限制,讓RabbitMQ可以遠程登錄:
1 |
vi /etc/rabbitmq/rabbitmq.config #該文件需要自行創建 |
2 |
[{rabbit, [{loopback_users, []}]}]. #增加一行,注意點號要保留 |
3 |
4 |
systemctl restart rabbitmq-server.service |
六、創建用戶與權限
登錄Web界面后在admin菜單里可以創建新的管理賬戶,與使用命令行效果是一樣的。主要需要注意的地方就是tags有以下幾種:
administrator:超級管理員,什么權限都有
monitoring:可以登錄控制台和查看節點信息,比如內存、進程數、磁盤使用等
policymaker:可以登錄控制台和制定策略,但是無法查看節點信息
management:僅能登錄控制台
其他:無法登錄控制台,一般是提供者和消費者
1 |
rabbitmqctl add_user admin RABBIT_PASSWORD #創建一個用戶,密碼請自定義 |
2 |
rabbitmqctl set_permissions admin ".*" ".*" ".*" #給新建的用戶配置權限、讀權限和寫權限 |
3 |
rabbitmqctl set_user_tags admin administrator #用戶分組 |
在用戶表格Can access virtual hosts一列中可以看到新創建的用戶是no access的,這是說他沒有訪問虛擬機的權限,這里的虛擬機可以理解為數據庫,在右側找到virtual hosts點擊進去可以創建虛擬機和分配權限
七、RabbitMQ的其他管理命令
RabbitMQ隊列管理命令,控制隊列開始或者停止工作,但是不會殺掉進程
1 |
rabbitmqctl start_app #開始隊列工作 |
2 |
rabbitmqctl stop_app #停止隊列工作 |
RabbitMQ用戶管理命令(上面已經有用到過)
1 |
rabbitmqctl add_user USERNAME PASSWORD #創建用戶 |
2 |
rabbitmqctl del_user USERNAME #刪除用戶 |
3 |
rabbitmqctl change_password USERNAME NEWPASSWORD #修改用戶密碼 |
4 |
rabbitmqctl set_user_tags USERNAME TAGS #設置用戶權限 |
5 |
rabbitmqctl set_permissions -p / USERNAME '.*' '.*' '.*' #設置用戶允許訪問的虛擬機以及權限(數據庫) |