目錄使用者許可權管理
system limits
日誌本文只討論linux下的rabbitmq安裝。
rabbitmq依賴於erlang,需先安裝,推薦安裝rabbitmq/erlang-rpm:
#clone原始碼
git clone
#make
cd erlang-rpm
make #需要等待較長時間
cd rpms/x86_64 #其下有兩個rpm包 erlang-19.3.6-1.alios6.x86_64.rpm erlang-debuginfo-19.3.6-1.alios6.x86_64.rpm, 選擇前者安裝
#安裝sudo rpm -ivh erlang-19.3.6-1.alios6.x86_64.rpm
#安裝rabbitmq-server
sudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm
#此時可能報:requires: socat, 以下是解決方法, 參考:
sudo wget --no-cache -o /etc/yum.repos.d/convirt.repo
sudo yum makecache
sudo yum install socat
#重新安裝rabbitmq-server
sudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm
#啟動/停止 start/stop
$sudo /sbin/service rabbitmq-server start
starting rabbitmq-server: success
rabbitmq-server.
$sudo /sbin/service rabbitmq-server stop
stopping rabbitmq-server: rabbitmq-server.
#狀態檢視
sudo rabbitmqctl status
其中狀態檢視會返回詳細的狀態資訊:
[,[,,
,,,,
,,,,
,,
,]},
}, ,
, ,,,
,,,,
,,,,
,,,,
,]},
, ,]},
, ,, ,
, ,
,]},
,]},
, ,}]
selinux和與其機制類似的系統可能會阻止rabbtmq繫結相應埠,所以安裝完之後需要確保一下埠可以開啟:
5672, 5671, amqp 0-9-1 和 1.0 客戶端埠,used by amqp 0-9-1 and 1.0 clients without and with tls(transport layer security)
25672,erlang distribution,和4369配合
15672,http_api埠,管理員使用者才能訪問,用於管理rbbitmq,需要啟用management外掛程式,rabbitmq-plugins enable rabbitmq_management
,訪問http://server-name:15672/
61613, 61614,當stomp外掛程式啟用的時候開啟,作為stomp客戶端埠(根據是否使用tls選擇)
1883, 8883,當mqtt外掛程式啟用的時候開啟,作為mqtt客戶端埠(根據是否使用tls選擇)
15674,基於websocket的stomp客戶端埠(當外掛程式web stomp啟用的時候開啟)
15675,基於websocket的mqtt客戶端埠(當外掛程式web mqtt啟用的時候開啟)
installing on rpm-based linux(port access)
rabbitmq~開篇與環境部署
rabbitmq有乙個預設的使用者"guest",密碼也是"guest",這個使用者預設只能通過本機訪問,eg:http://localhost:15672/
,在通過http訪問之前記得啟用management外掛程式:
$rabbitmq-plugins enable rabbitmq_management
要讓其他機器可以訪問,需要建立乙個新使用者,為其分配許可權。使用者許可權可以通過rabbitmqctl
執行相關命令來維護,rabbitmqctl是管理rabbitmq的命令列管理工具,下面介紹相關的命令:
#使用者列表檢視
$sudo rabbitmqctl list_users
listing users
guest [administrator]
#新增使用者
$sudo rabbitmqctl add_user chris 123
creating user "chris"
#為使用者分配許可權
$sudo rabbitmqctl set_user_tags chris administrator
setting tags for user "chris" to [administrator]
#然後就可以通過http://host:15672 登入management介面管理rabbitmq了,但此時使用者chris還沒有訪問佇列資源的許可權
rabbitmq客戶端連線到乙個服務端的時候,在它的操作指令中指定了乙個虛擬主機。服務端首先檢查是否有訪問該虛擬主機的許可權,沒有許可權的會拒絕連線。
對於exchanges和queues等資源,位於某個虛擬主機內;不同虛擬主機內即便名稱相同也代表不同的資源。當特定操作在資源上執行時第二級訪問控制開始生效。
rabbitmq在某個資源上區分了配置、寫和讀操作。配置操作建立或者銷毀資源,或者更改資源的行為。寫操作將訊息注入進資源之中。讀操作從資源中獲取訊息。
要執行特定操作使用者必須授予合適的許可權。
$sudo rabbitmqctl set_permissions -p / chris ".*" ".*" ".*"
setting permissions for user "chris" in vhost "/"
#此時使用者chris才有訪問佇列資源的許可權
rabbitmqctl(1) manual page(user management, access control)
系統級限制檢視與設定:
#檢視
$ cat /proc/sys/fs/file-max
184289
$ cat /proc/sys/fs/file-nr
1024 0 184289
#已分配檔案控制代碼的數目 分配了但沒有使用的控制代碼數 檔案控制代碼最大數目
#設定$echo 284289 > /proc/sys/fs/file-max
ulimit 命令詳解可以通過ulimit用於shell啟動程序所占用的資源,是shell內建命令。
引數介紹:
-h 設定硬體資源限制.
-s 設定軟體資源限制.
-a 顯示當前所有的資源限制.
-c size:設定core檔案的最大值.單位:blocks
-d size:設定資料段的最大值.單位:kbytes
-f size:設定建立檔案的最大值.單位:blocks
-l size:設定在記憶體中鎖定程序的最大值.單位:kbytes
-m size:設定可以使用的常駐記憶體的最大值.單位:kbytes
-n size:設定核心可以同時開啟的檔案描述符的最大值.單位:n
-p size:設定管道緩衝區的最大值.單位:kbytes
-s size:設定堆疊的最大值.單位:kbytes
-t size:設定cpu使用時間的最大上限.單位:seconds
-v size:設定虛擬記憶體的最大值.單位:kbyteslinux
rabbitmqctl status
檢視當前的限制狀態,status中的file_descriptors
描述了當前的限制:
,,,
]},,]}
rabbitmqctl(1) manual page (controlling system limits on linux)
linux限制開啟檔案數量
rabbitmq預設日誌路徑:/var/log/rabbitmq/
,路徑之下有兩類日誌檔案:
rabbitmq安裝與配置
rabbitmq的安裝和簡單配置 rabbitmq的說明和特性見官網 然後xz d rabbitmq server generic unix 3.6.2.tar.xz 之後用tar xvf 解壓 rabbitmq server generic unix 3.6.2.tar 注意 使用tar zxvf...
RabbitMQ配置與安裝
示例使用的是rabbitmq 3.7.9,因為rabbitmq需要建立在erlang otp平台上,首先要安裝erlang。erlang 二 開始安裝 1 先安裝erlang,如果使用opt win64的方式,開啟後直接全部點 下一步 直到安裝成功。選擇解壓或者其它非安裝的方式,記得新增一下系統環境...
RabbitMQ安裝與配置
訪問rabbitmq官網,下滑到下圖,然後選擇download installation。1 安裝erlang 由於rabbitmq需要erlang語言的支援,在安裝rabbitmq之前需要安裝erlang。sudo apt get install erlang erlang nox 2 安裝rab...