您的评价: |
|
收藏该经验
|
RabbitMQ提供了完善的管理和监控工具,分management plugin 和 rabbitmqctl 两种类型的工具。
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就可以了,执行以下命令:
1
2
|
$
cd
/usr/lib/rabbitmq/bin/
$
sudo
rabbitmq-plugins
enable
rabbitmq_management
|
看到这一幕后,重启RabbitMQ就可以了。需要注意的是,mochiweb 必须得有,mochiweb是一个用来构建Web应用的轻便,高效的HTTP应用框架的Erlang库。
下面可以通过以下两种方式来访问管理和监控界面:
打开浏览器,输入 http://[server-name]:15672/ 如 http://localhost:15672/ ,会要求输入用户名和密码,用默认的guest/guest即可(guest/guest用户只能从localhost地址登录,如果要配置远程登录,必须另创建用户),确认后会出现下面界面:
接下来你就可以掌控RabbitMQ了。
如果要从远程登录怎么做呢?处于安全考虑,guest这个默认的用户只能通过http://localhost:15672来登录,其他的IP无法直接用这个guest帐号。这里我们可以通过配置文件来实现从远程登录管理界面,只要编辑/etc/rabbitmq/rabbitmq.config文件(没有就新增),添加以下配置就可以了。
1
2
3
|
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, [
"asdf"
]}]}
].
|
现在添加了一个新授权用户asdf,可以远程使用这个用户名。记得要先用命令添加这个命令才行:
1
2
3
4
5
6
|
$
cd
/usr/lib/rabbitmq/bin/
#用户名与密码
$
sudo
rabbitmqctl add_user asdf 123456
#用户设置为administrator才能远程访问
$
sudo
rabbitmqctl set_user_tags asdf administrator
$
sudo
rabbitmqctl set_permissions -p / asdf
".*"
".*"
".*"
|
其实也可以通过管理平台页面直接添加用户和密码等信息。如果还不能远程访问或远程登录检查是不是5672, 15672端口没有开放!!!!!!
Management command line tool(rabbitmqadmin)拥有跟Web UI同样的功能,可能还更便于脚本使用。rabbitmqadmin仅仅是一个定制的HTTP客户端,如果想在自己的程序中引入 rabbitmqadmin的话,可以直接使用HTTP API。rabbitmqadmin可以在http://server-name:15672/cli页面下载。
下载rabbitmqadmin.txt后,将其重命名为rabbitmqadmin,拷贝到 /usr/local/bin 或者你想要的路径,并增加可执行权限。使用:
?
1
|
$ sudo rabbitmqadmin --help
|
可以查看使用指南。
rabbitmqctl是一个简单的命令行工具用于管理RabbitMQ Server,适合通过ssh登陆的管理。
在shell中执行如下命令,能看到各种命令简价:
Usage:
rabbitmqctl [-n
Options:
-n node
-q
Default node is "rabbit@server", where server is the local host. On a host named "server.example.com", the node name of the RabbitMQ Erlang node will usually be rabbit@server (unless RABBITMQ_NODENAME has been set to some non-default value at broker startup time). The output of hostname -s is usually the correct suffix to use after the "@" sign. See rabbitmq-server(1) for
details of configuring the RabbitMQ broker.
Quiet output mode is selected with the "-q" flag. Informational messages are
suppressed when quiet mode is in effect.
Commands:
stop [
stop_app
start_app
wait
reset
force_reset
rotate_logs
join_cluster
cluster_status
change_cluster_node_type disc | ram
forget_cluster_node [--offline]
update_cluster_nodes clusternode
add_user
delete_user
change_password
clear_password
set_user_tags
list_users
add_vhost
delete_vhost
list_vhosts [
set_permissions [-p
clear_permissions [-p
list_permissions [-p
list_user_permissions
set_parameter [-p
clear_parameter [-p
list_parameters [-p
set_policy [-p
clear_policy [-p
list_policies [-p
list_queues [-p
list_exchanges [-p
list_bindings [-p
list_connections [
list_channels [
list_consumers [-p
status
environment
report
eval
close_connection
trace_on [-p
trace_off [-p
set_vm_memory_high_watermark
The list_queues, list_exchanges and list_bindings commands accept an optional virtual host parameter for which to display results. The default value is "/".