Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。
RabbitMQ AMQP server总共有5个命令行工具,分别是:
a. rabbitmqctlb. rabbitmq-plugins
c. rabbitmq-server
d. rabbitmq-service rabbitmq-service [command]
e. rabbitmq-echopid rabbitmq-echopid {sname}
rabbitmqctl是RabbitMQ中间件的一个命令行管理工具。它通过连接一个中间件节点执行所有的动作。本地节点默认被命名为“rabbit”。可以通过这个命令前使 用“-n”标志明确的指定节点名称。
rabbitmq-echopid 返回持有 RabbitMQ 服务的 Erlang runtime 进程id
rabbitmq-service 管理 RabbitMQ AMQP 服务
rabbitmq-plugins 管理 RabbitMQ broker 的 plugin 的命令行工具。下边在开启页面监控时用到。
rabbitmq-server 启动 RabbitMQ AMQP server
1. 服务器启动与关闭
rabbitmq-server –detached --后台启动
rabbitmqctl stop
若单机有多个实例,则在rabbitmqctl后加–n 指定名称
2.查看rabbitmq已经安装的插件信息
cd /usr/rabbitmq/sbin
./rabbitmq-plugins list
可以看到相应的安装的插件列表:
[e] amqp_client 3.2.2
[ ] cowboy 0.5.0-rmq3.2.2-git4b93c2d
[ ] eldap 3.2.2-gite309de4
[e] mochiweb 2.7.0-rmq3.2.2-git680dba8
[ ] rabbitmq_amqp1_0 3.2.2
[ ] rabbitmq_auth_backend_ldap 3.2.2
[ ] rabbitmq_auth_mechanism_ssl 3.2.2
[ ] rabbitmq_consistent_hash_exchange 3.2.2
[ ] rabbitmq_federation 3.2.2
[ ] rabbitmq_federation_management 3.2.2
[ ] rabbitmq_jsonrpc 3.2.2
[ ] rabbitmq_jsonrpc_channel 3.2.2
[ ] rabbitmq_jsonrpc_channel_examples 3.2.2
[E] rabbitmq_management 3.2.2
[e] rabbitmq_management_agent 3.2.2
[ ] rabbitmq_management_visualiser 3.2.2
[ ] rabbitmq_mqtt 3.2.2
[ ] rabbitmq_shovel 3.2.2
[ ] rabbitmq_shovel_management 3.2.2
[ ] rabbitmq_stomp 3.2.2
[ ] rabbitmq_tracing 3.2.2
[e] rabbitmq_web_dispatch 3.2.2
[ ] rabbitmq_web_stomp 3.2.2
[ ] rabbitmq_web_stomp_examples 3.2.2
[ ] rfc4627_jsonrpc 3.2.2-git5e67120
[ ] sockjs 0.3.4-rmq3.2.2-git3132eb9
[e] webmachine 1.10.3-rmq3.2.2-gite9359c7
启动方式:
./rabbitmq-plugins enable rabbitmq_management
关闭方式:
./rabbitmq-plugins disable rabbitmq_management
新建virtual_host:
rabbitmqctl add_vhost weijh_vhost
撤销 virtual_host:
rabbitmqctl delete_vhost xxx
列出所有虚拟主机 :
rabbitmqctl list_vhosts
4. 用户管理
新建用户:
rabbitmqctl add_user xxx pwd
删除用户:
rabbitmqctl delete_user xxx
改密码:
rabbimqctl change_password {username} {newpassword}
设置用户角色:
rabbitmqctl set_user_tags {username} {tag ...}
Tag可以为 administrator, monitoring, management
management :
Anything the user could do via AMQP plus:
List virtual hosts to which they can log in via AMQP View all queues,
exchanges and bindings in "their" virtual hosts View and close their own channels and connections 。
View "global" statistics covering all their virtual hosts, including activity by other users withmonitoring Everything them 。
monitoring :
Everything "management" can plus: List all virtual hosts,
including ones they could not log in to via AMQP View other users's connections and channels 。
View node-level data such as memory use and clustering View truly global statistics for all virtual hosts。
与management比,monitoring在页面展示上与其区别:
administrator :
Everything "monitoring" can plus: Create and delete virtual hosts View,
create and delete users View, create and delete permissions Close other users's connections
与monitoring比,administrator拥有对用户添加删除及虚拟主机添加等权限。
monitoring角色展示:
administrator角色展示:
权限设置:
set_permissions [-p vhostpath] {user} {conf} {write} {read} Vhostpath
Vhost:路径,user: 用户名
Conf 一个正则表达式match哪些配置资源能够被该用户访问
Write 一个正则表达式match哪些配置资源能够被该用户写
Read 一个正则表达式match哪些配置资源能够被该用户访问
rabbitmqctl set_permissions -p test_host test "test-*" ".*" ".*"
rabbitmqctl set_permissions -p "/" weijh ".*" ".*" ".*"
用户名为test的用户就可以访问vitrual host为test_host的资源了,并且具备读写的权限。
用户名为weijh的用户就可以访问root默认虚拟主机所有的资源了,并且具备读写的权限。
列出虚拟主机上的所有权限
rabbitmqctl list_permissions [-p vhostpath]
清除用户权限
rabbitmqctl clear_permissions [-p vhostpath] username
列出用户权限
rabbitmqctl list_user_permissions username