RabbitMQ
Troubleshooting
Software Installation
Configuration Files
Tech Support

Why can't I find the 'rabbitmq.config' file while I have already installed RabbitMQ?

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

Introduction

If you installed RabbitMQ and cannot find rabbitmq.config, the most likely reason is that modern RabbitMQ uses rabbitmq.conf instead. The old rabbitmq.config file belongs to the legacy Erlang-term configuration format. Current RabbitMQ installations usually start with defaults and do not create the old file for you unless you explicitly choose that format.

RabbitMQ Has Two Configuration Styles

Historically, RabbitMQ used rabbitmq.config, which is written in Erlang terms. Modern RabbitMQ documentation recommends rabbitmq.conf, a simpler sysctl-style format.

A minimal rabbitmq.conf looks like this:

ini
1listeners.tcp.default = 5672
2management.tcp.port = 15672
3default_user = myuser
4default_pass = s3cret

That is the file most administrators should expect to create or edit today.

There is also advanced.config for settings that still need Erlang-term syntax. So if you were searching for the old filename because of an outdated blog post, that is likely the mismatch.

Why the File May Not Exist at All

RabbitMQ can run entirely with built-in defaults. Installation does not necessarily create a config file automatically.

That means this is normal:

  • RabbitMQ is installed
  • the service starts correctly
  • no rabbitmq.config file exists

In that case, there is nothing missing. You simply have not created a custom config yet.

Where to Look

Exact locations depend on the platform and packaging, but the common Linux path is under /etc/rabbitmq/.

Typical commands to inspect the setup:

bash
rabbitmq-diagnostics environment
ls /etc/rabbitmq

rabbitmq-diagnostics environment is especially useful because it shows which config files RabbitMQ is actually using, rather than forcing you to guess based on filesystem conventions.

When You Still Need rabbitmq.config

Most users do not. The legacy rabbitmq.config file is mainly relevant when you are maintaining older installations or working with settings that were documented in older Erlang-term examples.

If you copy old snippets from the internet, check whether the modern equivalent belongs in rabbitmq.conf or in advanced.config instead. Mixing formats blindly creates confusing startup behavior.

A Practical Modern Workflow

For a normal installation, do this:

  1. check which config files RabbitMQ reports through diagnostics
  2. create /etc/rabbitmq/rabbitmq.conf if you need custom settings
  3. use advanced.config only for advanced Erlang-term settings that are not available in the simpler format
  4. restart RabbitMQ after changes

Example:

bash
1sudo mkdir -p /etc/rabbitmq
2sudo sh -c 'cat > /etc/rabbitmq/rabbitmq.conf <<EOF
3listeners.tcp.default = 5672
4management.tcp.port = 15672
5EOF'
6sudo systemctl restart rabbitmq-server

Then verify with diagnostics again.

Docker and Package Variants Can Change the Experience

If you are running RabbitMQ in Docker, a container image may prefer environment variables, mounted config files, or image-specific defaults. Similarly, OS packages and Homebrew-style installs can place files differently.

That is why the diagnostic command is better than relying on a guessed path. The same RabbitMQ version may be installed through different packaging systems, but the runtime environment will tell you what it actually loaded.

Common Pitfalls

The biggest mistake is following an old tutorial that assumes rabbitmq.config is still the primary configuration file.

Another mistake is assuming RabbitMQ is broken because no config file was created automatically. Running with defaults is valid.

A third issue is editing one config format while RabbitMQ is actually reading another file or path.

Summary

  • Modern RabbitMQ usually uses rabbitmq.conf, not rabbitmq.config
  • The old rabbitmq.config file belongs to the legacy Erlang-term format
  • RabbitMQ does not need a config file to exist if defaults are sufficient
  • Use rabbitmq-diagnostics environment to see the actual active configuration paths
  • Create rabbitmq.conf for normal configuration and use advanced.config only when necessary

Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design