ubuntu 下rabbitMQ安裝及配置遠端訪問web管理介面
#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:
apt-get update
apt-get install 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服務:
service rabbitmq-server restart
#4 RabbitMQ web管理介面
啟用rabbitmq-management外掛:
1 |
$sudo rabbitmq-plugins enable rabbitmq_management |
重啟RabbitMQ:
service rabbitmq-server restart
使用瀏覽器訪問 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)我是通過在管理平臺裡直接新增的使用者和密碼的,我的測試環境裝有桌面的。
|
管理
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配置
一般情況下,RabbitMQ的預設配置就足夠了。如果希望特殊設定的話,有兩個途徑:
一個是環境變數的配置檔案 rabbitmq-env.conf ;
一個是配置資訊的配置檔案 rabbitmq.config;
注意,這兩個檔案預設是沒有的,如果需要必須自己建立。
rabbitmq-env.conf
這個檔案的位置是確定和不能改變的,位於:/etc/rabbitmq目錄下(這個目錄需要自己建立)。
檔案的內容包括了RabbitMQ的一些環境變數,常用的有:
#RABBITMQ_NODE_PORT= //埠號
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE= //配置檔案的路徑
RABBITMQ_MNESIA_BASE=/rabbitmq/data //需要使用的MNESIA資料庫的路徑
RABBITMQ_LOG_BASE=/rabbitmq/log //log的路徑
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins //外掛的路徑
rabbitmq.config
這是一個標準的erlang配置檔案。它必須符合erlang配置檔案的標準。
它既有預設的目錄,也可以在rabbitmq-env.conf檔案中配置。
## 執行如下的命令,增加使用者admin,密碼 admin
[[email protected] sbin]# ./rabbitmqctl list_users
Listing users ...
[[email protected] sbin]# ./rabbitmqctl add_user admin admin
Creating user "admin" ...
[[email protected] sbin]#./rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[[email protected] sbin]#./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
[[email protected] sbin]# ./rabbitmqctl list_users
Listing users ...
admin [administrator]
[[email protected] sbin]#