1. 程式人生 > >ubuntu 下rabbitMQ安裝及配置遠端訪問web管理介面

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)我是通過在管理平臺裡直接新增的使用者和密碼的,我的測試環境裝有桌面的。

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]#