RABBITMQCTL(8)
π RABBITMQCTL(8) π
okay bestie, welcome to the System Manager's Manual β¨ this is rabbitmqctl and she is that girl. let's get into it.
πΈ NAME πΈ
rabbitmqctl β the tool for managing RabbitMQ nodes ππ
π SYNOPSIS π
rabbitmqctl [-q] [-s] [-l] [-n node] [-t timeout] command
[command_options]
that's the whole vibe right there. command + optional command options, we move π
π¦ DESCRIPTION π¦
RabbitMQ is an open-source multi-protocol messaging broker. periodt.
rabbitmqctl is the main command line tool for managing a RabbitMQ server node β she rolls with rabbitmq-diagnostics, rabbitmq-upgrade, and the rest of the friend group.
The way she does literally everything: she connects to the target RabbitMQ node on a dedicated CLI tool communication port, and authenticates using a shared secret (that's the cookie file, iykyk).
If the connection failed, or the target node wasn't running, or rabbitmqctl couldn't authenticate to the target node successfully β you get diagnostic information displayed. she will tell you what went wrong π«Ά
wanna learn more? the RabbitMQ CLI Tools guide is right here: https://www.rabbitmq.com/docs/cli
β¨ OPTIONS β¨
-nnode β the default node is"rabbit@target-hostname", where target-hostname is the local host. so on a host named"myserver.example.com", the node name will usually be"rabbit@myserver"β unlessRABBITMQ_NODENAMEhas been overridden, in which case you'll need to use--longnames. the output of"hostname -s"is usually the correct hostname to use after the"@"sign. seerabbitmq-server(8)for the details of configuring a RabbitMQ node.-q,--quietβ quiet output mode is selected π informational messages get reduced when quiet mode is in effect.-s,--silentβ silent output mode is selected π€« informational messages get reduced and table headers are suppressed when silent mode is in effect.--no-table-headersβ do not output headers for tabular data. no header, no problems β¨--dry-runβ do not run the command. only print informational messages. it's giving window shopping ποΈ-ttimeout,--timeouttimeout β operation timeout in seconds β³ not all commands support timeouts. the default isinfinity.-l,--longnamesβ must be specified when the cluster is configured to use long (FQDN) node names. learn more in the RabbitMQ Clustering guide: https://www.rabbitmq.com/docs/clustering--erlang-cookiecookie β shared secret to use to authenticate to the target node π prefer using a local file or theRABBITMQ_ERLANG_COOKIEenvironment variable instead of specifying this option on the command line. (putting secrets in your shell history is not the move, bestie.) learn more: https://www.rabbitmq.com/docs/cli
π COMMANDS π
help [-l] [command_name]
Prints usage for all available commands π
-l,--list-commandsβ list command usages only, without parameter explanation. just the names, keep it snappy π- command_name β prints usage for the specified command.
version
Displays CLI tools version π·οΈ
π Nodes π
await_startup
Waits for the RabbitMQ application to start on the target node β°
for example, to wait for the RabbitMQ application to start:
rabbitmqctl await_startup
reset
Returns a RabbitMQ node to its virgin state π§Όβ¨
she removes the node from any cluster it belongs to, removes all data from the management database (like configured users and vhosts), and deletes all persistent messages. full factory reset energy.
β οΈ forresetandforce_resetto succeed, the RabbitMQ application must have been stopped, e.g. withstop_app.
for example, to reset the RabbitMQ node:
rabbitmqctl reset
rotate_logs
Instructs the RabbitMQ node to perform internal log rotation π
log rotation is performed according to the logging settings specified in the configuration file. the rotation operation is asynchronous β there is no guarantee that it will complete before this command returns. so like, don't wait up.
π note that there is no need to call this command in case of external log rotation (e.g. from logrotate(8)).
for example, to initial log rotation:
rabbitmqctl rotate_logs
shutdown
Shuts down the node β both RabbitMQ and its runtime π the command is blocking and will return after the runtime process exits. if RabbitMQ fails to stop, it will return a non-zero exit code. this command infers the OS PID of the target node, and therefore can only be used to shut down nodes running on the same host (or broadly speaking, in the same operating system, e.g. in the same VM or container).
unlike the stop command, the shutdown command:
- does not require a pid_file to wait for the runtime process to exit
- returns a non-zero exit code if the RabbitMQ node is not running
for example, this will shut down a local RabbitMQ node running with the default node name:
rabbitmqctl shutdown
start_app
Starts the RabbitMQ application βΆοΈ
this command is typically run after performing other management actions that require the RabbitMQ application to be stopped, e.g. reset.
for example, to instruct the RabbitMQ node to start the RabbitMQ application:
rabbitmqctl start_app
stop [pid_file]
Stops the Erlang node on which RabbitMQ is running π to restart the node, follow the instructions for "Running the Server" in the installation guide: https://www.rabbitmq.com/docs/download
if a pid_file is specified, also waits for the process specified there to terminate. see the description of the wait command for details on this file π
for example, to instruct the RabbitMQ node to terminate:
rabbitmqctl stop
stop_app
Stops the RabbitMQ application, leaving the runtime (Erlang VM) running π΄
this command is typically run before performing other management actions that require the RabbitMQ application to be stopped, e.g. reset.
for example, to instruct the RabbitMQ node to stop the RabbitMQ application:
rabbitmqctl stop_app
wait pid_file, wait --pid pid
Waits for the RabbitMQ application to start β³β¨
this command will wait for the RabbitMQ application to start at the node. it will wait for the pid file to be created if pidfile is specified, then for a process with a pid specified in the pid file or the --pid argument, and then for the RabbitMQ application to start in that process. it will fail if the process terminates without starting the RabbitMQ application. π
if the specified pidfile is not created, or the erlang node is not started, within --timeout, the command will fail. the default timeout is 10 seconds.
a suitable pid file is created by the rabbitmq-server(8) script. by default, this is located in the Mnesia directory. modify the RABBITMQ_PID_FILE environment variable to change the location π
for example, this command will return when the RabbitMQ node has started up:
rabbitmqctl wait /var/run/rabbitmq/pid
π¦ Cluster management π¦
await_online_nodes count
Waits for count nodes to join the cluster π―
for example, to wait for two RabbitMQ nodes to start:
rabbitmqctl await_online_nodes 2
cluster_status
Displays all the nodes in the cluster grouped by node type, together with the currently running nodes πΊοΈ
for example, this command displays the nodes in the cluster:
rabbitmqctl cluster_status
force_boot
Ensures that the node will start next time, even if it was not the last to shut down πͺ
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. power outage chaos π΅
in such a case you can invoke force_boot while the node is down. this will tell the node to unconditionally start the next time you ask it.
β οΈ any changes to the cluster after this node shut down will be lost.
if the last node to go down is permanently lost then you should use forget_cluster_node --offline instead of this command, as it will ensure that mirrored queues whose leader replica was on the lost node get promoted.
for example, this will force the node not to wait for other nodes the next time it is started:
rabbitmqctl force_boot
force_reset (deprecated) π¨
Forcefully returns a RabbitMQ node to its virgin state.
the force_reset command differs from reset 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. do not just casually hit this one, bestie.
β οΈ the force_reset command is deprecated. it remains available when the Mnesia metadata store is used. it is unsupported with the Khepri metadata store.
for reset and force_reset to succeed the RabbitMQ application must have been stopped, e.g. with stop_app.
for example, to reset the RabbitMQ node:
rabbitmqctl force_reset
forget_cluster_node [--offline]
--offlineβ 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. seriously. no.
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 --offline flag π«‘
okay so when you pass the --offline flag, rabbitmqctl does NOT try to connect to a node like it normally would β instead it temporarily becomes the node, just to make the change happen. it's giving "i'll do it myself" energy and honestly? we respect it. this is the move when the node can't even start normally. π
the thing is, when that happens, that node becomes the canonical source for cluster metadata (like, which queues exist and everything) β even if it wasn't before. so babe, seriously, use this command on the latest node to shut down if at all possible. no cap. β οΈ
for example, this command will remove the node "rabbit@stringer" from the node "hare@mcnulty":
rabbitmqctl -n hare@mcnulty forget_cluster_node rabbit@stringer
join_cluster seed-node
seed-nodeβ existing cluster member (the seed node) to cluster with.
instructs the node to become a member of the cluster that the specified node is in. before clustering, the node gets reset, so be careful when using this command, bestie. π and for this command to actually succeed, the RabbitMQ application must have been stopped first, e.g. with stop_app.
after you run join_cluster, 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.
to leave a cluster, reset the node. you can also remove nodes remotely with the forget_cluster_node command. π«Ά
to learn more, see the RabbitMQ Clustering guide: https://www.rabbitmq.com/docs/clustering.
π User Management π
heads up bestie: all user management commands in rabbitmqctl can only manage users in the internal RabbitMQ database. users from any alternative authentication backends such as LDAP cannot be inspected or managed with those commands. that's a rabbitmqctl. thing. π
add_user username password
usernameβ the name of the user to create.passwordβ the password the created user will use to log in to the broker.
for example, this command instructs the RabbitMQ broker to create a (non-administrative) user named "janeway" with the (initial) password "changeit":
rabbitmqctl add_user janeway changeit
authenticate_user username password
usernameβ the name of the user.passwordβ the password of the user.
for example, this command instructs the RabbitMQ broker to authenticate the user named "janeway" with the password "verifyit":
rabbitmqctl authenticate_user janeway verifyit
change_password username newpassword
usernameβ the name of the user whose password is to be changed.newpasswordβ the new password for the user.
for example, this command instructs the RabbitMQ broker to change the password for the user named "janeway" to "newpass":
rabbitmqctl change_password janeway newpass
clear_password username
usernameβ the name of the user whose password is to be cleared.
for example, this command instructs the RabbitMQ broker to clear the password for the user named "janeway":
rabbitmqctl clear_password janeway
this user now cannot log in with a password (but might still be able to through e.g. SASL EXTERNAL if that's configured for them). π
hash_password plaintext
plaintextβ the plaintext password to hash.
hashes a plaintext password according to the currently configured password hashing algorithm. β¨
delete_user username
usernameβ the name of the user to delete.
for example, this command instructs the RabbitMQ broker to delete the user named "janeway":
rabbitmqctl delete_user janeway
list_users
lists users. each result row will contain the user name followed by a list of the tags set for that user.
for example, this command instructs the RabbitMQ broker to list all users:
rabbitmqctl list_users
set_user_tags username [tag ...]
usernameβ the name of the user whose tags are to be set.tagβ zero, one or more tags to set. any existing tags will be removed.
for example, this command instructs the RabbitMQ broker to ensure the user named "janeway" is an administrator:
rabbitmqctl set_user_tags janeway administrator
this has no effect when the user authenticates using a messaging protocol, but it 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).
and this command instructs the RabbitMQ broker to remove any tags from the user named "janeway":
rabbitmqctl set_user_tags janeway
π Access control π
clear_permissions [-p vhost] username
vhostβ the name of the virtual host to which to deny the user access, defaulting to"/".usernameβ the name of the user to deny access to the specified virtual host.
sets user permissions.
for example, this command instructs the RabbitMQ broker to deny the user named "janeway" access to the virtual host called "my-vhost":
rabbitmqctl clear_permissions -p my-vhost janeway
clear_topic_permissions [-p vhost] username [exchange]
vhostβ the name of the virtual host to which to clear the topic permissions, defaulting to"/".usernameβ the name of the user to clear topic permissions to the specified virtual host.exchangeβ the name of the topic exchange to clear topic permissions, defaulting to all the topic exchanges the given user has topic permissions for.
clear user topic permissions.
for example, this command instructs the RabbitMQ broker to remove topic permissions for the user named "janeway" for the topic exchange "amq.topic" in the virtual host called "my-vhost":
rabbitmqctl clear_topic_permissions -p my-vhost janeway amq.topic
list_permissions [-p vhost]
vhostβ the name of the virtual host for which to list the users that have been granted access to it, and their permissions. defaults to"/".
lists permissions in a virtual host.
for example, this command instructs the RabbitMQ broker to list all the users who have been granted access to the virtual host called "my-vhost", and the permissions they have for operations on resources in that virtual host. note that an empty string means no permissions are granted:
rabbitmqctl list_permissions -p my-vhost
list_topic_permissions [-p vhost]
vhostβ the name of the virtual host for which to list the user's topic permissions. defaults to"/".
lists topic permissions in a virtual host.
for example, this command instructs the RabbitMQ broker to list all the users who have been granted topic permissions in the virtual host called "my-vhost:"
rabbitmqctl list_topic_permissions -p my-vhost
list_user_permissions username
usernameβ the name of the user for which to list the permissions.
lists user permissions.
for example, this command instructs the RabbitMQ broker to list all the virtual hosts to which the user named "janeway" has been granted access, and the permissions the user has for operations on resources in these virtual hosts:
rabbitmqctl list_user_permissions janeway
list_user_topic_permissions username
usernameβ the name of the user for which to list the topic permissions.
lists user topic permissions.
for example, this command instructs the RabbitMQ broker to list all the virtual hosts to which the user named "janeway" has been granted access, and the topic permissions the user has in these virtual hosts:
rabbitmqctl list_user_topic_permissions janeway
list_vhosts [vhostinfoitem ...]
lists virtual hosts. π
the vhostinfoitem 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. vhostinfoitem can take any value from the list that follows:
nameβ the name of the virtual host with non-ASCII characters escaped as in C.tracingβ whether tracing is enabled for this virtual host.default_queue_typeβ default queue type for this vhost.descriptionβ virtual host description.tagsβ virtual host tags.cluster_stateβ the state of the virtual host, one ofnodedown,running,stopped.
And if you pass no vhostinfoitems at all? Then babe, you just get the vhost name. That's it. Keep it simple. π
Example time β this one tells the broker to list every virtual host:
rabbitmqctl list_vhosts name tracing
π¦ set_permissions [-p vhost] user conf write read
vhostβ which virtual host you're granting this user access to; defaults to"/".userβ the name of the user getting access to that virtual host.confβ a regular expression that matches resource names the user gets configure permissions on.writeβ a regular expression matching resource names the user gets write permissions on.readβ a regular expression matching resource names the user gets read permissions on.
Sets user permissions. Iconic. π
So like, this command tells the broker to give the user named "janeway" access to the virtual host called "my-vhost", with configure permissions on every resource whose name starts with "janeway-", plus write and read permissions on all the resources:
rabbitmqctl set_permissions -p my-vhost janeway "^janeway-.*" ".*" ".*"
πΈ set_permissions_globally username conf write read
usernameβ the name of the user you're granting access to the specified virtual host. (Yes bestie, that's what it says, and we're keeping it.)confβ a regular expression matching resource names the user gets configure permissions on.writeβ a regular expression matching resource names the user gets write permissions on.readβ a regular expression matching resource names the user gets read permissions on.
Sets user permissions in all vhosts. All of them. Every single one. main character energy fr fr. π
For example, this tells the broker to give the user named "janeway" access to all virtual hosts, with configure permissions on all resources whose names start with "janeway-", and write plus read permissions on all resources:
rabbitmqctl set_permissions_globally janeway "^janeway-.*" ".*" ".*"
π set_topic_permissions [-p vhost] user exchange write read
vhostβ the virtual host you're granting the user access to; defaults to"/".userβ the name of the user these permissions apply to in the target virtual host.exchangeβ the name of the topic exchange the authorisation check gets applied to.writeβ a regular expression matching the routing key of the published message.readβ a regular expression matching the routing key of the consumed message.
Sets user topic permissions. π
Example incoming: this one tells the broker to let the user named "janeway" publish and consume messages going through the "amp.topic" exchange of the "my-vhost" virtual host with a routing key that starts with "janeway-":
rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^janeway-.*" "^janeway-.*"
Topic permissions support variable expansion for these variables: username, vhost, and client_id. Heads up though β client_id only gets expanded when you're using MQTT. π The previous example could be made more generic by using "^{username}-.*":
rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^{username}-.*" "^{username}-.*"
π₯ Monitoring, observability and health checks π₯
β¨ environment
Displays the name and value of each variable in the application environment, for every running application.
π«Ά list_bindings [-p vhost] [bindinginfoitem ...]
Returns binding details. By default you get the bindings for the "/" virtual host β the -p flag is how you override that default. Slay.
The bindinginfoitem parameter says which binding info items to include in the results, and the column order in the results matches the order of your parameters. So order matters, bestie. bindinginfoitem can take any of these values:
source_nameβ the name of the source of messages the binding is attached to; non-ASCII characters get escaped as in C.source_kindβ the kind of the source of messages the binding is attached to. Currently alwaysexchange. With non-ASCII characters escaped as in C.destination_nameβ the name of the destination of messages the binding is attached to, with non-ASCII characters escaped as in C.destination_kindβ the kind of destination of messages the binding is attached to, with non-ASCII characters escaped as in C.routing_keyβ the binding's routing key, with non-ASCII characters escaped as in C.argumentsβ the binding's arguments.
If you don't specify any bindinginfoitems, then every single item above gets displayed. All of them. π
For example, this command displays the exchange name and queue name of the bindings in the virtual host named "my-vhost":
rabbitmqctl list_bindings -p my-vhost exchange_name queue_name
π list_channels [channelinfoitem ...]
Returns info on all current channels β the logical containers that execute most AMQP commands. This includes channels that are part of ordinary AMQP connections and channels created by various plug-ins and other extensions. Everybody's here, it's a party. π
The channelinfoitem parameter says which channel info items to include, and the column order in the results matches the order of the parameters. channelinfoitem can be any of these:
pidβ id of the Erlang process associated with the connection.connectionβ id of the Erlang process associated with the connection the channel belongs to.nameβ a readable name for the channel.numberβ the number of the channel, which uniquely identifies it within a connection.userβ the username associated with the channel.vhostβ the virtual host in which the channel operates.transactionalβtrueif the channel is in transactional mode,falseotherwise.confirmβtrueif the channel is in confirm mode,falseotherwise.consumer_countβ the number of logical AMQP consumers retrieving messages via the channel.messages_unacknowledgedβ the number of messages delivered via this channel but not yet acknowledged.messages_uncommittedβ the number of messages received in an as-yet uncommitted transaction.acks_uncommittedβ the number of acknowledgements received in an as-yet uncommitted transaction.messages_unconfirmedβ the number of not-yet-confirmed published messages. On channels that aren't in confirm mode, this stays at0.prefetch_countβ the QoS prefetch limit for new consumers, or0if it's unlimited.
If you specify no channelinfoitems, then pid, user, consumer_count, and messages_unacknowledged are assumed. Those four, that's the default lineup. β¨
For example, this command displays the connection process and the count of unacknowledged messages for each channel:
rabbitmqctl list_channels connection messages_unacknowledged
π list_ciphers
Lists the cipher suites supported by encoding commands.
For example, this command tells the broker to list all cipher suites supported by encoding commands:
rabbitmqctl list_ciphers
β list_connections [connectioninfoitem ...]
Returns TCP/IP connection statistics.
The connectioninfoitem parameter says which connection info items to include in the results, and the column order in the results matches the order of the parameters. connectioninfoitem can take any value from this list:
pidβ id of the Erlang process associated with the connection.nameβ a readable name for the connection.portβ server port.hostβ the server's hostname, sourced via reverse DNS. If reverse DNS failed or was turned off, you just get its IP address instead. no drama, just facts. π‘peer_portβ the peer's port, simple as.peer_hostβ the peer's hostname, also via reverse DNS. Same deal: if reverse DNS failed or was not enabled, it's the IP address.sslβ boolean, is this connection secured with SSL or nah.ssl_protocolβ the SSL protocol, like"tlsv1".ssl_key_exchangeβ SSL key exchange algorithm, e.g."rsa".ssl_cipherβ SSL cipher algorithm, e.g."aes_256_cbc".ssl_hashβ SSL hash function, e.g."sha".peer_cert_subjectβ the subject of the peer's SSL certificate, in RFC4514 form.peer_cert_issuerβ the issuer of the peer's SSL certificate, in RFC4514 form.peer_cert_serial_numberβ the serial number of the peer's SSL certificate, in hexadecimal form.peer_cert_validityβ the period for which the peer's SSL certificate is valid.stateβ the connection state, and it's one of these:startingtuningopeningrunningflowblockingblockedclosingclosed
channelsβ how many channels are using this connection.protocolβ the version of the AMQP protocol in use. currently one of:{0,9,1}{0,8,0}
heads up bestie: if a client requests an AMQP 0-9 connection, we treat it as AMQP 0-9-1. that's just how it is. π
auth_mechanismβ the SASL authentication mechanism used, such as"PLAIN".userβ the username tied to this connection.vhostβ the virtual hostname, with non-ASCII characters escaped as in C.timeoutβ connection timeout / negotiated heartbeat interval, in seconds.frame_maxβ maximum frame size, in bytes.channel_maxβ maximum number of channels allowed on this connection.client_propertiesβ informational properties the client sends over during connection establishment.recv_octβ octets received.recv_cntβ packets received.send_octβ octets send. (yes, that's the original wording, we're keeping it fr)send_cntβ packets sent.send_pendβ send queue size.connected_atβ the date and time this connection was established, as a timestamp.
If you don't pass any connectioninfoitems, the default lineup is: user, peer host, peer port, time since flow control, and memory block state. that's the default, periodt. β¨
Wanna see it in action? This command displays the send queue size and server port for each connection:
rabbitmqctl list_connections send_pend port
π«Ά list_consumers π«Ά
rabbitmqctl list_consumers [-p vhost]
Lists consumers, aka the subscriptions to a queueΒ΄s message stream. π Each line it prints out is separated by tab characters and shows:
- 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 saying whether acknowledgements are expected for messages delivered to this consumer,
- an integer for the prefetch limit (where
0means"none"), - and any arguments for this consumer.
π¦ list_exchanges π¦
rabbitmqctl list_exchanges [-p vhost] [exchangeinfoitem ...]
Returns exchange details. π If the -p flag is absent you get the exchange details of the "/" virtual host β that's the default. Use -p to override it.
The exchangeinfoitem parameter tells it which exchange information items to include in the results. The column order in the results matches the order of the parameters you gave. exchangeinfoitem can be any of these:
nameβ the name of the exchange, with non-ASCII characters escaped as in C.typeβ the exchange type, such as:directtopicheadersfanout
durableβ whether or not the exchange survives server restarts.auto_deleteβ whether the exchange gets deleted automatically when it's no longer used.internalβ whether the exchange is internal, meaning clients cannot publish to it directly. π«argumentsβ exchange arguments.policyβ the policy name for applying to the exchange.
If you don't specify any exchangeinfoitems, you get the exchange name and type. simple. πΈ
For example, this command displays the name and type for each exchange of the virtual host named "my-vhost":
rabbitmqctl list_exchanges -p my-vhost name type
π list_hashes π
rabbitmqctl list_hashes
Lists the hash functions supported by encoding commands. that's it, that's the whole vibe. π
For example, this command instructs the RabbitMQ broker to list all hash functions supported by encoding commands:
rabbitmqctl list_hashes
π list_queues π
rabbitmqctl list_queues [-p vhost] [--offline | --online | --local]
[queueinfoitem ...]
Returns queue details. π Queue details of the "/" virtual host come back if the -p flag is absent β and yeah, the -p flag can override that default.
You can filter which queues get displayed by their status or location using one of these mutually exclusive options (pick one, not all, bestie):
--offlineβ list only those durable queues that are not currently available (more specifically, their leader node isn't). π€--onlineβ list queues that are currently available (their leader node is). β--localβ list only those queues whose leader replica is located on the current node. π
The queueinfoitem parameter says which queue information items to include in the results, and the column order in the results matches the order of the parameters. queueinfoitem can be any of these:
nameβ the name of the queue, with non-ASCII characters escaped as in C.durableβ whether or not the queue survives server restarts.auto_deleteβ whether the queue is deleted automatically when it's no longer used.argumentsβ queue arguments.policyβ the name of the user policy applied to the queue.operator_policyβ the name of the operator policy applied to the queue.effective_policy_definitionβ the effective policy definition for the queue: both the user and operator policy definitions merged together. π«±π»βπ«²π½pidβ the Erlang process identifier of the queue.owner_pidβ the id of the Erlang process of the connection which is the exclusive owner of the queue. Empty if the queue is non-exclusive.exclusiveβTrueif the queue is exclusive (i.e. it has anowner_pid),falseotherwise.exclusive_consumer_pidβ the id of the Erlang process representing the channel of the exclusive consumer subscribed to this queue. Empty if there's no exclusive consumer.exclusive_consumer_tagβ the consumer tag of the exclusive consumer subscribed to this queue. Empty if there's no exclusive consumer.messages_readyβ the number of messages ready to be delivered to clients. π¬messages_unacknowledgedβ the number of messages delivered to clients but not yet acknowledged.messagesβ the sum of ready and unacknowledged messages, aka the queue depth.messages_ready_ramβ the number of messages frommessages_readywhich are resident in ram.messages_unacknowledged_ramβ how many of themessages_unacknowledgedare literally chilling in ram rn. πΎmessages_ramβ the total count of messages hanging out in ram.messages_persistentβ total number of persistent messages in the queue (ngl this is always0for transient queues, that's just how it is).message_bytesβ the sum of the size of every message body in the queue. heads up bestie, this does not count the message properties (headers included) or any overhead, so it's the bodies only. πmessage_bytes_readyβ same energy asmessage_bytesbut only counting the ones that are ready to be delivered to clients.message_bytes_unacknowledgedβ again likemessage_bytes, but only the ones already delivered to clients and not yet acknowledged.message_bytes_ramβ likemessage_bytesbut only counting messages currently held in RAM.message_bytes_persistentβ likemessage_bytesbut only counting the persistent ones.head_message_timestampβ the timestamp property of the first message in the queue, if it's there at all. lowkey important: timestamps of messages only show up when they're in the paged-in state.disk_readsβ total number of times messages have been read from disk by this queue since it started.disk_writesβ total number of times messages have been written to disk by this queue since it started.consumersβ the number of consumers. simply that. β¨consumer_utilisationβ fraction of the time (between0.0and1.0) that the queue can immediately deliver messages to consumers. this can be less than1.0if consumers are limited by network congestion or by prefetch count. not the queue's fault fr fr.memoryβ bytes of memory the runtime allocated for the queue, including stack, heap, and internal structures. π§mirror_pidsβ if the queue is mirrored, this lists the IDs of the mirrors (follower replicas). to learn more, see the RabbitMQ Mirroring guide: https://www.rabbitmq.com/docs/3.13/hasynchronised_mirror_pidsβ if the queue is mirrored, this gives the IDs of the mirrors (follower replicas) that are in sync with the leader replica. to learn more, see the RabbitMQ Mirroring guide: https://www.rabbitmq.com/docs/3.13/hastateβ the state of the queue. normally"running", but it may be"{syncing, message_count}"if the queue is synchronising.
okay so watch out: queues sitting on cluster nodes that are currently down will show a status of"down"β and most otherqueueinfoitemwill be unavailable. π
typeβ queue type, one of:quorum,stream,classic.
If no queueinfoitem s are specified then queue name and depth are displayed. that's the default, no cap.
For example, this command displays the depth and number of consumers for each queue of the virtual host named "my-vhost":
rabbitmqctl list_queues -p my-vhost messages consumers
list_unresponsive_queues π«Ά
list_unresponsive_queues [--local] [--queue-timeout seconds]
[queueinfoitem ...] [--no-table-headers]
Tests queue leader replicas to respond within the given timeout, and lists the ones that did not respond in time. it's giving "who's ghosting me" energy. π
Displayed queues can be filtered by their status or location using one of the following mutually exclusive options (pick one, not both, bestie):
--allβ list all queues.--localβ list only those queues whose leader replica is located on the current node.
The queueinfoitem 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. queueinfoitem can take any value from the list that follows:
nameβ the name of the queue, with non-ASCII characters escaped as in C.durableβ whether or not the queue should survive server restarts.auto_deleteβ whether the queue will be deleted automatically when all of its explicit bindings are deleted.argumentsβ queue arguments.policyβ effective policy name for the queue.pidβ Erlang process identifier of the leader replica.recoverable_mirrorsβ Erlang process identifiers of the mirror replicas that are considered reachable (available).typeβ queue type, one of:quorum,stream,classic.
For example, this command lists only those unresponsive queues whose leader replica is hosted on the target node:
rabbitmqctl list_unresponsive_queues --local name
ping π
Checks that the node OS process is up, registered with EPMD, and that CLI tools can authenticate with it. like a lil "u up?" text to your broker.
Example:
rabbitmqctl ping -n rabbit@hostname
report π
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 it's accompanying a support request. do not just paste 4000 lines into a chat, bestie.
For example, this command creates a server report which may be attached to a support request email:
rabbitmqctl report > server_report.txt
schema_info ποΈ
schema_info [--no-table-headers] [column ...]
Lists schema database tables and their properties.
For example, this command lists the table names and their active replicas:
rabbitmqctl schema_info name active_replicas
status π
Displays broker status information such as the running applications on the current Erlang node, RabbitMQ and Erlang versions, OS name, and memory and file descriptor statistics. (See the cluster_status command to find out which nodes are clustered and running.) so like, this one is about this node, cluster_status is about the whole squad.
For example, this command displays information about the RabbitMQ broker:
rabbitmqctl status
Runtime Parameters and Policies π
Certain features of RabbitMQ (such as the Federation plugin) are controlled by dynamic, cluster-wide parameters. There are 2 kinds of parameters: parameters scoped to a virtual host and global parameters. Each vhost-scoped parameter consists of a component name, a name, and a value. The component name and name are strings, and the value is a valid JSON document. A global parameter consists of a name and value. The name is a string and the value is an arbitrary Erlang data structure. 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.
Policies is a feature built on top of runtime parameters. 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.
clear_global_parameter π§Ή
clear_global_parameter name
Clears a global runtime parameter. This is similar to clear_parameter but the key-value pair isn't tied to a virtual host. no vhost strings attached fr.
nameβ the name of the global runtime parameter being cleared.
For example, this command clears the global runtime parameter "mqtt_default_vhosts":
rabbitmqctl clear_global_parameter mqtt_default_vhosts
clear_parameter π§Ό
clear_parameter [-p vhost] component_name key
Clears a parameter.
component_nameβ the name of the component for which the parameter is being cleared.nameβ the name of the parameter being cleared.
For example, this command clears the parameter "node01" for the "federation-upstream" component in the default virtual host:
rabbitmqctl clear_parameter federation-upstream node01
list_global_parameters π
Lists all global runtime parameters. This is similar to list_parameters but the global runtime parameters are not tied to any virtual host.
For example, this command lists all global parameters:
rabbitmqctl list_global_parameters
list_parameters π
list_parameters [-p vhost]
Lists all parameters for a virtual host.
For example, this command lists all parameters in the default virtual host:
rabbitmqctl list_parameters
set_global_parameter β¨
set_global_parameter name value
Sets a global runtime parameter. It's the same energy as set_parameter, except the key-value pair isn't tied to a virtual host β it's global, it belongs to everyone, main character of the whole broker. β¨
nameβ the name of the global runtime parameter being set.valueβ the value for the global runtime parameter, as a JSON document. In most shells you are very likely to need to quote this, bestie, quote it, save yourself. π«
For example, this command sets the global runtime parameter "mqtt_default_vhosts" to the JSON document {"O=client,CN=guest":"/"}:
rabbitmqctl set_global_parameter mqtt_default_vhosts '{"O=client,CN=guest":"/"}'
set_parameter [-p vhost] component_name name value
Sets a parameter. Very demure, very parameter-y. π
component_nameβ the name of the component for which the parameter is being set.nameβ the name of the parameter being set.valueβ the value for the parameter, as a JSON document. In most shells you are very likely to need to quote this.
For example, this command sets the parameter "node01" for the "federation-upstream" component in the default virtual host to the following JSON "guest":
rabbitmqctl set_parameter federation-upstream node01 '{"uri":"amqp://user:password@server/%2F","ack-mode":"on-publish"}'
list_policies [-p vhost]
Lists all policies for a virtual host. Just, like, all of them. π
For example, this command lists all policies in the default virtual host:
rabbitmqctl list_policies
set_operator_policy [-p vhost] [--priority priority] [--apply-to apply-to] name pattern definition
Sets an operator policy that overrides a subset of arguments in user policies. The arguments are identical to those of set_policy β same fit, different crown. π
Supported arguments are:
expiresmessage-ttlmax-lengthmax-length-bytes
set_policy [-p vhost] [--priority priority] [--apply-to apply-to] name pattern definition
Sets a policy.
nameβ the name of the policy.patternβ the regular expression that allows the policy to apply if it matches a resource name.definitionβ the definition of the policy, as a JSON document. In most shells you are very likely to need to quote this.priorityβ the priority of the policy as an integer. Higher numbers indicate greater precedence. The default is0.apply-toβ which types of objects this policy should apply to. Possible values are:queues(all queue types, including streams)classic_queues(classic queues only)quorum_queues(quorum queues only)streams(streams only)exchangesall
The default is all.
For example, this command sets the policy "federate-me" in the default virtual host so that built-in exchanges are federated:
rabbitmqctl set_policy federate-me ^amq. '{"federation-upstream-set":"all"}'
clear_policy [-p vhost] name
Clears a policy. Gone. Poof. π¦
nameβ the name of the policy being cleared.
For example, this command clears the "federate-me" policy in the default virtual host:
rabbitmqctl clear_policy federate-me
clear_operator_policy [-p vhost] name
Clears an operator policy. Arguments are identical to those of clear_policy β same rules, different policy tier. π
list_operator_policies [-p vhost]
Lists operator policy overrides for a virtual host. Arguments are identical to those of list_policies.
π Virtual hosts π
Heads up, bestie:rabbitmqctlmanages the RabbitMQ internal user database. Permissions for users from any alternative authorisation backend will not be visible torabbitmqctl. It literally cannot see them, no cap. π«Ά
add_vhost vhost [--description desc --tags tags --default-queue-type default-q-type]
vhostβ the name of the virtual host entry to create.descβ arbitrary virtual host description, e.g. its purpose, for the operator's convenience.tagsβ a comma-separated list of virtual host tags for the operator's convenience.default-q-typeβ if clients do not specify queue type explicitly, this type will be used. One of:quorum,stream.
Creates a virtual host. Baby's first vhost, iconic. β¨
For example, this command instructs the RabbitMQ broker to create a new virtual host called "project9_dev_18":
rabbitmqctl add_vhost project9_dev_18 --description 'Dev environment no. 18' --tags dev,project9
clear_vhost_limits [-p vhost]
Clears virtual host limits.
For example, this command clears vhost limits in vhost "qa_env":
rabbitmqctl clear_vhost_limits -p qa_env
delete_vhost vhost
vhostβ the name of the virtual host entry to delete.
Deletes a virtual host.
Deleting a virtual host deletes all its exchanges, queues, bindings, user permissions, parameters, and policies. Everything. It's giving scorched earth. π₯π
For example, this command instructs the RabbitMQ broker to delete the virtual host called "test":
rabbitmqctl delete_vhost a-vhost
list_vhost_limits [-p vhost] [--global] [--no-table-headers]
Displays configured virtual host limits.
--globalβ show limits for all vhosts. Suppresses the-pparameter. (They do not coexist, pick a lane. π )
restart_vhost [-p vhost]
vhostβ the name of the virtual host entry to restart, defaulting to"/".
Restarts a failed vhost data stores and queues.
For example, this command instructs the RabbitMQ broker to restart a virtual host called "test":
rabbitmqctl restart_vhost test
set_vhost_limits [-p vhost] definition
Sets virtual host limits.
definitionβ the definition of the limits, as a JSON document. In most shells you are very likely to need to quote this.
Recognised limits are:
max-connectionsmax-queues
Use a negative value to specify "no limit".
For example, this command limits the maximum number of concurrent connections in vhost "qa_env" to 64:
rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": 64}'
This command limits the maximum number of queues in vhost "qa_env" to 256:
rabbitmqctl set_vhost_limits -p qa_env '{"max-queues": 256}'
This command clears the maximum number of connections limit in vhost "qa_env":
rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": -1}'
This command disables client connections in vhost "qa_env":
rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": 0}'
And like, no shade to the original page, but it literally prints this next bit exactly like this, so here it is in all its unhinged glory, untouched:
] username
] definition
set_user_limits
Sets user limits.
usernameβ the name of the user to apply limits to.definitionβ the definition of the limits, as a JSON document. In most shells you are very likely to need to quote this.
Recognised limits are:
max-connectionsmax-channels
Use a negative value to specify "no limit".
For example, this command limits the maximum number of concurrent connections a user is allowed to open "limited_user" to 64:
rabbitmqctl set_user_limits limited_user '{"max-connections": 64}'
This command limits the maximum number of channels a user is allowed to open on a connection "limited_user" to 16:
rabbitmqctl set_user_limits limited_user '{"max-channels": 16}'
This command clears the maximum number of connections limit for user "limited_user":
rabbitmqctl set_user_limits limited_user '{"max-connections": 0}'
And once again, the source page does this, so we're doing it too, verbatim:
] username
] limit
clear_user_limits
Clears user limits.
usernameβ the name of the user to clear the limits of.limitβ the name of the limit or"all"to clear all limits at once.
Recognised limits are:
max-connectionsmax-channels
For example, this command clears the maximum connection limits of user "limited_user":
rabbitmqctl clear_user_limits limited_user 'max-connections'
bestie this is the β¨surgicalβ¨ version β it dips in and clears just the one limit you name, so limited_user keeps every other limit they had going on. no collateral damage, no drama π
rabbitmqctl clear_user_limits limited_user all
and this one? this is the nuclear option π the word all says "clear every single limit on limited_user", so everything goes. iconic, terrifying, very much the point of the command.
trace_off π΄
trace_off [-p vhost]
vhostβ the name of the virtual host where you wanna stop tracing. that's it, that's the whole vibe.
Stops tracing. done and dusted π
trace_on π
trace_on [-p vhost]
vhostβ the name of the virtual host where you wanna start tracing.
Starts tracing. π«Ά
heads up bestie!! the trace state is not persistent β if the node gets restarted, tracing just quietly reverts to being off. so don't come crying to me when your traces vanish after a reboot, i warned you π
βοΈ Configuration βοΈ
decode π
decode value passphrase [--cipher cipher] [--hash hash] [--iterations iterations]
valuepassphraseβ thevalueyou wanna decrypt (the kind of thing theencodecommand spits out) plus thepassphrase. like so:
rabbitmqctl decode '{encrypted, <<"...">>}' mypassphrase
--ciphercipher--hashhash--iterationsiterationsβ options that set up your decryption settings. ngl they can be used independently of each other, so mix and match however you need. example time:
rabbitmqctl decode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 '{encrypted,<<"...">>} mypassphrase
encode π
encode value passphrase [--cipher cipher] [--hash hash] [--iterations iterations]
valuepassphraseβ thevalueyou wanna encrypt plus thepassphrase. for instance:
rabbitmqctl encode '<<"guest">>' mypassphrase
--ciphercipher--hashhash--iterationsiterationsβ options for your encryption settings. again, usable independently, no strings attached π
rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 '<<"guest">>' mypassphrase
set_cluster_name π·οΈ
set_cluster_name name
Sets the cluster name to name. this name is announced to clients when they connect, and the federation and shovel plugins use it to keep track of where a message has been. by default it's derived from the hostname of the first node in the cluster, but you can absolutely change it, main character energy β¨
for example, this sets the cluster name to "london":
rabbitmqctl set_cluster_name london
set_disk_free_limit πΎ
set_disk_free_limit disk_limit
disk_limitβ your lower bound limit, either as an integer in bytes, or as a string with a memory unit symbol (peepvm_memory_high_watermarkfor that), like512Mor1G. once free disk space actually reaches this limit, boom β a disk alarm gets set. β οΈ
set_disk_free_limit mem_relative fraction
fractionβ the limit relative to the total available RAM, as a non-negative floating point number.
careful!! values lower than 1.0 can be dangerous and should be used with actual care, not vibes π
set_log_level π’
set_log_level [log_level]
Sets the log level in the running node.
the supported log_level values are, slay:
debuginfowarningerrorcriticalnone
example:
rabbitmqctl set_log_level debug
set_vm_memory_high_watermark π
set_vm_memory_high_watermark fraction
fractionβ the new memory threshold fraction where flow control kicks in, as a floating point number greater than or equal to0.
set_vm_memory_high_watermark [absolute] memory_limit
memory_limitβ the new memory limit where flow control gets triggered, expressed in bytes as an integer greater than or equal to0, or as a string with a memory unit symbol (like512Mor1G). the available unit symbols are:k,kiBβ kibibytes (2^10bytes)M,MiBβ mebibytes (2^20bytes)G,GiBβ gibibytes (2^30bytes)kBβ kilobytes (10^3bytes)MBβ megabytes (10^6bytes)GBβ gigabytes (10^9bytes)
π© Feature Flags π©
enable_feature_flag β
enable_feature_flag feature_flag
Enables a feature flag on the target node. cute, simple, effective π
example:
rabbitmqctl enable_feature_flag restart_streams
and you can also enable all the feature flags by specifying "all":
rabbitmqctl enable_feature_flag all
list_feature_flags π
list_feature_flags [column ...]
Lists feature flags. β¨
the supported column values are:
namestatestabilityprovided_bydescdoc_url
example:
rabbitmqctl list_feature_flags name state
π Connection Operations π
close_all_connections πͺ
close_all_connections [-p vhost] [--global] [--per-connection-delay delay] [--limit limit] explanation
-pvhostβ the name of the virtual host whose connections should be closed. gets ignored when--globalis specified.--globalβ whether to close connections for all vhosts. this one overrides-p.--per-connection-delaydelayβ how long to wait, in milliseconds, after each connection closes.--limitlimitβ the number of connections to close. only works per vhost, and gets ignored when--globalis specified.explanationβ the explanation string.
Instructs the broker to close all connections for the specified vhost, or for the entire RabbitMQ node.
for example, this tells the RabbitMQ broker to close 10 connections on the "qa_env" vhost, passing the explanation "Please close":
rabbitmqctl close_all_connections -p qa_env --limit 10 'Please close'
and this one instructs the broker to close all connections to the node:
rabbitmqctl close_all_connections --global
close_connection βοΈ
close_connection connectionpid explanation
connectionpidβ the id of the Erlang process associated with the connection you wanna close.explanationβ the explanation string.
Instructs the broker to close the connection tied to that Erlang process id connectionpid (also peep the list_connections command π), and it passes the explanation string along to the connected client as part of the AMQP connection shutdown protocol.
for example, this instructs the RabbitMQ broker to close the connection associated with the Erlang process id "<rabbit@tanto.4262.0>", passing the explanation "go away" to the connected client:
rabbitmqctl close_connection "<rabbit@tanto.4262.0>" "go away"
π« Misc π«
eval π§ͺ
eval expression
Evaluates an Erlang expression on the target node. that's the whole thing, bestie β fancy, powerful, and honestly a little unhinged, but we love her π
π Queue Operations π
delete_queue ποΈ
delete_queue queue_name [--if-empty | -e] [--if-unused | -u]
queue_nameβ the name of the queue to delete.--if-emptyβ delete the queue only if it's empty (meaning it has no messages ready for delivery).--if-unusedβ delete the queue only if it has no consumers.
Deletes a queue. periodt. π
purge_queue π§Ή
purge_queue [-p vhost] queue
queueβ the name of the queue to purge.
Purges a queue β aka removes all messages in it. a full factory reset for the queue contents, no cap π
β¨ PLUGIN COMMANDS β¨
Okay so RabbitMQ plugins can literally extend the rabbitmqctl tool and add brand-new commands when they're enabled. π
The currently available commands? You can find them in the rabbitmqctl help output. The following commands are added by RabbitMQ plugins that ship in the default distribution:
π Shovel plugin
shovel_status
Prints a list of configured Shovels. Periodt.
delete_shovel [-p vhost] name
Instructs the RabbitMQ node to delete the configured shovel by name. You can toss in -p vhost too, bestie.
π€ Federation plugin
federation_status [--only-down]
Prints a list of federation links.
--only-downβ Only list federation links that are not running.
restart_federation_link link_id
Instructs the RabbitMQ node to restart the federation link with the specified link_id.
π¦ AMQP 1.0 plugin
list_amqp10_connections [amqp10_connectioninfoitem ...]
Similar to the list_connections command, but returns fields that make sense for AMQP-1.0 connections. The amqp10_connectioninfoitem 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. amqp10_connectioninfoitem can take any value from the list that follows:
pidβ Id of the Erlang process associated with the connection.auth_mechanismβ SASL authentication mechanism used, such as"PLAIN".hostβ Server hostname obtained via reverse DNS, or its IP address if reverse DNS failed or was turned off.frame_maxβ Maximum frame size (bytes).timeoutβ Connection timeout / negotiated heartbeat interval, in seconds.userβ Username associated with the connection.stateβ Connection state; one of:startingwaiting_amqp0100securingrunningblockingblockedclosingclosed
recv_octβ Octets received.recv_cntβ Packets received.send_octβ Octets send.send_cntβ Packets sent.sslβ Boolean indicating whether the connection is secured with SSL.ssl_protocolβ SSL protocol (e.g."tlsv1").ssl_key_exchangeβ SSL key exchange algorithm (e.g."rsa").ssl_cipherβ SSL cipher algorithm (e.g."aes_256_cbc").ssl_hashβ SSL hash function (e.g."sha").peer_cert_subjectβ The subject of the peer's SSL certificate, in RFC4514 form.peer_cert_issuerβ The issuer of the peer's SSL certificate, in RFC4514 form.peer_cert_serial_numberβ The serial number of the peer's SSL certificate, in hexadecimal form.peer_cert_validityβ The period for which the peer's SSL certificate is valid.nodeβ The node name of the RabbitMQ node to which the connection is established.
π‘ MQTT plugin
list_mqtt_connections [mqtt_connectioninfoitem]
Similar to the list_connections command, but returns fields that make sense for MQTT connections. The mqtt_connectioninfoitem 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. mqtt_connectioninfoitem can take any value from the list that follows:
hostβ Server hostname obtained via reverse DNS, or its IP address if reverse DNS failed or was turned off.portβ Server port.peer_hostβ Peer hostname obtained via reverse DNS, or its IP address if reverse DNS failed or was not enabled.peer_portβ Peer port.protocolβ MQTT protocol version, which can be one of the following:{'MQTT', N/A}{'MQTT', 3.1.0}{'MQTT', 3.1.1}
channelsβ The number of channels using the connection.channel_maxβ Maximum number of channels on this connection.frame_maxβ Maximum frame size (bytes).client_propertiesβ Informational properties transmitted by the client during connection establishment.sslβ Boolean indicating whether the connection is secured with SSL.ssl_protocolβ SSL protocol (e.g."tlsv1").ssl_key_exchangeβ SSL key exchange algorithm (e.g."rsa").ssl_cipherβ SSL cipher algorithm (e.g."aes_256_cbc").ssl_hashβ SSL hash function (e.g."sha").conn_nameβ Readable name for the connection.connection_stateβ Connection state; one of:startingrunningblocked
connectionβ Id of the Erlang process associated with the internal amqp direct connection.consumer_tagsβ A tuple of consumer tags for QOS0 and QOS1.message_idβ The last Packet ID sent in a control message.client_idβ MQTT client identifier for the connection.clean_sessβ MQTT clean session flag.will_msgβ MQTT Will message sent in CONNECT frame.exchangeβ Exchange to route MQTT messages configured inrabbitmq_mqttapplication environment.ssl_login_nameβ SSL peer cert auth nameretainer_pidβ Id of the Erlang process associated with retain storage for the connection.userβ Username associated with the connection.vhostβ Virtual host name with non-ASCII characters escaped as in C.
decommission_mqtt_node
Before the plugin is disabled on a node, or a node removed from the cluster, it must be decommissioned. π«‘
For example, this command will remove the node rabbit@stringer:
rabbitmqctl decommission_mqtt_node rabbit@stringer
π§ STOMP plugin
list_stomp_connections [stomp_connectioninfoitem]
Similar to the list_connections command, but returns fields that make sense for STOMP connections. The stomp_connectioninfoitem 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. stomp_connectioninfoitem can take any value from the list that follows:
conn_nameβ Readable name for the connection.connectionβ Id of the Erlang process associated with the internal amqp direct connection.connection_stateβ Connection state; one of:runningblockingblocked
session_idβ STOMP protocol session identifierchannelβ AMQP channel associated with the connectionversionβ Negotiated STOMP protocol version for the connection.implicit_connectβ Indicates if the connection was established using implicit connect (without CONNECT frame)auth_loginβ Effective username for the connection.auth_mechanismβ STOMP authorization mechanism. Can be one of:configsslstomp_headers
portβ Server port.hostβ Server hostname obtained via reverse DNS, or its IP address if reverse DNS failed or was not enabled.peer_portβ Peer port.peer_hostβ Peer hostname obtained via reverse DNS, or its IP address if reverse DNS failed or was not enabled.protocolβ STOMP protocol version, which can be one of the following:{'STOMP', 0}{'STOMP', 1}{'STOMP', 2}
channelsβ The number of channels using the connection.channel_maxβ Maximum number of channels on this connection.frame_maxβ Maximum frame size (bytes).client_propertiesβ Informational properties transmitted by the client during connectionsslβ Boolean indicating whether the connection is secured with SSL.ssl_protocolβ TLS protocol (e.g."tlsv1").ssl_key_exchangeβ TLS key exchange algorithm (e.g."rsa").ssl_cipherβ TLS cipher algorithm (e.g."aes_256_cbc").ssl_hashβ SSL hash function (e.g."sha").
π Management agent plugin
reset_stats_db [--all]
Reset the management stats database for the RabbitMQ node.
--allβ Reset the stats database for all nodes in the cluster.
π SEE ALSO π
rabbitmq-diagnostics(8)rabbitmq-plugins(8)rabbitmq-server(8)rabbitmq-queues(8)rabbitmq-streams(8)rabbitmq-upgrade(8)rabbitmq-service(8)rabbitmq-env.conf(5)
π AUTHOR π
The RabbitMQ Team <contact-tanzu-data.pdl@broadcom.com>
π That's the whole manual, bestie β from the RabbitMQ Server pages, dated June 22, 2023, filed under RABBITMQCTL(8). Periodt. π
π¦ where this page comes from
- alpine 3.24: rabbitmq-server-doc 4.3.7-r0 Β· MPL-2.0
- arch rolling: rabbitmq 4.3.6-1 Β· MPL-2.0
- nixpkgs unstable: rabbitmq-server 4.3.1
- ubuntu stonking: rabbitmq-server 4.3.2-4ubuntu3 Β· MPL-1.1
- Copyright (c) 2007-2026 Broadcom. All Rights Reserved. The term βBroadcomβ refers to Broadcom Inc. and/or its subsidiaries. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms