Search code examples
rabbitmqrabbitmqctl

RabbitMQ tools: rabbitmqctl vs rabbitmqadmin


I'm new to RabbitMQ and I decided to start with console tools for better management understanding. Then I'm going to use web console and then Java client.

I faced some operations can be executed both with rabbitmqctl:

rabbitmqctl add_vhost test_vhost

and with rabbitmqadmin:

rabbitmqadmin declare vhost name="test_vhost"

But I did not succeed in, for instance, creating new exchange with rabbitmqctl. What's the difference between these two tools?


Solution

    • rabbitmqctl is native command line tool written in Erlang, in general, it is used inside the same server where RabbitMQ is running.

    • rabbitmqadmin is a Python interface for the HTTP management UI. You cannot use it if management UI plugin is not installed.

    There is an overlap between the two tools, but there are a few features that you can use only with one of them.

    With rabbitmqctl you can:

    • manage the rabbitmq clustuer, by adding/removing nodes.
    • reset the node
    • handle logs files rotation
    • stop the node

    rabbitmqadmin is more for general admin, you have the same features you have in the management UI, you can also retrieve the node statistics.