rabbitmq常见运维命令和问题总结

常见运维命令作用:

yum安装erlang的环境配置:

ERLANG_HOME=/usr/lib64/erlang
export PATH=$PATH:$ERLANG_HOME/bin

常见rabbitmq server命令:

service rabbitmq-server   start
service rabbitmq-server   stop
service rabbitmq-server   status
service rabbitmq-server   rotate-logs|
service rabbitmq-server   restart
service rabbitmq-server   condrestart
service rabbitmq-server   try-restart
service rabbitmq-server   reload
service rabbitmq-server   force-reload

ps -ef | grep rabbitmq  查看rabbitMq进程

kill -9 pid

netstat -anplt | grep LISTEN  rabbitmq默认监听端口15672/5672

然后开启rabbitmq web管理页面插件:

rabbitmq-plugins enable rabbitmq_management

查看相应端口占用

[yf482@bogon rabbitmq]$ sudo netstat -lnutp |grep 15672
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 8794/erl

管理员账号
rabbitmqctl add_user rabbitadmin 123456

[yf482@bogon rabbitmq]$ sudo rabbitmqctl add_user rabbitadmin 123456
Creating user "rabbitadmin"

分配用户标签-设置为管理用户

rabbitmqctl set_user_tags rabbitadmin administrator

[yf482@bogon rabbitmq]$ sudo rabbitmqctl set_user_tags rabbitadmin administrator 
Setting tags for user "rabbitadmin" to [administrator] 

创建和赋角色完成后查看并确认存在用户: guest是默认用户 密码为guest
因为缺省的guest/guet 用户只能在本地豋录,所以先用命令行创建一个admin/admin123,并让他成为管理员
rabbitmqctl list_users

[yf482@bogon rabbitmq]$ sudo rabbitmqctl list_users 
Listing users
rabbitadmin [administrator]
guest   [administrator]

删除一个用户:

sh-4.1# rabbitmqctl list_users
Listing users ...
admin    [administrator]
guest    [administrator]
sh-4.1# rabbitmqctl delete_user guest
Deleting user "guest" ...
sh-4.1# rabbitmqctl list_users
Listing users ...
admin    [administrator]

修改用户的密码:

sh-4.1# rabbitmqctl change_password admin admin@test
Changing password for user "admin" ...

查看所有队列消息:

sh-4.1# rabbitmqctl list_queues
Listing queues ...

清除所有队列:

sh-4.1# rabbitmqctl reset

发现问题:刚装的rabbitmq无法用guest豋录

[root@NB ok]# rabbitmqctl add_user admin admin@test
Creating user “admin” …

新增用户,但并没有设置角色的情况下,也不能用网页来管理,只有设置角色后才可以

[root@NB ok]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...

登录rabbitmq管理界面

浏览器输入地址:http://服务器IP地址:15672/ 端口 15672是默认配置,修改在配置文件改。

用户名密码:rabbitadmin/123456

如果主机配有防火墙,要把用到的端口都打开

-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT

web管理

Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。

所有指令列表(很简单的英文):
add_user         
delete_user     
change_password  
list_users
add_vhost    
delete_vhost 
list_vhosts
set_permissions   [-p ]    
clear_permissions [-p ] 
list_permissions  [-p ]
list_user_permissions 
list_queues    [-p ] [ ...]
list_exchanges [-p ] [ ...]
list_bindings  [-p ] 
list_connections [ ...]

1). 服务器启动与关闭

  启动: rabbitmq-server –detached

  关闭:rabbitmqctl stop

  若单机有多个实例,则在rabbitmqctlh后加–n 指定名称

2). 插件管理

  开启某个插件:rabbitmq-pluginsenable xxx

  关闭某个插件:rabbitmq-pluginsdisablexxx

  注意:重启服务器后生效。

3).virtual_host管理

  新建virtual_host: rabbitmqctladd_vhost  xxx

  撤销virtual_host:rabbitmqctl  delete_vhost xxx

4). 用户管理

  新建用户:rabbitmqctl add_user xxxpwd

  删除用户:   rabbitmqctl delete_user xxx

  改密码: rabbimqctlchange_password {username} {newpassword}

  设置用户角色:rabbitmqctlset_user_tags {username} {tag ...}

          Tag可以为 administrator,monitoring, management

5). 权限管理

  权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}

           Vhostpath

           Vhost路径

           user

  用户名

          Conf

  一个正则表达式match哪些配置资源能够被该用户访问。

          Write

  一个正则表达式match哪些配置资源能够被该用户读。

           Read

  一个正则表达式match哪些配置资源能够被该用户访问。

6). 获取服务器状态信息

   服务器状态:rabbitmqctl status

   队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]

            Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,

            messages_unacknowledged,messages,consumers,memory

   Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...]

             Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.

   Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]       

             Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments

   Connection信息:rabbitmqctllist_connections [connectioninfoitem ...]

   Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。

   Channel信息:rabbitmqctl  list_channels[channelinfoitem ...]

  Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked

部分内容参考自:http://blog.csdn.net/mlks_2008/article/details/18988301

rabbitmq配置

一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径:
一个是环境变量的配置文件 rabbitmq-env.conf ;
一个是配置信息的配置文件 rabbitmq.config;
注意,这两个文件默认是没有的,如果需要必须自己创建。
rabbitmq-env.conf
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,常用的有:

#RABBITMQ_NODE_PORT=    //端口号
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE=        //配置文件的路径
RABBITMQ_MNESIA_BASE=/rabbitmq/data        //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log        //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins    //插件的路径
具体的列表见:http://www.rabbitmq.com/configure.html#define-environment-variables

rabbitmq.config
这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置。
文件的内容详见:http://www.rabbitmq.com/configure.html#config-items

你可能感兴趣的:(rabbitmq常见运维命令和问题总结)