RABBITMQ-PLUGINS(8)

πŸ’– NAME πŸ’–

rabbitmq-plugins β€” the command line tool for managing RabbitMQ plugins. That's it, that's the name, periodt. ✨

So you're reading the rabbitmq-plugins(8) page from the System Manager's Manual, and bestie, we're gonna get you fluent in it.


✨ SYNOPSIS ✨

rabbitmq-plugins [-q] [-s] [-l] [-n node] [-t timeout] command
                 [command_options]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so, rabbitmq-plugins is a command line tool for managing RabbitMQ plugins. If you want the big-picture overview of what RabbitMQ plugins even are and how people use them, go read the RabbitMQ Plugins guide: https://www.rabbitmq.com/docs/plugins β€” it's giving required reading, ngl.

What does rabbitmq-plugins actually let you do? It lets the operator enable, disable and inspect plugins. Huge. But heads up: it must be run by a user with write permissions to the RabbitMQ configuration directory. No write perms, no vibes. πŸ™ˆ

Now the part that's lowkey the smartest thing ever: plugins can depend on other plugins. rabbitmq-plugins resolves those dependencies and enables or disables all of them, so you, the user, don't have to manage them explicitly. Iconic behaviour, honestly.

  • Plugins listed on the rabbitmq-plugins command line are marked as explicitly enabled.
  • Dependent plugins are marked as implicitly enabled.
  • Implicitly enabled plugins are automatically disabled again when they are no longer required. Self-cleaning queen. πŸ‘‘

The enable, disable, and set commands will update the plugins file and then attempt to connect to the broker and ensure it is running all enabled plugins. By default, if it is not possible to connect to and authenticate with the target node (for example if it is stopped), the operation will fail. 😭

If rabbitmq-plugins is used on the same host as the target node, you can pass --offline to make rabbitmq-plugins resolve and update plugin state directly, without contacting the node. Such changes will only have an effect on next node start. To learn more, see the RabbitMQ Plugins guide: https://www.rabbitmq.com/docs/plugins

🫢 Little vibe check: offline changes are basically a note you leave on the fridge. Nothing happens until the node wakes up and reads it.

πŸŽ€ OPTIONS πŸŽ€

  • -n node β€” Default node is "rabbit@target-hostname", where target-hostname is the local host. On a host named "myserver.example.com", the node name will usually be "rabbit@myserver" (unless RABBITMQ_NODENAME has been overridden). The output of "hostname -s" is usually the correct suffix to use after the "@" sign. See rabbitmq-server(8) for details of configuring a RabbitMQ node.
  • -q, --quiet β€” Quiet output mode is selected. Informational messages are reduced when quiet mode is in effect. Chill energy, less yapping. 🀫
  • -s, --silent β€” Silent output mode is selected. Informational messages are reduced and table headers are suppressed when silent mode is in effect. Even quieter bestie. πŸ’œ
  • -t timeout, --timeout timeout β€” Operation timeout in seconds. Not all commands support timeouts. Default is infinity. Yes, actually infinity, we're patient like that. ⭐
  • -l, --longnames β€” Must be specified when the cluster is configured to use long (FQDN) node names. To learn more, see the RabbitMQ Clustering guide: https://www.rabbitmq.com/docs/clustering
  • --erlang-cookie cookie β€” Shared secret to use to authenticate to the target node. Prefer using a local file or the RABBITMQ_ERLANG_COOKIE environment variable instead of specifying this option on the command line. To learn more, see the RabbitMQ CLI Tools guide: https://www.rabbitmq.com/docs/cli
πŸ”₯ Real talk: putting your cookie right there on the command line means it can end up in your shell history. Use the file or the env var, babe. Safety is a look.

πŸ‘‘ COMMANDS πŸ‘‘

πŸ“‹ list [-Eemv] [pattern]

  • -E β€” Show only explicitly enabled plugins.
  • -e β€” Show only explicitly or implicitly enabled plugins.
  • -m β€” Show only plugin names (minimal).
  • -v β€” Show all plugin details (verbose).
  • pattern β€” Pattern to filter the plugin names by.

Lists all plugins, their versions, dependencies and descriptions. Each plugin is prefixed with two status indicator characters inside [ ].

The first indicator can be:

  • <space> β€” to indicate that the plugin is not enabled
  • E β€” to indicate that it is explicitly enabled
  • e β€” to indicate that it is implicitly enabled
  • (the man page shows a blank character here) β€” to indicate that it is enabled but missing and thus not operational

The second indicator can be:

  • <space> β€” to show that the plugin is not running
  • * β€” to show that it is

If the optional pattern is given, only plugins whose name matches pattern are shown. Filtering queen. 🌸

For example, this command lists all plugins, on one line each

rabbitmq-plugins list

This command lists all plugins:

rabbitmq-plugins list -v

This command lists all plugins whose name contains "management".

rabbitmq-plugins list -v management

This command lists all implicitly or explicitly enabled RabbitMQ plugins.

rabbitmq-plugins list -e rabbit

βœ… enable [--offline] [--online] plugin ...

  • --offline β€” Modify node's enabled plugin state directly without contacting the node.
  • --online β€” Treat a failure to connect to the running broker as fatal.
  • plugin β€” One or more plugins to enable separated by a space.

Enables the specified plugins and all their dependencies. Package deal, no cap. πŸ’…

For example, this command enables the "shovel" and "management" plugins and all their dependencies:

rabbitmq-plugins enable rabbitmq_shovel
rabbitmq_management

🚫 disable [--offline] [--online] plugin ...

  • --offline β€” Modify node's enabled plugin state directly without contacting the node.
  • --online β€” Treat a failure to connect to the running broker as fatal.
  • plugin β€” One or more plugins to disable separated by a space.

Disables the specified plugins and all their dependencies.

For example, this command disables "rabbitmq_management" and all plugins that depend on it:

rabbitmq-plugins disable rabbitmq_management

πŸ”„ set [--offline] [--online] [plugin ...]

  • --offline β€” Modify node's enabled plugin state directly without contacting the node.
  • --online β€” Treat a failure to connect to the running broker as fatal.
  • plugin β€” Zero or more plugins to enable separated by a space.

Enables the specified plugins and all their dependencies. Unlike enable, this command ignores and overwrites any existing enabled plugins. It's the "new phone, who dis" of plugin management. 😌 set with no plugin arguments is a legal command meaning "disable all plugins".

For example, this command enables the "management" plugin and its dependencies and disables everything else:

rabbitmq-plugins set rabbitmq_management

🌈 SEE ALSO 🌈

rabbitmqctl(8), rabbitmq-diagnostics(8), rabbitmq-server(8), rabbitmq-queues(8), rabbitmq-streams(8), rabbitmq-upgrade(8), rabbitmq-service(8), rabbitmq-env.conf(5)

Go read those too, bestie, they're all in the fam. 🧚


πŸ’œ AUTHOR πŸ’œ

The RabbitMQ Team <contact-tanzu-data.pdl@broadcom.com>


And that's the whole page, you ate it. πŸ“ This one's from RabbitMQ Server, dated June 22, 2023 β€” go forth and manage those plugins, main character. ✨🫢

πŸ“¦ where this page comes from