RabbitMQ user and grant

RabbitMQ 用户管理

1
2
3
4
5
6
7
8
9
* 创建用户
rabbitmqctl add username password
* 删除用户
rabbitmqctl delete username
*注意:会删除用户和访问策略!!!*
* 修改用户密码
rabbitmqctl change_password username new-password
* 查看用户列表
rabbitmqctl list_users

RabbitMQ 权限管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
1. 权限种类
* 读 有关消费消息的任何操作,包括"清除"整个队列(绑定操作的成功)
1. queue.bind:
配置:exchange
2. basic.get
配置: queue
3. basic.consume
配置: queue
4. queue.purge
配置: queue
* 写 发布消息(绑定操作的成功)
1. queue.bind
配置: queue
2. basic.publish
配置: exchange
* 配置 队列和交换器的创建和删除
1. exchange.declare
配置: exchange
2. exchange.delete
配置: exchange
3. queue.declare
配置: queue
4. queue.delete
配置: queue
2. 每条访问规则组成
* 被授权访问的用户
* 权限控制应用的vhost
* 需要授予读/写/配置权限组合
* 权限范围(仅应用于客户端命名队列/交换器;仅用于服务端命名队列/交换器;两者兼备)
*注意: 访问控制条目是无法跨越vhost的*
3. 授权案例
* 完全访问控制
rabbitmqctl set_permissions -p vhost-name username ".\*" ".\*" ".\*"
* 第一个".\*"表示配置的权限
* 第二个".\*"表示写的权限
* 第三个".\*"表示读的权限
* 组合使用
rabbitmqctl set_permissions -p vhost-name -s all username "" "check-.\*" ".\*"
* 授权在vhost-name上
* -s all 表示任何队列或者交换器
* "" 表示不匹配队列和交换器
* "check-.\*" 表示只匹配以"check-"开头的队列和交换器
* 查看访问策略
rabbitmqctl list_permissions -p vhost-name
* 移除一个用户在vhost上的权限
rabbitmqctl clear_permissions -p vhost-name username
* 查看用户在所有vhost上的权限
rabbitmqctl list_user_permissions username

RabbitMQ 查看统计

1
2
3
4
5
6
7
8
9
10
1. 列出队列和消息数目
* rabbitmqctl list_queues
* rabbitmqctl list_queues -p vhost-name
* rabbitmqctl list_queues -p vhost-name name messages consumers memory
* rabbitmqctl list_queues -p vhost-name name durable auto_delete
2. 查看交换器和绑定
* rabbitmqctl list_exchanges
* rabbitmqctl list_exchanges name type durable auto_delete

* rabbitmqctl list_bindings

RabbitMQ 日志

1
2
3
4
5
6
7
8
1. 两个日志文件
* RABBITMQ_NODENAME-sasl.log
sasl是库的集合,作为Erlang-OPT发行版一部分,帮助开发者在开发应用程序时,将日志写入rabbit-sasl.log文件
可以找到Erlang的崩溃报告
* RABBITMQ_NODENAME.log
配置系统日志
2. 轮询日志
rabbitmqctl rotate_logs .1