RabbitMQ Server Administrator's Guide

http://www.rabbitmq.com/admin-guide.html#installation

1, Rabbitmq DB

第一次启动,会检查是否有数据库,没有则创建 一个db,存放在

C:\Documents and Settings\Administrator\Application Data\RabbitMQ,DB会存储关于user,virtual host,持久化消息等信息

此目录下有两个文件夹:db,log

并会使用到这些资源:

virtual host:/

user:guest/guest

guest会分配所有的权限到virtual host / 上

2, 命令行管理工具rabbitmqctl

Rabbitmqctl是rabbitmq的一个命令行管理工具,它用来对某个机器上(host)的节点(node)进行管理,本机默认的node名称是”rabbit”,hostname可以使用hostname –s查看

执行相关命令时,可明确指定一个节点,例如:

rabbitmqctl –n node_name@host_name add_user username password

这个命令将在指定的机器(host_name)的节点(node_name)上创建一个用户

在启动rabbitmq的时命令行中,可以查看到node名称

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RabbitMQ 1.6.0 (AMQP 8-0)

Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial Technologies LLC., and R

abbit Technologies Ltd.

Licensed under the MPL. See http://www.rabbitmq.com/

node : rabbit@WWW-65592D80C4A //这里就是node_name@host_name

log : C:/Documents and Settings/Administrator/Application Data/RabbitMQ/

log/rabbit.log //日志目录

sasl log : C:/Documents and Settings/Administrator/Application Data/RabbitMQ/

log/rabbit-sasl.log //日志目录

database dir: c:/Documents and Settings/Administrator/Application Data/RabbitMQ/

db/rabbit-mnesia //db目录

starting database ...done

starting core processes ...done

starting recovery ...done

starting persister ...done

starting guid generator ...done

starting builtin applications ...done

starting TCP listeners ...done

broker running

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

3, 查看node状态

rabbitmqctl -q status

输出:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[{running_applications,[{rabbit,"RabbitMQ","1.6.0"},

{mnesia,"MNESIA CXC 138 12","4.4.10"},

{os_mon,"CPO CXC 138 46","2.2.2"},

{sasl,"SASL CXC 138 11","2.1.6"},

{stdlib,"ERTS CXC 138 10","1.16.2"},

{kernel,"ERTS CXC 138 10","2.13.2"}]},

{nodes,['rabbit@WWW-65592D80C4A']},

{running_nodes,['rabbit@WWW-65592D80C4A']}]

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

4, 关闭rabbitmq

rabbitmqctl stop

直接关闭rabbitmq,关闭rabbitmq节点(elr进程也关掉了),需要通过rabbitmq-server 才能重新启动

rabbitmqctl stop_app

关闭rabbitmq应用程序,但是erl进行还在,可以通过rabbitmqctl start_app恢复

rabbitmqctl start_app

启动rabbitmq应用程序

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

E:\rabbitmq_server-1.6.0\sbin>rabbitmqctl stop_app

Stopping node 'rabbit@WWW-65592D80C4A' ...

...done.

E:\rabbitmq_server-1.6.0\sbin>rabbitmqctl stop

Stopping and halting node 'rabbit@WWW-65592D80C4A' ...

...done.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

5, 查看rabbitmq状态

rabbitmqctl status
rabbitmqctl –q status

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Status of node 'rabbit@WWW-65592D80C4A' ...

[{running_applications,[{rabbit,"RabbitMQ","1.6.0"},

{mnesia,"MNESIA CXC 138 12","4.4.10"},

{os_mon,"CPO CXC 138 46","2.2.2"},

{sasl,"SASL CXC 138 11","2.1.6"},

{stdlib,"ERTS CXC 138 10","1.16.2"},

{kernel,"ERTS CXC 138 10","2.13.2"}]},

{nodes,['rabbit@WWW-65592D80C4A']},

{running_nodes,['rabbit@WWW-65592D80C4A']}]

...done.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

6, 重置rabbitmq

rabbitmqctl reset
rabbitmqctl force_reset
使用force_reset与reset不同之外在于:它会无条件的重置rabbitmq,不管rabbitmq database state,和rabbitmq已经在集群环境中配置,这个命令应该在迫不得已的情况去使用
 
重置rabbitmq,会有以下影响:
1,从集群节点中删除
2,删除db数据,如user, vhost信息,持久化消息 
 
重置成功后,必须stop rabbitmq,例如使用:rabbitmqctl stop_app
 

7, 修改日志文件后缀名

rabbitmqctl rotate_logs suffix_name
修改日志文件后缀名,执行以后,可以马上看到log目录下创建了指定后缀的日志文件:

rabbit.log.rabbit.log

rabbit-sasl.log.rabbit.log

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

E:\rabbitmq_server-1.6.0\sbin>rabbitmqctl rotate_logs .rabbit.log

Rotating logs to files with suffix ".rabbit.log" ...

...done.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

8, 集群管理

rabbitmqctl cluster clusternode ...

9, rabbitmqctl 所有命令:

Usage: rabbitmqctl [-q] [-n <node>] <command> [<arg> ...]

Available commands:

stop - stops the RabbitMQ application and halts the node

stop_app - stops the RabbitMQ application, leaving the node running

start_app - starts the RabbitMQ application on an already-running node

reset - resets node to default configuration, deleting all data

force_reset

cluster <ClusterNode> ...

status

rotate_logs [Suffix]

close_connection <ConnectionPid> <ExplanationString>

add_user <UserName> <Password>

delete_user <UserName>

change_password <UserName> <NewPassword>

list_users

add_vhost <VHostPath>

delete_vhost <VHostPath>

list_vhosts

set_permissions [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>

clear_permissions [-p <VHostPath>] <UserName>

list_permissions [-p <VHostPath>]

list_user_permissions <UserName>

list_queues [-p <VHostPath>] [<QueueInfoItem> ...]

list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]

list_bindings [-p <VHostPath>]

list_connections [<ConnectionInfoItem> ...]

list_channels [<ChannelInfoItem> ...]

list_consumers [-p <VHostPath>]

Quiet output mode is selected with the "-q" flag. Informational

messages are suppressed when quiet mode is in effect.

<node> should be the name of the master node of the RabbitMQ

cluster. It defaults to the node named "rabbit" on the local

host. On a host named "server.example.com", the master 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.

The list_queues, list_exchanges and list_bindings commands accept an

optional virtual host parameter for which to display results. The

default value is "/".

<QueueInfoItem> must be a member of the list [name, durable,

auto_delete, arguments, pid, owner_pid, exclusive_consumer_pid,

exclusive_consumer_tag, messages_ready, messages_unacknowledged,

messages_uncommitted, messages, acks_uncommitted, consumers,

transactions, memory]. The default is to display name and (number of)

messages.

<ExchangeInfoItem> must be a member of the list [name, type, durable,

auto_delete, arguments]. The default is to display name and type.

The output format for "list_bindings" is a list of rows containing

exchange name, queue name, routing key and arguments, in that order.

<ConnectionInfoItem> must be a member of the list [pid, address, port,

peer_address, peer_port, state, channels, user, vhost, timeout,

frame_max, client_properties, recv_oct, recv_cnt, send_oct, send_cnt,

send_pend]. The default is to display user, peer_address, peer_port

and state.

<ChannelInfoItem> must be a member of the list [pid, connection,

number, user, vhost, transactional, consumer_count,

messages_unacknowledged, acks_uncommitted, prefetch_count]. The

default is to display pid, user, transactional, consumer_count,

messages_unacknowledged.

The output format for "list_consumers" is a list of rows containing,

in order, the queue name, channel process id, consumer tag, and a

boolean indicating whether acknowledgements are expected from the

consumer.

 

本文摘自:http://sunjun041640.blog.163.com/blog/static/25626832201032681053285/