最近公司在部署開發測試環境,須要安裝一些軟件包,就把安裝的過程記錄下來,以供參考c++
1-本人安裝的系統版本信息(Esxi虛擬機)
[lsug@172-16-1-105 ~]$ uname -a
Linux 172-16-1-105 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[lsug@172-16-1-105 ~]$ cat /etc/redhat-release
CentOS release 6.7 (Final)git
2-.安裝erlang虛擬機(安裝rabbitmq須要)web
安裝依賴:
Rabbitmq基於erlang語言開發,全部須要安裝erlang虛擬機
安裝erlang須要的依賴:
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
yum -y install perlvim
wget http://www.erlang.org/download/otp_src_R16B03-1.tar.gz
tar -zxf otp_src_R16B03-1.tar.gz
cd otp_src_R16B03-1
./configure --prefix=/data/erlang/
make && make install安全
vim /etc/profile
export ERLANG_HOME="/data/erlang"
export PATH="$ERLANG_HOME/bin:$PATH"網絡
source /etc/profile工具
3-下載rabbitmq源碼包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.7/rabbitmq-server-generic-unix-3.5.7.tar.gzoop
解壓並安裝
tar -zxf rabbitmq-server-generic-unix-3.5.7.tar.gz
mv rabbitmq-server-generic-unix-3.5.7 rabbitmq
cd rabbitmq
解壓就能夠用了測試
4. 配置讓abbitmq
4.1-在/data/rabbitmq/sbin/目錄下的配置文件介紹,不須要配置
rabbitmq-env #環境配置
rabbitmq-defaults #默認參數設置
rabbitmqctl #管理工具
rabbitmq-plugins #插件管理工具
rabbitmq-server #rabbitmq服務spa
4.2-在/data/rabbitmq/etc/目錄下面手工建立三個文件,分別以下:
vim enabled_plugins
[rabbitmq_management].
vim rabbitmq.config
[{rabbit, [{loopback_users, []}]}].
vim rabbitmq-env.conf
RABBITMQ_NODENAME=rabbit@172-16-1-105
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins
5-啓動
cd /data/rabbitmq/sbin/
./rabbitmq-server &
6-rabbitmq插件管理
啓用rabbitmq web管理插件
# ./rabbitmq-plugins enable rabbitmq_management
web界面的默認登陸端口是15672,web界面須要安裝插件rabbitmq_management,默認已經安裝;可使用rabbitmq-plugins list查看是否安裝
http://172.16.1.105:15672/
默認登陸用戶名:guest
默認登陸密碼:guest
列出全部插件
查看rabbitmq有哪些插件,星號(*)表示已經安裝
[lsug@172-16-1-105 sbin]$ ./rabbitmq-plugins list
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@172-16-1-105
|/
[e*] amqp_client 3.5.7
[ ] cowboy 0.5.0-rmq3.5.7-git4b93c2d
[e*] mochiweb 2.7.0-rmq3.5.7-git680dba8
[ ] rabbitmq_amqp1_0 3.5.7
[ ] rabbitmq_auth_backend_ldap 3.5.7
[ ] rabbitmq_auth_mechanism_ssl 3.5.7
[ ] rabbitmq_consistent_hash_exchange 3.5.7
[ ] rabbitmq_federation 3.5.7
[ ] rabbitmq_federation_management 3.5.7
[E*] rabbitmq_management 3.5.7
[e*] rabbitmq_management_agent 3.5.7
[ ] rabbitmq_management_visualiser 3.5.7
[ ] rabbitmq_mqtt 3.5.7
[ ] rabbitmq_shovel 3.5.7
[ ] rabbitmq_shovel_management 3.5.7
[ ] rabbitmq_stomp 3.5.7
[ ] rabbitmq_test 3.5.7
[ ] rabbitmq_tracing 3.5.7
[e*] rabbitmq_web_dispatch 3.5.7
[ ] rabbitmq_web_stomp 3.5.7
[ ] rabbitmq_web_stomp_examples 3.5.7
[ ] sockjs 0.3.4-rmq3.5.7-git3132eb9
[e*] webmachine 1.10.3-rmq3.5.7-gite9359c7
7-經常使用命令
7.1-新建用戶並設置角色
./rabbitmqctl add_user lsrabbit lsrabbit
./rabbitmqctl set_user_tags lsrabbit monitoring
2-使用管理員權限給新建用戶受權
登陸web頁面,在「admin「下面受權
http://172.16.2.130:15672/#/
3-若是不知道有哪些命令可使用,
./rabbitmqctl #不加參數直接回車就會顯示可用命令
4-檢查用戶
[lsug@172-16-1-105 sbin]$ ./rabbitmqctl list_users
Listing users ...
guest [administrator]
===========如下內容爲網絡摘錄=======
安裝最新版本的rabbitmq(3.3.1),並啓用management plugin後,使用默認的帳號guest登錄管理控制檯,卻提示登錄失敗。
因爲帳號guest具備全部的操做權限,而且又是默認帳號,出於安全因素的考慮,guest用戶只能經過localhost登錄使用,並建議修改guest用戶的密碼以及新建其餘帳號管理使用rabbitmq(該功能是在3.3.0版本引入的)。
1. 用戶管理
用戶管理包括增長用戶,刪除用戶,查看用戶列表,修改用戶密碼。
(1) 新增一個用戶
rabbitmqctl add_user Username Password
(2) 刪除一個用戶
rabbitmqctl delete_user Username
(3) 修改用戶的密碼
rabbitmqctl change_password Username Newpassword
(4) 查看當前用戶列表
rabbitmqctl list_users
2. 用戶角色
按照我的理解,用戶角色可分爲五類,超級管理員, 監控者, 策略制定者, 普通管理者以及其餘。
(1) 超級管理員(administrator)
可登錄管理控制檯(啓用management plugin的狀況下),可查看全部的信息,而且能夠對用戶,策略(policy)進行操做。
(2) 監控者(monitoring)
可登錄管理控制檯(啓用management plugin的狀況下),同時能夠查看rabbitmq節點的相關信息(進程數,內存使用狀況,磁盤使用狀況等)
(3) 策略制定者(policymaker)
可登錄管理控制檯(啓用management plugin的狀況下), 同時能夠對policy進行管理。但沒法查看節點的相關信息(上圖紅框標識的部分)。
與administrator的對比,administrator能看到這些內容
(4) 普通管理者(management)
僅可登錄管理控制檯(啓用management plugin的狀況下),沒法看到節點信息,也沒法對策略進行管理。
沒法登錄管理控制檯,一般就是普通的生產者和消費者。
瞭解了這些後,就能夠根據須要給不一樣的用戶設置不一樣的角色,以便按需管理。
設置用戶角色的命令爲:
rabbitmqctl set_user_tags User Tag
User爲用戶名, Tag爲角色名(對應於上面的administrator,monitoring,policymaker,management,或其餘自定義名稱)。
也能夠給同一用戶設置多個角色,例如
rabbitmqctl set_user_tags hncscwc monitoring policymaker
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