RabbitMQ supports a variety of plugins. This page documents the plugins that ship with vFabric RabbitMQ 3.1.5.
To enable plugins, use the rabbitmq-plugins tool:
rabbitmq-plugins enable plugin-name
And to disable plugins again, use:
rabbitmq-plugins disable plugin-name
You can see a list of which plugins are enabled with:
rabbitmq-plugins list
Enabling or disabling plugins has no effect on a running RabbitMQ server. You will need to (re)start RabbitMQ for the enabled plugins to be activated.
For more information on rabbitmq-plugins, consult the manual page.
Please note: the rabbitmq-plugins tool misreports the supported status of some of these plug-ins. In the case of a discrepancy, this page provides the authoritative record.
rabbitmq_auth_backend_ldap | Authentication / authorisation plugin using an external LDAP server. See the the page on the LDAP plugin for more information. |
|---|---|
rabbitmq_auth_mechanism_ssl | Authentication mechanism plugin using SASL EXTERNAL to authenticate using SSL client certificates. See the README for more information. |
rabbitmq_consistent_hash_exchange | Consistent hash exchange type. Please see the README for more information. |
rabbitmq_federation | Scalable publish / subscribe messaging across WANs and administrative domains. See the page on the federation plugin for more information. |
rabbitmq_federation_management | Shows federation status in the management API and UI. Only of use when using rabbitmq_federation in conjunction with rabbitmq_management. In a heterogenous cluster this should be installed on the same nodes as rabbitmq_management. |
rabbitmq_management | A management / monitoring API over HTTP, along with a browser-based UI. For more information, see the page on the management plugin. |
rabbitmq_management_agent | When installing the management plugin on some of the nodes in a cluster, you must install rabbitmq_management_agent on all of the nodes in the cluster. You can install the full management plugin on as many of the nodes as you want. |
rabbitmq_mqtt | An adapter implementing the MQTT 3.1 protocol. Please see the documentation and the RabbitMQ blog for more information on using it. |
rabbitmq_shovel | A plug-in for RabbitMQ that shovels messages from a queue on one broker to an exchange on another broker. Please see the page on the shovel plugin for more information or take a look at a working Shovel configuration. |
rabbitmq_shovel_management | Shows shovel status in the management API and UI. See the plugin README. Only of use when using rabbitmq_shovel in conjunction with rabbitmq_management. In a heterogenous cluster this should be installed on the same nodes as rabbitmq_management. |
rabbitmq_stomp | A gateway for exposing AMQP functionality via the STOMP protocol. (Some clients and servers supporting STOMP are listed here.) Please see the documentation and various blog articles about the adapter for more information on compiling and configuring it. |
Currently, all plugins below are not supported. This means we make no claims about their fitness for purpose or stability, though they are in general under active development.
rabbitmq_management_visualiser | Broker topology visualiser plugin which is itself a plugin to the management plugin. Adds a Visualiser tab to the management web interface, which then flexibly and interactively displays channels, queues and exchanges, and the links between them. |
|---|---|
rabbitmq_tracing | Adds message tracing to the management plugin. Logs messages from the firehose in a couple of formats. |
rabbitmq_jsonrpc_channel | An AMQP-over-HTTP protocol binding for RabbitMQ and some Javascript libraries for interacting with RabbitMQ over HTTP. |
rabbitmq_jsonrpc_channel_examples | Adds some example web applications to rabbitmq_jsonrpc_channel: a shared whiteboard, a chat application, and some tests. |
rabbitmq_web_stomp | A bridge exposing rabbitmq_stomp to web browsers using WebSockets, using the WebSockets emulation / compatibility layer SockJS. Please see the page on the web-stomp plugin. |
rabbitmq_web_stomp_examples | Adds some basic examples to rabbitmq_web_stomp: a simple "echo" service and a basic canvas-based collaboration tool. |
rabbitmq_amqp1_0 | An implementation of the AMQP 1.0 protocol. See the README for more details. |
Some plugins are also available from third party sources. Plugins will generally be available in two forms. The expected form for a packaged plugin will be a .ez erlang archive. Alternatively, more developmental plugins may be distributed directly from source control. Once you have one or more .ez archives for your plugins, you need to copy them to the plugins directiory.
The plugins directory location is determined by the RABBITMQ_PLUGINS_DIR variable. Its default value depends on how you installed RabbitMQ. Some common values are:
| Installation method | Plugins directory |
|---|---|
| Debian/RPM packages | /usr/lib/rabbitmq/lib/rabbitmq_server-version/plugins |
| Windows | Typically C:\Program Files\RabbitMQ\rabbitmq_server-version\plugins (depending on where it was installed) |
| Macports | ${install_prefix}/lib/rabbitmq/lib/rabbitmq_server-version/plugins (the Macports ${install_prefix} defaults to /opt/local) |
| Homebrew | /usr/local/Cellar/rabbitmq/version/lib/rabbitmq/erlang/lib/rabbitmq-version/plugins |
| Generic Unix | rabbitmq_server-version/plugins (depending on where it was installed) |
The variable's meaning has changed in 2.7.0: whereas it previously referred to the directory of installed plugins, it now refers to the directory with all available plugins. The rabbitmq-plugins tool can only enable plugins found in this directory.
The enabled plugins configuration is preserved between upgrades, so there is no need to re-enable plugins after an upgrade, but because the plugins directory changes between versions, any third party plugins will need to be copied to the new directory. It's very possible that due to API changes you may need to check for updates to third party plugins at this point.