CentOS7上安装、配置、监控RabbitMQ
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负 载部署,非常适合在较大规模的分布式系统中使用,具体特性还在验证中,待检验。由于项目需要,安装并配置了RabbitMQ,服务器操作系统是CentOS7。
环境:CentOS7.2
步骤
一、安装Erlang语言环境
#yum -y install epel-release
#yum -y --enablerepo=epel install erlang
测试是否安装成功
#erl
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1> 1+1.
2
2> halt().
二.安装RabbitMQ
# rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# rpm -ivh rabbitmq-server-3.6.1-1.noarch.rpm
启动服务
#systemctl start rabbitmq-server
#chkconfig rabbitmq-server on
启用web管理监控插件rabbitmq-plugins
management plugin
Rabbitmq management plugin提供HTTP API来管理和监控RabbitMQ Server,具体包含如下功能:
删除、生成、列表,包括:exchanges,queues,bindings,users,virtual hosts and permissions。
监视 queue 长度,每个 channel的message rates ,每个连接的data rates,等等。
发送和接收messages。
监控Erlang processes,file descriptors,memory use。
导出/导出object definitions to JSON。
强制关闭 connections,清空 queues。
management plugin默认就在RabbitMQ的发布版本中,只需要enable就可以了,执行以下命令:
#rabbitmq-plugins enable rabbitmq_management
开放对应端口
#firewall-cmd --permanent --zone=public --add-port=5672/tcp
#firewall-cmd --permanent --zone=public --add-port=15672/tcp
#firewall-cmd --reload
此时可以登录RabbitMQ的管理监控界面了
打开浏览器,输入 http://[server-name]:15672/ 如 http://localhost:15672/ ,会要求输入用户名和密码,用默认的guest/guest即可
guest/guest用户只能从localhost地址登录,如果要配置远程登录,必须另创建用户
可以通过配置文件来实现从远程登录管理界面,只要编辑/etc/rabbitmq/rabbitmq.config文件(没有就新增),添加以下配置就可以了
# cat /etc/rabbitmq/rabbitmq.config
[
{rabbit,[{tcp_listeners,[5672]},{loopback_users,["cyb"]}]}
].
# rabbitmqctl add_user cyb 123456 #添加用户名与密码
#rabbitmqctl set_user_tags cyb administrator #用户设置为administrator角色
#rabbitmqctl set_permissions -p / cyb ".*" ".*" ".*" #添加权限
重启服务
#systemctl restart rabbitmq-server.service
就可以通过远程登录管理监控RabbitMQ
三、远程管理接口的命令行工具
Management command line tool(rabbitmqadmin)拥有跟Web UI同样的功能,可能还更便于脚本使用。rabbitmqadmin仅仅是一个定制的HTTP客户端,如果想在自己的程序中引入 rabbitmqadmin的话,可以直接使用HTTP API。rabbitmqadmin可以在http://server-name:15672/cli页面下载。
下载rabbitmqadmin.txt后,将其重命名为rabbitmqadmin,拷贝到 /usr/local/bin 或者你想要的路径,并增加可执行权限。
# mv rabbitmqadmin.txt rabbitmqadmin
#chmod +x rabbitmqadmin
# rabbitmqadmin --help
: 没有那个文件或目录
出现这个问题时需要在/usr/local/bin 用vim打开 rabbitmqadmin
输入:set ff 回车
出现fileformat=dos
需要改为:set ff=unix 保存退出
rabbitmqadmin可以正常使用了
Declare an exchange
#rabbitmqadmin declare exchange name=cyb-exchange type=fanout
exchange declared
Declare a queue, with optional parameters
#rabbitmqadmin declare queue name=cyb-queue durable=false
queue declared
Get a list of queues, with some columns specified
#rabbitmqadmin list queues vhost name node messages message_stats.publish_details.rate
+-------+-----------+---------------+----------+------------------------------------+
| vhost | name | node | messages | message_stats.publish_details.rate |
+-------+-----------+---------------+----------+------------------------------------+
| / | cyb-queue | rabbit@CentOS | 0 | |
+-------+-----------+---------------+----------+------------------------------------+
Get a list of queues, with all the detail we can take
#rabbitmqadmin -f long -d 3 list queues
--------------------------------------------------------------------------------
vhost: /
name: cyb-queue
auto_delete: False
backing_queue_status.avg_ack_egress_rate: 0.0
backing_queue_status.avg_ack_ingress_rate: 0.0
backing_queue_status.avg_egress_rate: 0.0
backing_queue_status.avg_ingress_rate: 0.0
backing_queue_status.delta: ["delta", "undefined", 0, "undefined"]
backing_queue_status.len: 0
转载于:https://blog.51cto.com/10329031/1768677