Rabbitmq

Rabbitmq

Rabbitmq用户管理介绍

大数据 koyo 发表了文章 0 个评论 2941 次浏览 2016-03-30 23:38 来自相关话题

用户管理 用户管理包括:增加用户、删除用户、查看用户列表、修改用户密码​。1、新增一个用户rabbitmqctl add_user Username Password2、删除一个用户rabbitmqctl delete_use ...查看全部


用户管理


用户管理包括:
增加用户、删除用户、查看用户列表、修改用户密码​。
1、新增一个用户
rabbitmqctl  add_user  Username  Password
2、删除一个用户
rabbitmqctl  delete_user  Username
3、修改用户的密码
rabbitmqctl  change_password  Username  Newpassword
4、查看当前用户列表
rabbitmqctl  list_users


用户角色


用户角色可分为五类:
超级管理员、监控者、策略制定者、普通管理者以及其他。
1、超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。
与administrator的对比,administrator能看到这些内容。
4、普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
5、其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。
 
设置用户角色的命令为:
rabbitmqctl  set_user_tags  User  Tag
User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
 
也可以给同一用户设置多个角色,例如:
rabbitmqctl  set_user_tags  hncscwc  monitoring  policymaker


用户权限


用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。
例如:
将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。
相关命令为:
1、设置用户权限
rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP
2、 查看(指定hostpath)所有用户的权限信息
rabbitmqctl  list_permissions  [-p  VHostPath]
3、查看指定用户的权限信息
rabbitmqctl  list_user_permissions  User
4、清除用户的权限信息
rabbitmqctl  clear_permissions  [-p VHostPath]  User

Rabbitmq 3.5.1 Web管理界面guest无法登陆分析

学习资源 koyo 发表了文章 0 个评论 3929 次浏览 2016-03-30 23:16 来自相关话题

安装了rabbitmq(3.5.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败。 翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号 ...查看全部
rmqlogin.png

安装了rabbitmq(3.5.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败。

翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版本之后引入的)。

虽然可以以比较猥琐的方式:将ebin目录下rabbit.app中loopback_users里的<<"guest">>删除, 
 并重启rabbitmq,可通过任意IP使用guest账号登陆管理控制台,但始终是违背了设计者的初衷,再加上以前对这一块了解也不多,因此有必要总结一下。

Centos下Rabbitmq安装配置

大数据 koyo 发表了文章 0 个评论 4461 次浏览 2016-03-29 18:38 来自相关话题

因为rabbitmq是利用erlang编程语言开发的,所以首先我们得安装erlang虚拟机的支持,就像Java重新一样,首先得有JDK的支持。 一、安装Erlang 1、Yum方法安装# wget -O /e ...查看全部
因为rabbitmq是利用erlang编程语言开发的,所以首先我们得安装erlang虚拟机的支持,就像Java重新一样,首先得有JDK的支持。


一、安装Erlang


1、Yum方法安装
# wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
# yum -y install erlang
2、源码安装
# yum -y install gcc* make ncurses-devel libxslt xsltproc unzip nc xmlto
# wget http://www.erlang.org/download/otp_src_R16B01.tar.gz
# tar zxvf otp_src_R16B01.tar.gz
# ./configure --prefix=/usr/local/erlang_R16B01 --without-javac --with-ssl
# make && make install
# ln -s /usr/local/erlang/bin/erl /usr/bin/erl
# ln -s /usr/local/erlang/bin/escript /usr/bin/escript
# ln -s /usr/local/erlang/bin/erlc /usr/bin/erlc


二、安装Rabbitmq


1、Yum方法安装
# rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# yum install rabbitmq-server-3.1.5
2、源码安装
***下载免编译安装包,下载解压开封即用,可以下载任意自己想要的版本!
# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.1/rabbitmq-server-generic-unix-3.5.1.tar.gz
# tar zxf rabbitmq-server-generic-unix-3.5.1.tar.gz -C /data/


三、配置


配置文件和初始化环境脚本配置指定在/data/rabbitmq_server-3.5.1/sbin目录下:
rabbitmq-env         环境初始化配置
rabbitmq-defaults 默认参数设置
rabbitmqctl 管理工具
rabbitmq-plugins 插件管理工具
rabbitmq-server rabbitmq服务启动脚本
rabbitmq-defaults配置:
SYS_PREFIX=${RABBITMQ_HOME}
ERL_DIR=/usr/bin/ //设置erl命令路径
CLEAN_BOOT_FILE=start_clean
SASL_BOOT_FILE=start_sasl
CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq //设置rabbitmq配置文件路径
LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins //允许插件列表配置文件
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
主要配置文件介绍:
1、enabled_plugins:设置允许的插件列表,格式如下:
[rabbitmq_jsonrpc_channel,
rabbitmq_management,
rabbitmq_management_visualiser,
rabbitmq_tracing].
2、rabbitmq.config:设置rabbitmq运行参数。结构为hash数组格式,如:
[
{mnesia, [{dump_log_write_threshold, 1000}]},
{rabbit, [{vm_memory_high_watermark, 0.4}]}
{rabbitmq_management,
[{listener, [{port, 55673},
{ip, "0.0.0.0"}
]}
]}
].
其中几个关键参数为:
tcp_listeners      设置rabbimq的监听端口,默认为[5672]。
disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
vm_memory_high_watermark 设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
hipe_compile 将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
force_fine_statistics 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。
配置实栗如下:
[{auth_backends,[rabbit_auth_backend_internal]},
{auth_mechanisms,['PLAIN','AMQPLAIN']},
{backing_queue_module,rabbit_variable_queue},
{cluster_nodes,},
{collect_statistics,fine},
{collect_statistics_interval,5000},
{default_permissions,[<<".[i]">>,<<".[/i]">>,<<".*">>]},
{default_user,<<"guest">>},
{default_user_tags,[administrator]},
{default_vhost,<<"/">>},
{delegate_count,16},
{error_logger,{file,"/usr/local/var/log/rabbitmq/rabbit@Technophiliac.log"}},
{frame_max,131072},
{hipe_compile,false},
{included_applications,},
{msg_store_file_size_limit,16777216},
{msg_store_index_module,rabbit_msg_store_ets_index},
{queue_index_max_journal_entries,262144},
{sasl_error_logger,{file,"/usr/local/var/log/rabbitmq/rabbit@Technophiliac-sasl.log"}},
{server_properties,},
{ssl_listeners,},
{ssl_options,},
{tcp_listen_options,
[binary,
{packet,raw},
{reuseaddr,true},
{backlog,128},
{nodelay,true},
{exit_on_close,false}]},
{tcp_listeners,[5672]},
{trace_vhosts,[<<"/">>]},
{vm_memory_high_watermark,0.4}].
3、rabbitmq-env.conf rabbitmq环境参数配置:
RABBITMQ_NODENAME=FZTEC-240088  节点名称
RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 监听IP
RABBITMQ_NODE_PORT=5672 监听端口
RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录
更详细的配置参考官网: http://www.rabbitmq.com/configure.html#configuration-file 
4、启动
# /usr/local/rabbitmq/sbin/rabbitmq-server -detached


四、插件管理


启用rabbitmq web管理插件
# ./rabbitmq-plugins enable rabbitmq_management
web管理端口默认端口是15672,访问地址为http://rabbitmq_host_ip:15672  默认有一个用户名字和密码都是guest
rmq.png

列出所有插件
./rabbitmq-plugins list
rmqlist.png

安装Rabbitmq出现的错误

大数据 Something 回复了问题 2 人关注 1 个回复 7482 次浏览 2016-03-28 00:28 来自相关话题

安装Rabbitmq出现的错误

回复

大数据 Something 回复了问题 2 人关注 1 个回复 7482 次浏览 2016-03-28 00:28 来自相关话题

Rabbitmq用户管理介绍

大数据 koyo 发表了文章 0 个评论 2941 次浏览 2016-03-30 23:38 来自相关话题

用户管理 用户管理包括:增加用户、删除用户、查看用户列表、修改用户密码​。1、新增一个用户rabbitmqctl add_user Username Password2、删除一个用户rabbitmqctl delete_use ...查看全部


用户管理


用户管理包括:
增加用户、删除用户、查看用户列表、修改用户密码​。
1、新增一个用户
rabbitmqctl  add_user  Username  Password
2、删除一个用户
rabbitmqctl  delete_user  Username
3、修改用户的密码
rabbitmqctl  change_password  Username  Newpassword
4、查看当前用户列表
rabbitmqctl  list_users


用户角色


用户角色可分为五类:
超级管理员、监控者、策略制定者、普通管理者以及其他。
1、超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。
与administrator的对比,administrator能看到这些内容。
4、普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
5、其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。
 
设置用户角色的命令为:
rabbitmqctl  set_user_tags  User  Tag
User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
 
也可以给同一用户设置多个角色,例如:
rabbitmqctl  set_user_tags  hncscwc  monitoring  policymaker


用户权限


用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。
例如:
将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。
相关命令为:
1、设置用户权限
rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP
2、 查看(指定hostpath)所有用户的权限信息
rabbitmqctl  list_permissions  [-p  VHostPath]
3、查看指定用户的权限信息
rabbitmqctl  list_user_permissions  User
4、清除用户的权限信息
rabbitmqctl  clear_permissions  [-p VHostPath]  User

Rabbitmq 3.5.1 Web管理界面guest无法登陆分析

学习资源 koyo 发表了文章 0 个评论 3929 次浏览 2016-03-30 23:16 来自相关话题

安装了rabbitmq(3.5.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败。 翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号 ...查看全部
rmqlogin.png

安装了rabbitmq(3.5.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败。

翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版本之后引入的)。

虽然可以以比较猥琐的方式:将ebin目录下rabbit.app中loopback_users里的<<"guest">>删除, 
 并重启rabbitmq,可通过任意IP使用guest账号登陆管理控制台,但始终是违背了设计者的初衷,再加上以前对这一块了解也不多,因此有必要总结一下。

Centos下Rabbitmq安装配置

大数据 koyo 发表了文章 0 个评论 4461 次浏览 2016-03-29 18:38 来自相关话题

因为rabbitmq是利用erlang编程语言开发的,所以首先我们得安装erlang虚拟机的支持,就像Java重新一样,首先得有JDK的支持。 一、安装Erlang 1、Yum方法安装# wget -O /e ...查看全部
因为rabbitmq是利用erlang编程语言开发的,所以首先我们得安装erlang虚拟机的支持,就像Java重新一样,首先得有JDK的支持。


一、安装Erlang


1、Yum方法安装
# wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
# yum -y install erlang
2、源码安装
# yum -y install gcc* make ncurses-devel libxslt xsltproc unzip nc xmlto
# wget http://www.erlang.org/download/otp_src_R16B01.tar.gz
# tar zxvf otp_src_R16B01.tar.gz
# ./configure --prefix=/usr/local/erlang_R16B01 --without-javac --with-ssl
# make && make install
# ln -s /usr/local/erlang/bin/erl /usr/bin/erl
# ln -s /usr/local/erlang/bin/escript /usr/bin/escript
# ln -s /usr/local/erlang/bin/erlc /usr/bin/erlc


二、安装Rabbitmq


1、Yum方法安装
# rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# yum install rabbitmq-server-3.1.5
2、源码安装
***下载免编译安装包,下载解压开封即用,可以下载任意自己想要的版本!
# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.1/rabbitmq-server-generic-unix-3.5.1.tar.gz
# tar zxf rabbitmq-server-generic-unix-3.5.1.tar.gz -C /data/


三、配置


配置文件和初始化环境脚本配置指定在/data/rabbitmq_server-3.5.1/sbin目录下:
rabbitmq-env         环境初始化配置
rabbitmq-defaults 默认参数设置
rabbitmqctl 管理工具
rabbitmq-plugins 插件管理工具
rabbitmq-server rabbitmq服务启动脚本
rabbitmq-defaults配置:
SYS_PREFIX=${RABBITMQ_HOME}
ERL_DIR=/usr/bin/ //设置erl命令路径
CLEAN_BOOT_FILE=start_clean
SASL_BOOT_FILE=start_sasl
CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq //设置rabbitmq配置文件路径
LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins //允许插件列表配置文件
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
主要配置文件介绍:
1、enabled_plugins:设置允许的插件列表,格式如下:
[rabbitmq_jsonrpc_channel,
rabbitmq_management,
rabbitmq_management_visualiser,
rabbitmq_tracing].
2、rabbitmq.config:设置rabbitmq运行参数。结构为hash数组格式,如:
[
{mnesia, [{dump_log_write_threshold, 1000}]},
{rabbit, [{vm_memory_high_watermark, 0.4}]}
{rabbitmq_management,
[{listener, [{port, 55673},
{ip, "0.0.0.0"}
]}
]}
].
其中几个关键参数为:
tcp_listeners      设置rabbimq的监听端口,默认为[5672]。
disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
vm_memory_high_watermark 设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
hipe_compile 将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
force_fine_statistics 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。
配置实栗如下:
[{auth_backends,[rabbit_auth_backend_internal]},
{auth_mechanisms,['PLAIN','AMQPLAIN']},
{backing_queue_module,rabbit_variable_queue},
{cluster_nodes,},
{collect_statistics,fine},
{collect_statistics_interval,5000},
{default_permissions,[<<".[i]">>,<<".[/i]">>,<<".*">>]},
{default_user,<<"guest">>},
{default_user_tags,[administrator]},
{default_vhost,<<"/">>},
{delegate_count,16},
{error_logger,{file,"/usr/local/var/log/rabbitmq/rabbit@Technophiliac.log"}},
{frame_max,131072},
{hipe_compile,false},
{included_applications,},
{msg_store_file_size_limit,16777216},
{msg_store_index_module,rabbit_msg_store_ets_index},
{queue_index_max_journal_entries,262144},
{sasl_error_logger,{file,"/usr/local/var/log/rabbitmq/rabbit@Technophiliac-sasl.log"}},
{server_properties,},
{ssl_listeners,},
{ssl_options,},
{tcp_listen_options,
[binary,
{packet,raw},
{reuseaddr,true},
{backlog,128},
{nodelay,true},
{exit_on_close,false}]},
{tcp_listeners,[5672]},
{trace_vhosts,[<<"/">>]},
{vm_memory_high_watermark,0.4}].
3、rabbitmq-env.conf rabbitmq环境参数配置:
RABBITMQ_NODENAME=FZTEC-240088  节点名称
RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 监听IP
RABBITMQ_NODE_PORT=5672 监听端口
RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录
更详细的配置参考官网: http://www.rabbitmq.com/configure.html#configuration-file 
4、启动
# /usr/local/rabbitmq/sbin/rabbitmq-server -detached


四、插件管理


启用rabbitmq web管理插件
# ./rabbitmq-plugins enable rabbitmq_management
web管理端口默认端口是15672,访问地址为http://rabbitmq_host_ip:15672  默认有一个用户名字和密码都是guest
rmq.png

列出所有插件
./rabbitmq-plugins list
rmqlist.png
RabbitMQ是一个很受欢迎的消息中间件,通过它可以很方便地实现异构子系统之间的通讯,还可以将不同子系统之间进行解耦。它用erlang开发,基本上是实现了AMQP 1.0标准的消息协议。