root@live-mq-01:~# netstat -nplt
Active Internet connections(only servers)
Proto Recv-QSend-QLocal Address Foreign Address State PID/Program name
tcp 0 00.0.0.0:4369 0.0.0.0:* LISTEN 617/epmd
tcp 0 00.0.0.0:22 0.0.0.0:* LISTEN 484/sshd
tcp 0 00.0.0.0:15672 0.0.0.0:* LISTEN 2220/beam.smp
tcp 0 00.0.0.0:10050 0.0.0.0:* LISTEN 595/zabbix_agentd
tcp 0 00.0.0.0:25672 0.0.0.0:* LISTEN 2220/beam.smp
tcp6 0 0:::10050 :::* LISTEN 595/zabbix_agentd
tcp6 0 0:::5672 :::* LISTEN 2220/beam.smp
打开浏览器,直接访问IP:15672即可看到RabbitMQ的监控画面(输入mq用户和密码),如下:
从图中可以看出集群中的三个节点信息,其中两个内存节点,一个磁盘节点。另外,在memory字段显示了当前内存的使用情况和最高可以使用的内存量,同样在Disk space字段显示了磁盘空间和最低可用的磁盘空间。基于这两点,下面说一下RabbitMQ对内存和磁盘的控制。
一、内存控制
vm_memory_high_watermark该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使用内存80%。如果把该值配置为0,将关闭所有的publishing 。
root@live-mq-01:~# rabbitmqctl set_vm_memory_high_watermark 0
Paging内存阈值,该值为默认为0.5,该值为vm_memory_high_watermark的20%时,将把内存数据写到磁盘。
如机器内存16G,当RABBITMQ占用内存1.28G(16*0.4*0.2)时把内存数据放到磁盘。
二、硬盘控制
当RabbitMQ的磁盘空闲空间小于50M(默认),生产者将被BLOCK。
如果采用集群模式,磁盘节点空闲空间小于50M将导致其他节点的生产者都被block。可以通过disk_free_limit来对进行配置。
如果要从远程登录怎么做呢?处于安全考虑,guest这个默认的用户只能通过:15672来登录,其他的IP无法直接用这个guest帐号。这里我们可以通过配置文件来实现从远程登录管理界面,只要编辑/etc/rabbitmq/rabbitmq.config文件(没有就新增),添加以下配置就可以了。
[
{rabbit,[{tcp_listeners,[5672]},{loopback_users,["mq"]}]}
].
这个操作在上面配置中都已经做过了。
6)注意事项