RabbitMQ消息隊列(四)-服務詳細配置與日常監控管理


RabbitMQ服務管理

啟動服務:rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server  -detached 】
查看狀態:rabbitmqctl status
關閉服務:rabbitmqctl stop
列出角色:rabbitmqctl list_users
開啟某個插件:rabbitmq-pluginsenable xxx
關閉某個插件:rabbitmq-pluginsdisablexxx
注意:重啟服務器后生效。

 

RabbitMQ服務詳細配置rabbitmq.config

RabbitMQ 提供了三種方式來定制服務器:

環境變量
定義端口,文件位置和名稱(接受shell輸入,或者在環境配置文件(rabbitmq-env.conf)中設置)。
配置文件
為服務器組件設置權限,限制和集群,也可以定義插件設置(rabbitmq.config)。
運行時參數和策略
可在運行時進行修改集群設置。

下面我會介紹通過配置文件rabbitmq.config來配置rabbitmq。

  • rabbitmq.config 的位置
    這些文件的位置分布特定的. 默認情況下,這些文件是沒有創建的,但每個平台上期望的位置如下:
    Generic UNIX - $RABBITMQ_HOME/etc/rabbitmq/
    Debian - /etc/rabbitmq/
    RPM - /etc/rabbitmq/
    Mac OS X (Homebrew) - ${install_prefix}/etc/rabbitmq/, the Homebrew prefix is usually/usr/local
    Windows - %APPDATA%\RabbitMQ\

 

 

通過WEB管理插件我們也可以看到該配置文件的地址:
RabbitMQ配置文件

  • rabbitmq.config 配置
    我的是在/usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config,rabbitmq.config配置文件允許配置RabbitMQ 核心程序, Erlang 服務和RabbitMQ 插件。它是標准的Erlang 配置文件。RabbitMQ在找不到配置文件的情況下會按照默認的配置運行。在系統提示的位置新建這個文件:
touch /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config

 

如下是我常用到的rabbitmq.config配置文件的信息,意思是RabbitMQ內存閾值最大可用使用我系統40%的內存,超過40%開始拒絕生產消息,當內存使用率達到閾值的40%時開始持久化到磁盤。0.4也是官方建議的值,我曾經為了性能把該值設置成0.8,內存稍一波動整個服務就崩潰了。

[
{rabbit, [{vm_memory_high_watermark_paging_ratio, 0.4},
         {vm_memory_high_watermark, 0.4}]}
].

 

更多可配置參數請查看:https://www.cnblogs.com/wyt007/p/9075136.html

通過rabbitmqctl管理RabbitMQ

virtual_host管理

新建virtual_host: rabbitmqctl add_vhost xxx
撤銷virtual_host:rabbitmqctl delete_vhost xxx

 

用戶管理

新建用戶:rabbitmqctl add_user usernamexxx pwdxxx
刪除用戶:rabbitmqctl delete_user usernamexxx
改密碼: rabbimqctl change_password {username} {newpassword}
設置用戶角色:rabbitmqctl set_user_tags {username} {tag ...}
Tag可以為 administrator,monitoring, management

 

權限管理

rabbitmqctl set_permissions -p / username ".*" ".*" ".*"  //添加權限
rabbitmqctl set_user_tags username administrator  //修改用戶角色

權限設置說明:rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath:Vhost路徑。
user:用戶名。
Conf:一個正則表達式match哪些配置資源能夠被該用戶訪問。
Write:一個正則表達式match哪些配置資源能夠被該用戶讀。
Read:一個正則表達式match哪些配置資源能夠被該用戶訪問。

 

獲取服務器狀態信息

獲取服務器狀態:rabbitmqctl status

關閉應用:rabbitmqctl stop_app
啟動應用,和上述關閉命令配合使用,達到清空隊列的目的:rabbitmqctl start_app
清除所有隊列:rabbitmqctl reset

查看所有隊列信息:rabbitmqctl list_queues

獲取隊列信息: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。

 

RabbitMQ消息隊列WEB管理工具

目前處於技術癌早期,所以一般能圖形化還是要盡量圖形化的。RabbitMQ自帶的消息隊列管理插件就非常不錯
瀏覽器打開HTTP://IP:15672

RabbitMQ WEB管理插件

最上側的導航以此是:《概覽》、《連接》、《信道》、《交換機》、《隊列》、《用戶管理》

RabbitMQ日志文件

通過日志文件方便我們定位很多問題,同樣在WEB管理插件中可以看到日志文件的路徑,我的是在/usr/local/rabbitmq/var/log/rabbitmq/,在該路徑下有兩個日志文件:rabbit@localhost.log和rabbit@localhost-sasl.log。saal(System Application Support libraries 系統應用支持庫)用來記錄Erlang相關的信息,舉例來說可以通過這個文件看到Erlang的崩潰報告。

另外也可以通過綁定監聽amq.rabbitmq.log交換機來訂閱日志信息來實現更多功能。

 

轉自:https://blog.csdn.net/super_rd/article/details/70327503


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM