summaryrefslogtreecommitdiff
path: root/docs/rabbitmqctl.1.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/rabbitmqctl.1.xml')
-rw-r--r--docs/rabbitmqctl.1.xml1854
1 files changed, 0 insertions, 1854 deletions
diff --git a/docs/rabbitmqctl.1.xml b/docs/rabbitmqctl.1.xml
deleted file mode 100644
index 8d04f28a..00000000
--- a/docs/rabbitmqctl.1.xml
+++ /dev/null
@@ -1,1854 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.docbook.org/xml/4.5/docbookx.dtd">
-<!--
- There is some extra magic in this document besides the usual DocBook semantics
- to allow us to derive manpages, HTML and usage messages from the same source
- document.
-
- Examples need to be moved to the end for man pages. To this end, <para>s and
- <screen>s with role="example" will be moved, and with role="example-prefix"
- will be removed.
-
- The usage messages are more involved. We have some magic in usage.xsl to pull
- out the command synopsis, global option and subcommand synopses. We also pull
- out <para>s with role="usage".
-
- Finally we construct lists of possible values for subcommand options, if the
- subcommand's <varlistentry> has role="usage-has-option-list". The option which
- takes the values should be marked with role="usage-option-list".
--->
-
-<refentry lang="en">
- <refentryinfo>
- <productname>RabbitMQ Server</productname>
- <authorgroup>
- <corpauthor>The RabbitMQ Team &lt;<ulink url="mailto:info@rabbitmq.com"><email>info@rabbitmq.com</email></ulink>&gt;</corpauthor>
- </authorgroup>
- </refentryinfo>
-
- <refmeta>
- <refentrytitle>rabbitmqctl</refentrytitle>
- <manvolnum>1</manvolnum>
- <refmiscinfo class="manual">RabbitMQ Service</refmiscinfo>
- </refmeta>
-
- <refnamediv>
- <refname>rabbitmqctl</refname>
- <refpurpose>command line tool for managing a RabbitMQ broker</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>rabbitmqctl</command>
- <arg choice="opt">-n <replaceable>node</replaceable></arg>
- <arg choice="opt">-q</arg>
- <arg choice="req"><replaceable>command</replaceable></arg>
- <arg choice="opt" rep="repeat"><replaceable>command options</replaceable></arg>
- </cmdsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
- <para>
- RabbitMQ is an implementation of AMQP, the emerging standard for high
- performance enterprise messaging. The RabbitMQ server is a robust and
- scalable implementation of an AMQP broker.
- </para>
- <para>
- <command>rabbitmqctl</command> is a command line tool for managing a
- RabbitMQ broker. It performs all actions by connecting to one of the
- broker's nodes.
- </para>
- <para>
- Diagnostic information is displayed if the broker was not
- running, could not be reached, or rejected the connection due to
- mismatching Erlang cookies.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Options</title>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><arg choice="opt">-n <replaceable>node</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para role="usage">
- Default node is "rabbit@server", where server is the local host. On
- a host named "server.example.com", the node name of the RabbitMQ
- Erlang node will usually be rabbit@server (unless RABBITMQ_NODENAME
- has been set to some non-default value at broker startup time). The
- output of <command>hostname -s</command> is usually the correct suffix to use after the
- "@" sign. See rabbitmq-server(1) for details of configuring the
- RabbitMQ broker.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><arg choice="opt">-q</arg></cmdsynopsis></term>
- <listitem>
- <para role="usage">
- Quiet output mode is selected with the "-q" flag. Informational
- messages are suppressed when quiet mode is in effect.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Commands</title>
-
- <refsect2>
- <title>Application and Cluster Management</title>
-
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><command>stop</command> <arg choice="opt"><replaceable>pid_file</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Stops the Erlang node on which RabbitMQ is running. To
- restart the node follow the instructions for <citetitle>Running
- the Server</citetitle> in the <ulink url="http://www.rabbitmq.com/install.html">installation
- guide</ulink>.
- </para>
- <para>
- If a <option>pid_file</option> is specified, also waits
- for the process specified there to terminate. See the
- description of the <option>wait</option> command below
- for details on this file.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl stop</screen>
- <para role="example">
- This command instructs the RabbitMQ node to terminate.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="stop_app">
- <term><cmdsynopsis><command>stop_app</command></cmdsynopsis></term>
- <listitem>
- <para>
- Stops the RabbitMQ application, leaving the Erlang node
- running.
- </para>
- <para>
- This command is typically run prior to performing other
- management actions that require the RabbitMQ application
- to be stopped, e.g. <link
- linkend="reset"><command>reset</command></link>.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl stop_app</screen>
- <para role="example">
- This command instructs the RabbitMQ node to stop the
- RabbitMQ application.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>start_app</command></cmdsynopsis></term>
- <listitem>
- <para>
- Starts the RabbitMQ application.
- </para>
- <para>
- This command is typically run after performing other
- management actions that required the RabbitMQ application
- to be stopped, e.g. <link
- linkend="reset"><command>reset</command></link>.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl start_app</screen>
- <para role="example">
- This command instructs the RabbitMQ node to start the
- RabbitMQ application.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>wait</command> <arg choice="req"><replaceable>pid_file</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Wait for the RabbitMQ application to start.
- </para>
- <para>
- This command will wait for the RabbitMQ application to
- start at the node. It will wait for the pid file to
- be created, then for a process with a pid specified in the
- pid file to start, and then for the RabbitMQ application
- to start in that process. It will fail if the process
- terminates without starting the RabbitMQ application.
- </para>
- <para>
- A suitable pid file is created by
- the <command>rabbitmq-server</command> script. By
- default this is located in the Mnesia directory. Modify
- the <command>RABBITMQ_PID_FILE</command> environment
- variable to change the location.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl wait /var/run/rabbitmq/pid</screen>
- <para role="example">
- This command will return when the RabbitMQ node has
- started up.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="reset">
- <term><cmdsynopsis><command>reset</command></cmdsynopsis></term>
- <listitem>
- <para>
- Return a RabbitMQ node to its virgin state.
- </para>
- <para>
- Removes the node from any cluster it belongs to, removes
- all data from the management database, such as configured
- users and vhosts, and deletes all persistent
- messages.
- </para>
- <para>
- For <command>reset</command> and <command>force_reset</command> to
- succeed the RabbitMQ application must have been stopped,
- e.g. with <link linkend="stop_app"><command>stop_app</command></link>.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl reset</screen>
- <para role="example">
- This command resets the RabbitMQ node.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>force_reset</command></cmdsynopsis></term>
- <listitem>
- <para>
- Forcefully return a RabbitMQ node to its virgin state.
- </para>
- <para>
- The <command>force_reset</command> command differs from
- <command>reset</command> in that it resets the node
- unconditionally, regardless of the current management
- database state and cluster configuration. It should only
- be used as a last resort if the database or cluster
- configuration has been corrupted.
- </para>
- <para>
- For <command>reset</command> and <command>force_reset</command> to
- succeed the RabbitMQ application must have been stopped,
- e.g. with <link linkend="stop_app"><command>stop_app</command></link>.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl force_reset</screen>
- <para role="example">
- This command resets the RabbitMQ node.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>rotate_logs</command> <arg choice="req"><replaceable>suffix</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Instruct the RabbitMQ node to rotate the log files.
- </para>
- <para>
- The RabbitMQ broker appends the contents of its log
- files to files with names composed of the original name
- and the suffix, and then resumes logging to freshly
- created files at the original location. I.e. effectively
- the current log contents are moved to the end of the
- suffixed files.
- </para>
- <para>
- When the target files do not exist they are created.
- When no <option>suffix</option> is specified, the empty
- log files are simply created at the original location;
- no rotation takes place.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl rotate_logs .1</screen>
- <para role="example">
- This command instructs the RabbitMQ node to append the contents
- of the log files to files with names consisting of the original logs'
- names and ".1" suffix, e.g. rabbit@mymachine.log.1 and
- rabbit@mymachine-sasl.log.1. Finally, logging resumes to
- fresh files at the old locations.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>Cluster management</title>
-
- <variablelist>
- <varlistentry id="join_cluster">
- <term><cmdsynopsis><command>join_cluster</command> <arg choice="req"><replaceable>clusternode</replaceable></arg> <arg choice="opt">--ram</arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>clusternode</term>
- <listitem><para>Node to cluster with.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><arg choice="opt">--ram</arg></cmdsynopsis></term>
- <listitem>
- <para>
- If provided, the node will join the cluster as a RAM node.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- Instruct the node to become a member of the cluster that the
- specified node is in. Before clustering, the node is reset, so be
- careful when using this command. For this command to succeed the
- RabbitMQ application must have been stopped, e.g. with <link
- linkend="stop_app"><command>stop_app</command></link>.
- </para>
- <para>
- Cluster nodes can be of two types: disc or RAM. Disc nodes
- replicate data in RAM and on disc, thus providing redundancy in
- the event of node failure and recovery from global events such
- as power failure across all nodes. RAM nodes replicate data in
- RAM only (with the exception of queue contents, which can reside
- on disc if the queue is persistent or too big to fit in memory)
- and are mainly used for scalability. RAM nodes are more
- performant only when managing resources (e.g. adding/removing
- queues, exchanges, or bindings). A cluster must always have at
- least one disc node, and usually should have more than one.
- </para>
- <para>
- The node will be a disc node by default. If you wish to
- create a RAM node, provide the <command>--ram</command> flag.
- </para>
- <para>
- After executing the <command>cluster</command> command, whenever
- the RabbitMQ application is started on the current node it will
- attempt to connect to the nodes that were in the cluster when the
- node went down.
- </para>
- <para>
- To leave a cluster, <command>reset</command> the node. You can
- also remove nodes remotely with the
- <command>forget_cluster_node</command> command.
- </para>
- <para>
- For more details see the <ulink
- url="http://www.rabbitmq.com/clustering.html">clustering
- guide</ulink>.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl join_cluster hare@elena --ram</screen>
- <para role="example">
- This command instructs the RabbitMQ node to join the cluster that
- <command>hare@elena</command> is part of, as a ram node.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>cluster_status</command></cmdsynopsis></term>
- <listitem>
- <para>
- Displays all the nodes in the cluster grouped by node type,
- together with the currently running nodes.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl cluster_status</screen>
- <para role="example">
- This command displays the nodes in the cluster.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>change_cluster_node_type</command> <arg choice="req">disc | ram</arg></cmdsynopsis>
- </term>
- <listitem>
- <para>
- Changes the type of the cluster node. The node must be stopped for
- this operation to succeed, and when turning a node into a RAM node
- the node must not be the only disc node in the cluster.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl change_cluster_node_type disc</screen>
- <para role="example">
- This command will turn a RAM node into a disc node.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>forget_cluster_node</command> <arg choice="opt">--offline</arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><arg choice="opt">--offline</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Enables node removal from an offline node. This is only
- useful in the situation where all the nodes are offline and
- the last node to go down cannot be brought online, thus
- preventing the whole cluster from starting. It should not be
- used in any other circumstances since it can lead to
- inconsistencies.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- Removes a cluster node remotely. The node that is being removed
- must be offline, while the node we are removing from must be
- online, except when using the <command>--offline</command> flag.
- </para>
- <para>
- When using the <command>--offline</command> flag
- rabbitmqctl will not attempt to connect to a node as
- normal; instead it will temporarily become the node in
- order to make the change. This is useful if the node
- cannot be started normally. In this case the node will
- become the canonical source for cluster metadata
- (e.g. which queues exist), even if it was not
- before. Therefore you should use this command on the
- latest node to shut down if at all possible.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl -n hare@mcnulty forget_cluster_node rabbit@stringer</screen>
- <para role="example">
- This command will remove the node
- <command>rabbit@stringer</command> from the node
- <command>hare@mcnulty</command>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>update_cluster_nodes</command> <arg choice="req">clusternode</arg></cmdsynopsis>
- </term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>clusternode</term>
- <listitem>
- <para>
- The node to consult for up to date information.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- Instructs an already clustered node to contact
- <command>clusternode</command> to cluster when waking up. This is
- different from <command>join_cluster</command> since it does not
- join any cluster - it checks that the node is already in a cluster
- with <command>clusternode</command>.
- </para>
- <para>
- The need for this command is motivated by the fact that clusters
- can change while a node is offline. Consider the situation in
- which node A and B are clustered. A goes down, C clusters with B,
- and then B leaves the cluster. When A wakes up, it'll try to
- contact B, but this will fail since B is not in the cluster
- anymore. <command>update_cluster_nodes -n A C</command> will solve
- this situation.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>force_boot</command></cmdsynopsis></term>
- <listitem>
- <para>
- Ensure that the node will start next time, even if it
- was not the last to shut down.
- </para>
- <para>
- Normally when you shut down a RabbitMQ cluster
- altogether, the first node you restart should be the
- last one to go down, since it may have seen things
- happen that other nodes did not. But sometimes
- that's not possible: for instance if the entire cluster
- loses power then all nodes may think they were not the
- last to shut down.
- </para>
- <para>
- In such a case you can invoke <command>rabbitmqctl
- force_boot</command> while the node is down. This will
- tell the node to unconditionally start next time you ask
- it to. If any changes happened to the cluster after this
- node shut down, they will be lost.
- </para>
- <para>
- If the last node to go down is permanently lost then you
- should use <command>rabbitmqctl forget_cluster_node
- --offline</command> in preference to this command, as it
- will ensure that mirrored queues which were mastered on
- the lost node get promoted.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl force_boot</screen>
- <para role="example">
- This will force the node not to wait for other nodes
- next time it is started.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>sync_queue</command> <arg choice="req">queue</arg></cmdsynopsis>
- </term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>queue</term>
- <listitem>
- <para>
- The name of the queue to synchronise.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- Instructs a mirrored queue with unsynchronised slaves to
- synchronise itself. The queue will block while
- synchronisation takes place (all publishers to and
- consumers from the queue will block). The queue must be
- mirrored for this command to succeed.
- </para>
- <para>
- Note that unsynchronised queues from which messages are
- being drained will become synchronised eventually. This
- command is primarily useful for queues which are not
- being drained.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>cancel_sync_queue</command> <arg choice="req">queue</arg></cmdsynopsis>
- </term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>queue</term>
- <listitem>
- <para>
- The name of the queue to cancel synchronisation for.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- Instructs a synchronising mirrored queue to stop
- synchronising itself.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>set_cluster_name</command> <arg choice="req">name</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Sets the cluster name. The cluster name is announced to
- clients on connection, and used by the federation and
- shovel plugins to record where a message has been. The
- cluster name is by default derived from the hostname of
- the first node in the cluster, but can be changed.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl set_cluster_name london</screen>
- <para role="example">
- This sets the cluster name to "london".
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>User management</title>
- <para>
- Note that <command>rabbitmqctl</command> manages the RabbitMQ
- internal user database. Users from any alternative
- authentication backend will not be visible
- to <command>rabbitmqctl</command>.
- </para>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><command>add_user</command> <arg choice="req"><replaceable>username</replaceable></arg> <arg choice="req"><replaceable>password</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user to create.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>password</term>
- <listitem><para>The password the created user will use to log in to the broker.</para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl add_user tonyg changeit</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to create a
- (non-administrative) user named <command>tonyg</command> with
- (initial) password
- <command>changeit</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>delete_user</command> <arg choice="req"><replaceable>username</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user to delete.</para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl delete_user tonyg</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to delete the
- user named <command>tonyg</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>change_password</command> <arg choice="req"><replaceable>username</replaceable></arg> <arg choice="req"><replaceable>newpassword</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user whose password is to be changed.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>newpassword</term>
- <listitem><para>The new password for the user.</para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl change_password tonyg newpass</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to change the
- password for the user named <command>tonyg</command> to
- <command>newpass</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>clear_password</command> <arg choice="req"><replaceable>username</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user whose password is to be cleared.</para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl clear_password tonyg</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to clear the
- password for the user named
- <command>tonyg</command>. This user now cannot log in with a password (but may be able to through e.g. SASL EXTERNAL if configured).
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>set_user_tags</command> <arg choice="req"><replaceable>username</replaceable></arg> <arg choice="req"><replaceable>tag</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user whose tags are to
- be set.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>tag</term>
- <listitem><para>Zero, one or more tags to set. Any
- existing tags will be removed.</para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl set_user_tags tonyg administrator</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to ensure the user
- named <command>tonyg</command> is an administrator. This has no
- effect when the user logs in via AMQP, but can be used to permit
- the user to manage users, virtual hosts and permissions when the
- user logs in via some other means (for example with the
- management plugin).
- </para>
- <screen role="example">rabbitmqctl set_user_tags tonyg</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to remove any
- tags from the user named <command>tonyg</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>list_users</command></cmdsynopsis></term>
- <listitem>
- <para>
- Lists users. Each result row will contain the user name
- followed by a list of the tags set for that user.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl list_users</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to list all
- users.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>Access control</title>
- <para>
- Note that <command>rabbitmqctl</command> manages the RabbitMQ
- internal user database. Permissions for users from any
- alternative authorisation backend will not be visible
- to <command>rabbitmqctl</command>.
- </para>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><command>add_vhost</command> <arg choice="req"><replaceable>vhostpath</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhostpath</term>
- <listitem><para>The name of the virtual host entry to create.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Creates a virtual host.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl add_vhost test</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to create a new
- virtual host called <command>test</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>delete_vhost</command> <arg choice="req"><replaceable>vhostpath</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhostpath</term>
- <listitem><para>The name of the virtual host entry to delete.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Deletes a virtual host.
- </para>
- <para>
- Deleting a virtual host deletes all its exchanges,
- queues, bindings, user permissions, parameters and policies.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl delete_vhost test</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to delete the
- virtual host called <command>test</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry role="usage-has-option-list">
- <term><cmdsynopsis><command>list_vhosts</command> <arg choice="opt" role="usage-option-list"><replaceable>vhostinfoitem</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Lists virtual hosts.
- </para>
- <para>
- The <command>vhostinfoitem</command> parameter is used to indicate which
- virtual host information items to include in the results. The column order in the
- results will match the order of the parameters.
- <command>vhostinfoitem</command> can take any value from
- the list that follows:
- </para>
- <variablelist>
- <varlistentry>
- <term>name</term>
- <listitem><para>The name of the virtual host with non-ASCII characters escaped as in C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>tracing</term>
- <listitem><para>Whether tracing is enabled for this virtual host.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- If no <command>vhostinfoitem</command>s are specified
- then the vhost name is displayed.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl list_vhosts name tracing</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to list all
- virtual hosts.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>set_permissions</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="req"><replaceable>user</replaceable></arg> <arg choice="req"><replaceable>conf</replaceable></arg> <arg choice="req"><replaceable>write</replaceable></arg> <arg choice="req"><replaceable>read</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhostpath</term>
- <listitem><para>The name of the virtual host to which to grant the user access, defaulting to <command>/</command>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>user</term>
- <listitem><para>The name of the user to grant access to the specified virtual host.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>conf</term>
- <listitem><para>A regular expression matching resource names for which the user is granted configure permissions.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>write</term>
- <listitem><para>A regular expression matching resource names for which the user is granted write permissions.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>read</term>
- <listitem><para>A regular expression matching resource names for which the user is granted read permissions.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Sets user permissions.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to grant the
- user named <command>tonyg</command> access to the virtual host
- called <command>/myvhost</command>, with configure permissions
- on all resources whose names starts with "tonyg-", and
- write and read permissions on all resources.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>clear_permissions</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="req"><replaceable>username</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhostpath</term>
- <listitem><para>The name of the virtual host to which to deny the user access, defaulting to <command>/</command>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user to deny access to the specified virtual host.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Sets user permissions.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl clear_permissions -p /myvhost tonyg</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to deny the
- user named <command>tonyg</command> access to the virtual host
- called <command>/myvhost</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>list_permissions</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhostpath</term>
- <listitem><para>The name of the virtual host for which to list the users that have been granted access to it, and their permissions. Defaults to <command>/</command>.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Lists permissions in a virtual host.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl list_permissions -p /myvhost</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to list all
- the users which have been granted access to the virtual
- host called <command>/myvhost</command>, and the
- permissions they have for operations on resources in
- that virtual host. Note that an empty string means no
- permissions granted.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>list_user_permissions</command> <arg choice="req"><replaceable>username</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>username</term>
- <listitem><para>The name of the user for which to list the permissions.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Lists user permissions.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl list_user_permissions tonyg</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to list all the
- virtual hosts to which the user named <command>tonyg</command>
- has been granted access, and the permissions the user has
- for operations on resources in these virtual hosts.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>Parameter Management</title>
- <para>
- Certain features of RabbitMQ (such as the federation plugin)
- are controlled by dynamic,
- cluster-wide <emphasis>parameters</emphasis>. Each parameter
- consists of a component name, a name and a value, and is
- associated with a virtual host. The component name and name are
- strings, and the value is an Erlang term. Parameters can be
- set, cleared and listed. In general you should refer to the
- documentation for the feature in question to see how to set
- parameters.
- </para>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><command>set_parameter</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="req"><replaceable>component_name</replaceable></arg> <arg choice="req"><replaceable>name</replaceable></arg> <arg choice="req"><replaceable>value</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Sets a parameter.
- </para>
- <variablelist>
- <varlistentry>
- <term>component_name</term>
- <listitem><para>
- The name of the component for which the
- parameter is being set.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>name</term>
- <listitem><para>
- The name of the parameter being set.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>value</term>
- <listitem><para>
- The value for the parameter, as a
- JSON term. In most shells you are very likely to
- need to quote this.
- </para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl set_parameter federation local_username '"guest"'</screen>
- <para role="example">
- This command sets the parameter <command>local_username</command> for the <command>federation</command> component in the default virtual host to the JSON term <command>"guest"</command>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>clear_parameter</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="req"><replaceable>component_name</replaceable></arg> <arg choice="req"><replaceable>key</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Clears a parameter.
- </para>
- <variablelist>
- <varlistentry>
- <term>component_name</term>
- <listitem><para>
- The name of the component for which the
- parameter is being cleared.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>name</term>
- <listitem><para>
- The name of the parameter being cleared.
- </para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl clear_parameter federation local_username</screen>
- <para role="example">
- This command clears the parameter <command>local_username</command> for the <command>federation</command> component in the default virtual host.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>list_parameters</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Lists all parameters for a virtual host.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl list_parameters</screen>
- <para role="example">
- This command lists all parameters in the default virtual host.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>Policy Management</title>
- <para>
- Policies are used to control and modify the behaviour of queues
- and exchanges on a cluster-wide basis. Policies apply within a
- given vhost, and consist of a name, pattern, definition and an
- optional priority. Policies can be set, cleared and listed.
- </para>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><command>set_policy</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="opt">--priority <replaceable>priority</replaceable></arg> <arg choice="opt">--apply-to <replaceable>apply-to</replaceable></arg> <arg choice="req"><replaceable>name</replaceable></arg> <arg choice="req"><replaceable>pattern</replaceable></arg> <arg choice="req"><replaceable>definition</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Sets a policy.
- </para>
- <variablelist>
- <varlistentry>
- <term>name</term>
- <listitem><para>
- The name of the policy.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>pattern</term>
- <listitem><para>
- The regular expression, which when matches on a given resources causes the policy to apply.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>definition</term>
- <listitem><para>
- The definition of the policy, as a
- JSON term. In most shells you are very likely to
- need to quote this.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>priority</term>
- <listitem><para>
- The priority of the policy as an integer. Higher numbers indicate greater precedence. The default is 0.
- </para></listitem>
- </varlistentry>
- <varlistentry>
- <term>apply-to</term>
- <listitem><para>
- Which types of object this policy should apply to - "queues", "exchanges" or "all". The default is "all".
- </para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl set_policy federate-me "^amq." '{"federation-upstream-set":"all"}'</screen>
- <para role="example">
- This command sets the policy <command>federate-me</command> in the default virtual host so that built-in exchanges are federated.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>clear_policy</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="req"><replaceable>name</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Clears a policy.
- </para>
- <variablelist>
- <varlistentry>
- <term>name</term>
- <listitem><para>
- The name of the policy being cleared.
- </para></listitem>
- </varlistentry>
- </variablelist>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl clear_policy federate-me</screen>
- <para role="example">
- This command clears the <command>federate-me</command> policy in the default virtual host.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>list_policies</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Lists all policies for a virtual host.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl list_policies</screen>
- <para role="example">
- This command lists all policies in the default virtual host.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>Server Status</title>
- <para>
- The server status queries interrogate the server and return a list of
- results with tab-delimited columns. Some queries (<command>list_queues</command>,
- <command>list_exchanges</command>, <command>list_bindings</command>, and
- <command>list_consumers</command>) accept an
- optional <command>vhost</command> parameter. This parameter, if present, must be
- specified immediately after the query.
- </para>
- <para role="usage">
- The list_queues, list_exchanges and list_bindings commands accept an
- optional virtual host parameter for which to display results. The
- default value is "/".
- </para>
-
- <variablelist>
- <varlistentry role="usage-has-option-list">
- <term><cmdsynopsis><command>list_queues</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="opt" role="usage-option-list"><replaceable>queueinfoitem</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Returns queue details. Queue details of the <command>/</command> virtual host
- are returned if the "-p" flag is absent. The "-p" flag can be used to
- override this default.
- </para>
- <para>
- The <command>queueinfoitem</command> parameter is used to indicate which queue
- information items to include in the results. The column order in the
- results will match the order of the parameters.
- <command>queueinfoitem</command> can take any value from the list
- that follows:
- </para>
- <variablelist>
- <varlistentry>
- <term>name</term>
- <listitem><para>The name of the queue with non-ASCII characters escaped as in C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>durable</term>
- <listitem><para>Whether or not the queue survives server restarts.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>auto_delete</term>
- <listitem><para>Whether the queue will be deleted automatically when no longer used.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>arguments</term>
- <listitem><para>Queue arguments.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>policy</term>
- <listitem><para>Policy name applying to the queue.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>pid</term>
- <listitem><para>Id of the Erlang process associated with the queue.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>owner_pid</term>
- <listitem><para>Id of the Erlang process representing the connection
- which is the exclusive owner of the queue. Empty if the
- queue is non-exclusive.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>exclusive_consumer_pid</term>
- <listitem><para>Id of the Erlang process representing the channel of the
- exclusive consumer subscribed to this queue. Empty if
- there is no exclusive consumer.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>exclusive_consumer_tag</term>
- <listitem><para>Consumer tag of the exclusive consumer subscribed to
- this queue. Empty if there is no exclusive consumer.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_ready</term>
- <listitem><para>Number of messages ready to be delivered to clients.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_unacknowledged</term>
- <listitem><para>Number of messages delivered to clients but not yet acknowledged.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages</term>
- <listitem><para>Sum of ready and unacknowledged messages
- (queue depth).</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_ready_ram</term>
- <listitem><para>Number of messages from messages_ready which are resident in ram.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_unacknowledged_ram</term>
- <listitem><para>Number of messages from messages_unacknowledged which are resident in ram.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_ram</term>
- <listitem><para>Total number of messages which are resident in ram.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_persistent</term>
- <listitem><para>Total number of persistent messages in the queue (will always be 0 for transient queues).</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>message_bytes</term>
- <listitem><para>Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>message_bytes_ready</term>
- <listitem><para>Like <command>message_bytes</command> but counting only those messages ready to be delivered to clients.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>message_bytes_unacknowledged</term>
- <listitem><para>Like <command>message_bytes</command> but counting only those messages delivered to clients but not yet acknowledged.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>message_bytes_ram</term>
- <listitem><para>Like <command>message_bytes</command> but counting only those messages which are in RAM.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>message_bytes_persistent</term>
- <listitem><para>Like <command>message_bytes</command> but counting only those messages which are persistent.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>consumers</term>
- <listitem><para>Number of consumers.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>consumer_utilisation</term>
- <listitem><para>Fraction of the time (between 0.0 and 1.0)
- that the queue is able to immediately deliver messages to
- consumers. This can be less than 1.0 if consumers are limited
- by network congestion or prefetch count.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>memory</term>
- <listitem><para>Bytes of memory consumed by the Erlang process associated with the
- queue, including stack, heap and internal structures.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>slave_pids</term>
- <listitem><para>If the queue is mirrored, this gives the IDs of the current slaves.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>synchronised_slave_pids</term>
- <listitem><para>If the queue is mirrored, this gives the IDs of
- the current slaves which are synchronised with the master -
- i.e. those which could take over from the master without
- message loss.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>state</term>
- <listitem><para>The state of the queue. Normally
- 'running', but may be "{syncing, MsgCount}" if the
- queue is synchronising. Queues which are located on
- cluster nodes that are currently down will be shown
- with a status of 'down' (and most other
- <command>queueinfoitem</command>s will be
- unavailable).</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- If no <command>queueinfoitem</command>s are specified then queue name and depth are
- displayed.
- </para>
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl list_queues -p /myvhost messages consumers</screen>
- <para role="example">
- This command displays the depth and number of consumers for each
- queue of the virtual host named <command>/myvhost</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry role="usage-has-option-list">
- <term><cmdsynopsis><command>list_exchanges</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="opt" role="usage-option-list"><replaceable>exchangeinfoitem</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Returns exchange details. Exchange details of the <command>/</command> virtual host
- are returned if the "-p" flag is absent. The "-p" flag can be used to
- override this default.
- </para>
- <para>
- The <command>exchangeinfoitem</command> parameter is used to indicate which
- exchange information items to include in the results. The column order in the
- results will match the order of the parameters.
- <command>exchangeinfoitem</command> can take any value from the list
- that follows:
- </para>
- <variablelist>
- <varlistentry>
- <term>name</term>
- <listitem><para>The name of the exchange with non-ASCII characters escaped as in C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>type</term>
- <listitem><para>The exchange type (such as
- [<command>direct</command>,
- <command>topic</command>, <command>headers</command>,
- <command>fanout</command>]).</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>durable</term>
- <listitem><para>Whether or not the exchange survives server restarts.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>auto_delete</term>
- <listitem><para>Whether the exchange will be deleted automatically when no longer used.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>internal</term>
- <listitem><para>Whether the exchange is internal, i.e. cannot be directly published to by a client.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>arguments</term>
- <listitem><para>Exchange arguments.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>policy</term>
- <listitem><para>Policy name for applying to the exchange.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- If no <command>exchangeinfoitem</command>s are specified then
- exchange name and type are displayed.
- </para>
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl list_exchanges -p /myvhost name type</screen>
- <para role="example">
- This command displays the name and type for each
- exchange of the virtual host named <command>/myvhost</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry role="usage-has-option-list">
- <term><cmdsynopsis><command>list_bindings</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg> <arg choice="opt" role="usage-option-list"><replaceable>bindinginfoitem</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Returns binding details. By default the bindings for
- the <command>/</command> virtual host are returned. The
- "-p" flag can be used to override this default.
- </para>
- <para>
- The <command>bindinginfoitem</command> parameter is used
- to indicate which binding information items to include
- in the results. The column order in the results will
- match the order of the parameters.
- <command>bindinginfoitem</command> can take any value
- from the list that follows:
- </para>
- <variablelist>
- <varlistentry>
- <term>source_name</term>
- <listitem><para>The name of the source of messages to
- which the binding is attached. With non-ASCII
- characters escaped as in C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>source_kind</term>
- <listitem><para>The kind of the source of messages to
- which the binding is attached. Currently always
- exchange. With non-ASCII characters escaped as in
- C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>destination_name</term>
- <listitem><para>The name of the destination of
- messages to which the binding is attached. With
- non-ASCII characters escaped as in
- C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>destination_kind</term>
- <listitem><para>The kind of the destination of
- messages to which the binding is attached. With
- non-ASCII characters escaped as in
- C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>routing_key</term>
- <listitem><para>The binding's routing key, with
- non-ASCII characters escaped as in C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>arguments</term>
- <listitem><para>The binding's arguments.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- If no <command>bindinginfoitem</command>s are specified then
- all above items are displayed.
- </para>
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl list_bindings -p /myvhost exchange_name queue_name</screen>
- <para role="example">
- This command displays the exchange name and queue name
- of the bindings in the virtual host
- named <command>/myvhost</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="list_connections" role="usage-has-option-list">
- <term><cmdsynopsis><command>list_connections</command> <arg choice="opt" role="usage-option-list"><replaceable>connectioninfoitem</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Returns TCP/IP connection statistics.
- </para>
- <para>
- The <command>connectioninfoitem</command> parameter is used to indicate
- which connection information items to include in the results. The
- column order in the results will match the order of the parameters.
- <command>connectioninfoitem</command> can take any value from the list
- that follows:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>pid</term>
- <listitem><para>Id of the Erlang process associated with the connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>name</term>
- <listitem><para>Readable name for the connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>port</term>
- <listitem><para>Server port.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>host</term>
- <listitem><para>Server hostname obtained via reverse
- DNS, or its IP address if reverse DNS failed or was
- not enabled.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>peer_port</term>
- <listitem><para>Peer port.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>peer_host</term>
- <listitem><para>Peer hostname obtained via reverse
- DNS, or its IP address if reverse DNS failed or was
- not enabled.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>ssl</term>
- <listitem><para>Boolean indicating whether the
- connection is secured with SSL.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>ssl_protocol</term>
- <listitem><para>SSL protocol
- (e.g. tlsv1)</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>ssl_key_exchange</term>
- <listitem><para>SSL key exchange algorithm
- (e.g. rsa)</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>ssl_cipher</term>
- <listitem><para>SSL cipher algorithm
- (e.g. aes_256_cbc)</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>ssl_hash</term>
- <listitem><para>SSL hash function
- (e.g. sha)</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>peer_cert_subject</term>
- <listitem><para>The subject of the peer's SSL
- certificate, in RFC4514 form.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>peer_cert_issuer</term>
- <listitem><para>The issuer of the peer's SSL
- certificate, in RFC4514 form.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>peer_cert_validity</term>
- <listitem><para>The period for which the peer's SSL
- certificate is valid.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term>state</term>
- <listitem><para>Connection state (one of [<command>starting</command>, <command>tuning</command>,
- <command>opening</command>, <command>running</command>, <command>flow</command>, <command>blocking</command>, <command>blocked</command>, <command>closing</command>, <command>closed</command>]).</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>channels</term>
- <listitem><para>Number of channels using the connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>protocol</term>
- <listitem><para>Version of the AMQP protocol in use (currently one of <command>{0,9,1}</command> or <command>{0,8,0}</command>). Note that if a client requests an AMQP 0-9 connection, we treat it as AMQP 0-9-1.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>auth_mechanism</term>
- <listitem><para>SASL authentication mechanism used, such as <command>PLAIN</command>.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>user</term>
- <listitem><para>Username associated with the connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>vhost</term>
- <listitem><para>Virtual host name with non-ASCII characters escaped as in C.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>timeout</term>
- <listitem><para>Connection timeout / negotiated heartbeat interval, in seconds.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>frame_max</term>
- <listitem><para>Maximum frame size (bytes).</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>channel_max</term>
- <listitem><para>Maximum number of channels on this connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>client_properties</term>
- <listitem><para>Informational properties transmitted by the client
- during connection establishment.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>recv_oct</term>
- <listitem><para>Octets received.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>recv_cnt</term>
- <listitem><para>Packets received.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>send_oct</term>
- <listitem><para>Octets send.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>send_cnt</term>
- <listitem><para>Packets sent.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>send_pend</term>
- <listitem><para>Send queue size.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>connected_at</term>
- <listitem><para>Date and time this connection was established, as timestamp.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- If no <command>connectioninfoitem</command>s are
- specified then user, peer host, peer port, time since
- flow control and memory block state are displayed.
- </para>
-
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl list_connections send_pend port</screen>
- <para role="example">
- This command displays the send queue size and server port for each
- connection.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry role="usage-has-option-list">
- <term><cmdsynopsis><command>list_channels</command> <arg choice="opt" role="usage-option-list"><replaceable>channelinfoitem</replaceable> ...</arg></cmdsynopsis></term>
- <listitem>
- <para>
- Returns information on all current channels, the logical
- containers executing most AMQP commands. This includes
- channels that are part of ordinary AMQP connections, and
- channels created by various plug-ins and other extensions.
- </para>
- <para>
- The <command>channelinfoitem</command> parameter is used to
- indicate which channel information items to include in the
- results. The column order in the results will match the
- order of the parameters.
- <command>channelinfoitem</command> can take any value from the list
- that follows:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>pid</term>
- <listitem><para>Id of the Erlang process associated with the connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>connection</term>
- <listitem><para>Id of the Erlang process associated with the connection
- to which the channel belongs.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>name</term>
- <listitem><para>Readable name for the channel.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>number</term>
- <listitem><para>The number of the channel, which uniquely identifies it within
- a connection.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>user</term>
- <listitem><para>Username associated with the channel.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>vhost</term>
- <listitem><para>Virtual host in which the channel operates.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>transactional</term>
- <listitem><para>True if the channel is in transactional mode, false otherwise.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>confirm</term>
- <listitem><para>True if the channel is in confirm mode, false otherwise.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>consumer_count</term>
- <listitem><para>Number of logical AMQP consumers retrieving messages via
- the channel.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_unacknowledged</term>
- <listitem><para>Number of messages delivered via this channel but not
- yet acknowledged.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_uncommitted</term>
- <listitem><para>Number of messages received in an as yet
- uncommitted transaction.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>acks_uncommitted</term>
- <listitem><para>Number of acknowledgements received in an as yet
- uncommitted transaction.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>messages_unconfirmed</term>
- <listitem><para>Number of published messages not yet
- confirmed. On channels not in confirm mode, this
- remains 0.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>prefetch_count</term>
- <listitem><para>QoS prefetch limit for new consumers, 0 if unlimited.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>global_prefetch_count</term>
- <listitem><para>QoS prefetch limit for the entire channel, 0 if unlimited.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- If no <command>channelinfoitem</command>s are specified then pid,
- user, consumer_count, and messages_unacknowledged are assumed.
- </para>
-
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl list_channels connection messages_unacknowledged</screen>
- <para role="example">
- This command displays the connection process and count
- of unacknowledged messages for each channel.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>list_consumers</command> <arg choice="opt">-p <replaceable>vhostpath</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- List consumers, i.e. subscriptions to a queue's message
- stream. Each line printed shows, separated by tab
- characters, the name of the queue subscribed to, the id of
- the channel process via which the subscription was created
- and is managed, the consumer tag which uniquely identifies
- the subscription within a channel, a boolean
- indicating whether acknowledgements are expected for
- messages delivered to this consumer, an integer indicating
- the prefetch limit (with 0 meaning 'none'), and any arguments
- for this consumer.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>status</command></cmdsynopsis></term>
- <listitem>
- <para>
- Displays broker status information such as the running
- applications on the current Erlang node, RabbitMQ and
- Erlang versions, OS name, memory and file descriptor
- statistics. (See the <command>cluster_status</command>
- command to find out which nodes are clustered and
- running.)
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl status</screen>
- <para role="example">
- This command displays information about the RabbitMQ
- broker.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>environment</command></cmdsynopsis></term>
- <listitem>
- <para>
- Display the name and value of each variable in the
- application environment for each running application.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>report</command></cmdsynopsis></term>
- <listitem>
- <para>
- Generate a server status report containing a
- concatenation of all server status information for
- support purposes. The output should be redirected to a
- file when accompanying a support request.
- </para>
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl report > server_report.txt</screen>
- <para role="example">
- This command creates a server report which may be
- attached to a support request email.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>eval</command> <arg choice="req"><replaceable>expr</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <para>
- Evaluate an arbitrary Erlang expression.
- </para>
- <para role="example-prefix">
- For example:
- </para>
- <screen role="example">rabbitmqctl eval 'node().'</screen>
- <para role="example">
- This command returns the name of the node to which rabbitmqctl has connected.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>Miscellaneous</title>
- <variablelist>
- <varlistentry>
- <term><cmdsynopsis><command>close_connection</command> <arg choice="req"><replaceable>connectionpid</replaceable></arg> <arg choice="req"><replaceable>explanation</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>connectionpid</term>
- <listitem><para>Id of the Erlang process associated with the connection to close.</para></listitem>
- </varlistentry>
- <varlistentry>
- <term>explanation</term>
- <listitem><para>Explanation string.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Instruct the broker to close the connection associated
- with the Erlang process id <option>connectionpid</option> (see also the
- <link linkend="list_connections"><command>list_connections</command></link>
- command), passing the <option>explanation</option> string to the
- connected client as part of the AMQP connection shutdown
- protocol.
- </para>
- <para role="example-prefix">For example:</para>
- <screen role="example">rabbitmqctl close_connection "&lt;rabbit@tanto.4262.0&gt;" "go away"</screen>
- <para role="example">
- This command instructs the RabbitMQ broker to close the
- connection associated with the Erlang process
- id <command>&lt;rabbit@tanto.4262.0&gt;</command>, passing the
- explanation <command>go away</command> to the connected client.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>trace_on</command> <arg choice="opt">-p <replaceable>vhost</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhost</term>
- <listitem><para>The name of the virtual host for which to start tracing.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Starts tracing.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><cmdsynopsis><command>trace_off</command> <arg choice="opt">-p <replaceable>vhost</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>vhost</term>
- <listitem><para>The name of the virtual host for which to stop tracing.</para></listitem>
- </varlistentry>
- </variablelist>
- <para>
- Stops tracing.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><cmdsynopsis><command>set_vm_memory_high_watermark</command> <arg choice="req"><replaceable>fraction</replaceable></arg></cmdsynopsis></term>
- <listitem>
- <variablelist>
- <varlistentry>
- <term>fraction</term>
- <listitem><para>
- The new memory threshold fraction at which flow
- control is triggered, as a floating point number
- greater than or equal to 0.
- </para></listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
- </refsect1>
-
-</refentry>