文章主要參考:CentOS安裝RabbitMQ
系統版本:CentOS 6.5
RabbitMQ-Server:3.5.1
先執行:
[root@localhost app]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
1.安裝Elang (推薦後面的yum安裝)
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
添加RPMforge支持(64位)
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
//導入 key
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
//安裝 RPMforge
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
安裝erlang
yum install erlang
如果yum出現“No module named yum”錯
誤,修改yum文件
vi /usr/bin/yum
!/usr/bin/python 修改爲 #!/usr/bin/python2.4
安裝完成後可以用erl命令查看是否安裝成功
erl -version
2.安裝RabbitMQ Server
下載RabbitMQ Server
打開RabbitMQ的下載頁面,http://www.rabbitmq.com/download.html ,選擇對應平臺的二進制發行包下載;目前使用的是CentOS ,屬於與RHEL/Fedora相兼容的版本,下載針對RHEL的二進制版本(Binary)即可:
本例中RabbitMQ的版本是3.5.1,下載得到文件rabbitmq-server-3.5.1-1.noarch.rpm
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.1/rabbitmq-server-3.5.1-1.noarch.rpm
安裝RabbitMQ Server
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.5.1-1.noarch.rpm
3.啓動RabbitMQ
配置爲守護進程隨系統自動啓動,root權限下執行:
chkconfig rabbitmq-server on
啓動rabbitMQ服務
/sbin/service rabbitmq-server start
如果報如下異常:
Starting rabbitmq-server (via systemctl): Job for rabbitmq-server.service failed. See 'systemctl status rabbitmq-server.service' and 'journalctl -xn' for details. [FAILED]
嘗試下面的操作:
禁用 SELinux ,修改 /etc/selinux/config
SELINUX=disabled
修改後重啓系統
配置修改 rabbitmq.config :
將/usr/share/doc/rabbitmq-server-3.5.1下面的 rabbitmq.config.example 複製到 /etc/rabbitmq/下面, 重命名爲 rabbitmq.config
修改如下參數:
修改後重啓
4.安裝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.
5.登錄Web管理界面
安裝好插件並開啓服務後,可以瀏覽器輸入localhost:15672,賬號密碼全輸入guest即可登錄。
這裏如果顯示找不到主機,請在hosts文件中添加
vi /etc/hosts
127.0.0.1 localhost
這裏需要注意下,從3.3.1版本開始,RabbitMQ默認不允許遠程ip登錄,即只能使用localhost登錄。如果希望遠程登錄,請添加用戶權限
6.設置RabbitMQ遠程ip登錄
由於賬號guest具有所有的操作權限,並且又是默認賬號,出於安全因素的考慮,guest用戶只能通過localhost登陸使用,並建議修改guest用戶的密碼以及新建其他賬號管理使用rabbitmq。
這裏我們以創建個root帳號,密碼root爲例,創建一個賬號並支持遠程ip訪問。
6.1 創建賬號
rabbitmqctl add_user root root
6.2 設置用戶角色
rabbitmqctl set_user_tags root administrator
6.3 設置用戶權限
rabbitmqctl set_permissions -p "/" root ".*" ".*" ".*"
6.4 設置完成後可以查看當前用戶和角色(需要開啓服務)
rabbitmqctl list_users
這是你就可以通過其他主機的訪問RabbitMQ的Web管理界面了,訪問方式,瀏覽器輸入:serverip:15672。其中serverip是RabbitMQ-Server所在主機的ip。
7.RabbitMQ常用操作:
7.1 用戶管理
用戶管理包括增加用戶,刪除用戶,查看用戶列表,修改用戶密碼。
1 新增一個用戶
rabbitmqctl add_user Username Password
2 刪除一個用戶
rabbitmqctl delete_user Username
3 修改用戶的密碼
rabbitmqctl change_password Username Newpassword
4 查看當前用戶列表
rabbitmqctl list_users
7.2 用戶角色
按照個人理解,用戶角色可分爲五類,超級管理員, 監控者, 策略制定者, 普通管理者以及其他。
1. 超級管理員(administrator)
可登陸管理控制檯(啓用management plugin的情況下),可查看所有的信息,並且可以對用戶,策略(policy)進行操作。
2. 監控者(monitoring)
可登陸管理控制檯(啓用management plugin的情況下),同時可以查看rabbitmq節點的相關信息(進程數,內存使用情況,磁盤使用情況等)
3. 策略制定者(policymaker)
可登陸管理控制檯(啓用management plugin的情況下), 同時可以對policy進行管理。但無法查看節點的相關信息(上圖紅框標識的部分)。與administrator的對比,administrator能看到這些內容。
4. 普通管理者(management)
僅可登陸管理控制檯(啓用management plugin的情況下),無法看到節點信息,也無法對策略進行管理。
5. 其他
無法登陸管理控制檯,通常就是普通的生產者和消費者。
瞭解了這些後,就可以根據需要給不同的用戶設置不同的角色,以便按需管理
設置用戶角色的命令爲:
rabbitmqctl set_user_tags User Tag
User爲用戶名, Tag爲角色名(對應於上面的administrator,monitoring,policymaker,management,或其他自定義名稱)。
也可以給同一用戶設置多個角色,例如
rabbitmqctl set_user_tags username monitoring policymaker
7.3、用戶權限
用戶權限指的是用戶對exchange,queue的操作權限,包括配置權限,讀寫權限。配置權限會影響到exchange,queue的聲明和刪除。讀寫權限影響到從queue裏取消息,向exchange發送消息以及queue和exchange的綁定(bind)操作。
例如: 將queue綁定到某exchange上,需要具有queue的可寫權限,以及exchange的可讀權限;向exchange發送消息需要具有exchange的可寫權限;從queue裏取數據需要具有queue的可讀權限。詳細請參考官方文檔中”How permissions work”部分。 |
---|
相關命令爲:
1 設置用戶權限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
2 查看(指定hostpath)所有用戶的權限信息
rabbitmqctl list_permissions [-p VHostPath]
3 查看指定用戶的權限信息
rabbitmqctl list_user_permissions User
4 清除用戶的權限信息
rabbitmqctl clear_permissions [-p VHostPath] User