(四)RabbitMQ消息队列-服务详细配置与日常监控管理
RabbitMQ服務管理
啟動服務:rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server -detached 】 查看狀態(tài):rabbitmqctl status 關(guān)閉服務:rabbitmqctl stop 列出角色:rabbitmqctl list_users 開啟某個插件:rabbitmq-pluginsenable xxx 關(guān)閉某個插件:rabbitmq-pluginsdisablexxx 注意:重啟服務器后生效。RabbitMQ服務詳細配置rabbitmq.config
RabbitMQ 提供了三種方式來定制服務器:
環(huán)境變量
定義端口,文件位置和名稱(接受shell輸入,或者在環(huán)境配置文件(rabbitmq-env.conf)中設置)。
配置文件
為服務器組件設置權(quán)限,限制和集群,也可以定義插件設置(rabbitmq.config)。
運行時參數(shù)和策略
可在運行時進行修改集群設置。
下面我會介紹通過配置文件rabbitmq.config來配置rabbitmq。
- rabbitmq.config 的位置
這些文件的位置分布特定的. 默認情況下,這些文件是沒有創(chuàng)建的,但每個平臺上期望的位置如下:
通過WEB管理插件我們也可以看到該配置文件的地址:
- rabbitmq.config 配置
我的是在/usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config,rabbitmq.config配置文件允許配置RabbitMQ 核心程序, Erlang 服務和RabbitMQ 插件。它是標準的Erlang 配置文件。RabbitMQ在找不到配置文件的情況下會按照默認的配置運行。在系統(tǒng)提示的位置新建這個文件:
如下是我常用到的rabbitmq.config配置文件的信息,意思是RabbitMQ內(nèi)存閾值最大可用使用我系統(tǒng)40%的內(nèi)存,超過40%開始拒絕生產(chǎn)消息,當內(nèi)存使用率達到閾值的40%時開始持久化到磁盤。0.4也是官方建議的值,我曾經(jīng)為了性能把該值設置成0.8,內(nèi)存稍一波動整個服務就崩潰了。
[ {rabbit, [{vm_memory_high_watermark_paging_ratio, 0.4},{vm_memory_high_watermark, 0.4}]} ].更多可配置參數(shù)請查看:http://blog.csdn.net/super_rd/article/details/70327712
通過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權(quán)限管理
rabbitmqctl set_permissions -p / username ".*" ".*" ".*" //添加權(quán)限 rabbitmqctl set_user_tags username administrator //修改用戶角色權(quán)限設置說明:rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read} Vhostpath:Vhost路徑。 user:用戶名。 Conf:一個正則表達式match哪些配置資源能夠被該用戶訪問。 Write:一個正則表達式match哪些配置資源能夠被該用戶讀。 Read:一個正則表達式match哪些配置資源能夠被該用戶訪問。獲取服務器狀態(tài)信息
獲取服務器狀態(tài):rabbitmqctl status關(guān)閉應用:rabbitmqctl stop_app 啟動應用,和上述關(guān)閉命令配合使用,達到清空隊列的目的: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管理工具
目前處于技術(shù)癌早期,所以一般能圖形化還是要盡量圖形化的。RabbitMQ自帶的消息隊列管理插件就非常不錯(上一章已經(jīng)講過安裝方法http://blog.csdn.net/super_rd/article/details/70241007)。
瀏覽器打開HTTP://IP:15672
最上側(cè)的導航以此是:《概覽》、《連接》、《信道》、《交換機》、《隊列》、《用戶管理》
無論是服務器監(jiān)控還是日常的管理基本都可以解決,很方便。既然都圖形化了我就不贅述了,建議都點開看下,如果有什么參數(shù)不明白可以加最下方的QQ群探討。
RabbitMQ日志文件
通過日志文件方便我們定位很多問題,同樣在WEB管理插件中可以看到日志文件的路徑,我的是在/usr/local/rabbitmq/var/log/rabbitmq/,在該路徑下有兩個日志文件:rabbit@localhost.log和rabbit@localhost-sasl.log。saal(System Application Support libraries 系統(tǒng)應用支持庫)用來記錄Erlang相關(guān)的信息,舉例來說可以通過這個文件看到Erlang的崩潰報告。
另外也可以通過綁定監(jiān)聽amq.rabbitmq.log交換機來訂閱日志信息來實現(xiàn)更多功能。
RabbitMQ技術(shù)交流QQ群:327034977(添加時請備注RabbitMQ)
posted on 2019-02-13 15:48 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/10370194.html
總結(jié)
以上是生活随笔為你收集整理的(四)RabbitMQ消息队列-服务详细配置与日常监控管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下scrapyd部署爬虫项目
- 下一篇: sql server常用性能计数器