#1 更新
apt-get update
apt-get upgrade
#2 安裝Erlang
wget
http://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc
apt-key add erlang_solutions.asc
apt-get update
apt-get install erlang
apt-get install erlang-nox
#3 安裝RabbitMQ(apt安裝)
添加RabbitMQ倉庫源:
vim /etc/apt/sources.list
在文件中添加一行:
deb http://www.rabbitmq.com/debian/ testing main
添加密鑰:
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
安裝rabbitmq-server:
deb文件安裝
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server_3.6.9-1_all.deb
dpkg -i rabbitmq-server_3.6.9-1_all.deb
啓動RabbitMQ服務:
#4 RabbitMQ web管理接口
啓用rabbitmq-management插件:
重啓RabbitMQ:
使用瀏覽器訪問 http://127.0.0.1:15672,使用默認的guest/guest用戶登錄:
在3.3.1和之後的版本中,出於安全的考慮,guest這個默認的用戶只能通過http://localhost:15672 來登錄,其他的IP無法直接使用這個賬號。 這對於服務器上沒有安裝桌面的情況是無法管理維護的,除非通過在前面添加一層代理向外提供服務,這個又有些麻煩了,這裏通過配置文件來實現這個功能
只要編輯 /etc/rabbitmq/rabbitmq.config 文件,添加以下配置就可以了。
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
].
現在添加了一個新授權用戶admin,可以通過外網使用這個用戶名和密碼訪問.(記得要先用命令添加這個命令才行, #rabbitmqctl
add_user admin admin)我是通過在管理平臺裏直接添加的用戶和密碼的,我的測試環境裝有桌面的。
rabbitmqctl
add_user admin admin |
管理
Rabbitmq服務器的主要通過rabbitmqctl和rabbimq-plugins兩個工具來管理,以下是一些常用功能。
1). 服務器啓動與關閉
啓動: rabbitmq-server –detached
關閉:rabbitmqctl stop
若單機有多個實例,則在rabbitmqctlh後加–n 指定名稱
2). 插件管理
開啓某個插件:rabbitmq-pluginsenable xxx
關閉某個插件:rabbitmq-pluginsdisablexxx
注意:重啓服務器後生效。
3).virtual_host管理
新建virtual_host: rabbitmqctladd_vhost xxx
撤銷virtual_host:rabbitmqctl delete_vhost xxx
4). 用戶管理
新建用戶:rabbitmqctl add_user xxxpwd
刪除用戶: rabbitmqctl delete_user xxx
改密碼: rabbimqctlchange_password {username} {newpassword}
設置用戶角色:rabbitmqctlset_user_tags {username} {tag ...}
Tag可以爲 administrator,monitoring, management
5). 權限管理
權限設置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath
Vhost路徑
user
用戶名
Conf
一個正則表達式match哪些配置資源能夠被該用戶訪問。
Write
一個正則表達式match哪些配置資源能夠被該用戶讀。
Read
一個正則表達式match哪些配置資源能夠被該用戶訪問。
6). 獲取服務器狀態信息
服務器狀態:rabbitmqctl status
隊列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
Queueinfoitem可以爲:name,durable,auto_delete,arguments,messages_ready,
messages_unacknowledged,messages,consumers,memory
Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...]
Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.
Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]
Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments
Connection信息:rabbitmqctllist_connections [connectioninfoitem ...]
Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。
Channel信息:rabbitmqctl list_channels[channelinfoitem ...]
Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked
安裝常見問題:
1、啓動rabbitmq-server時,報錯信息:Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err}
解決:使用netstat 查看是否存在,如果存在用kiss 將其殺死,在啓動,我試過可以解決。
rabbitmq配置
具體的列表見:http://www.rabbitmq.com/configure.html#define-environment-variables
## 運行如下的命令,增加用戶admin,密碼 admin
[root@localhost sbin]# ./rabbitmqctl list_users
Listing users ...
[root@localhost sbin]# ./rabbitmqctl add_user admin admin
Creating user "admin" ...
[root@localhost sbin]#./rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[root@localhost sbin]#./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
[root@localhost sbin]# ./rabbitmqctl list_users
Listing users ...
admin [administrator]
[root@localhost sbin]#