RabbitMQ - Unable to find rabbitmq.conf file

0

1

I am using RabbitMQ 3.7.7 and performed the below steps in installation on Windows Server 2012 R2 Standard:

  1. Install Erlang OTO 21 (10.0.1) with default selections in the wizard, without making any changes in wizard.
  2. Install RabbitMQ 3.7.7 with default selections in the wizard, without making any changes in wizard.
  3. During the installation process, I have not created any environment variables etc.
  4. On completion of Erlang & RabbitMQ installation, RabbitMQ service is up & by default, the log is being created under the path \AppData\Roaming\RabbitMQ\log . Currently we can see too many ‘INFO’ entries in this log & the log is getting filled too soon which will unnecessarily eat up the disk space at a pace of almost 500 MB per day, leading to other problems over a period of few days. We are interested that only ‘Error’ are logged in the log file & that ‘Info’ shall not be logged.
  5. From Run -> services.msc, stop the RabbitMQ service.
  6. The log file mentions the path of config files as follows:
    config file(s) : c:/Users/MANPRE~1.SIN/AppData/Roaming/RabbitMQ/advanced.config
    : c:/Users/MANPRE~1.SIN/AppData/Roaming/RabbitMQ/rabbitmq.conf

As I am not able to find the rabbitmq.conf file under the folder \AppData\Roaming\RabbitMQ, I would have rather expected the entry in log for config as 'rabbitmq.conf not found', but no such entry is there in the log.

  1. However, I am able to find rabbitmq.config.example file under the same path. I uncomment the code & remove the comments from the file and save the file as below:

''' [
{rabbit, [{tcp_listeners, [5672]},
{tcp_listeners, [{"127.0.0.1", 5672},
{"::1", 5672}]},
{ssl_listeners, [5671]},
{num_tcp_acceptors, 10},
{num_ssl_acceptors, 1},
{handshake_timeout, 10000},
{reverse_dns_lookups, false},
{loopback_users, [<<"guest">>]},
{loopback_users, []},
{ssl_options, [{cacertfile, "/path/to/testca/cacert.pem"},
{certfile, "/path/to/server/cert.pem"},
{keyfile, "/path/to/server/key.pem"},
{verify, verify_peer},
{fail_if_no_peer_cert, false}]},
{auth_mechanisms, ['PLAIN', 'AMQPLAIN']},
{auth_backends, [rabbit_auth_backend_internal]},
{auth_mechanisms, ['EXTERNAL']},
{auth_backends, [rabbit_auth_backend_ldap]},
{ssl_cert_login_from, distinguished_name},
{ssl_handshake_timeout, 5000},
{ssl_allow_poodle_attack, false},
{password_hashing_module, rabbit_password_hashing_sha256},
{config_entry_decoder, [{passphrase, <<"mypassphrase">>}]}
{config_entry_decoder, [{passphrase, {file, "/path/to/passphrase/file"}}]}
{config_entry_decoder, [{passphrase, prompt}]}
{config_entry_decoder, [{cipher, aes_cbc256},
{hash, sha512},
{iterations, 1000}]}
{default_vhost, <<"/">>},
{default_user, <<"guest">>},
{default_pass, <<"guest">>},
{default_permissions, [<<".">>, <<".">>, <<".*">>]},
{default_user_tags, [administrator]},
{heartbeat, 60},
{frame_max, 131072},
{initial_frame_max, 4096},
{channel_max, 0},
{connection_max, infinity},
{tcp_listen_options, [{backlog, 128},
{nodelay, true},
{exit_on_close, false}]},
{vm_memory_high_watermark, 0.4},
{vm_memory_high_watermark, {absolute, 1073741824}},
{vm_memory_high_watermark, {absolute, "1024M"}},
{vm_memory_high_watermark_paging_ratio, 0.5},
{vm_memory_calculation_strategy, rss},
{memory_monitor_interval, 2500},
{total_memory_available_override_value, "5000MB"},
{disk_free_limit, 50000000},
{disk_free_limit, "50MB"},
{disk_free_limit, "50000kB"},
{disk_free_limit, "2GB"},
{disk_free_limit, {mem_relative, 2.0}},
{queue_master_locator, <<"client-local">>},
{mirroring_sync_batch_size, 4096},
{mirroring_flow_control, true},
{server_properties, []},
{cluster_partition_handling, ignore},
{mirroring_sync_batch_size, 4096},
{cluster_nodes, {['rabbit@my.host.com'], disc}},
{cluster_keepalive_interval, 10000},
{collect_statistics, none},
{collect_statistics_interval, 5000},
{trace_vhosts, []},
{hipe_compile, false},
{delegate_count, 16},
{mnesia_table_loading_retry_limit, 10},
{mnesia_table_loading_retry_timeout, 30000},
{queue_index_embed_msgs_below, 4096},
{queue_index_max_journal_entries, 32768},
{msg_store_credit_disc_bound, {4000, 800}},
{msg_store_io_batch_size, 4096},
{credit_flow_default_credit, {400, 200}},
{channel_operation_timeout, 15000},
{queue_explicit_gc_run_operation_threshold, 1000},
{lazy_queue_explicit_gc_run_operation_threshold, 1000},
{disk_monitor_failure_retries, 10},
{disk_monitor_failure_retry_interval, 120000},
{background_gc_enabled, false},
{background_gc_target_interval, 60000},
{msg_store_file_size_limit, 16777216},
{fhc_write_buffering, true},
{fhc_read_buffering, false}
]},
{kernel, [{net_ticktime, 60}]},
{rabbitmq_management, [ {load_definitions, "/path/to/exported/definitions.json"},
{http_log_dir, "/path/to/rabbitmq/logs/http"},
{listener, [{port, 12345},
{ip, "127.0.0.1"},
{ssl, true},
{ssl_opts, [{cacertfile, "/path/to/cacert.pem"},
{certfile, "/path/to/cert.pem"},
{keyfile, "/path/to/key.pem"}]}]},
{rates_mode, basic},
{sample_retention_policies,
[{global, [{60, 5}, {3600, 60}, {86400, 1200}]},
{basic, [{60, 5}, {3600, 60}]},
{detailed, [{10, 5}]}]}
]},
{rabbitmq_shovel,
[{shovels,
[{my_first_shovel,
[{sources, [{brokers, ["amqp://user:password@host.domain/my_vhost"]},{declarations, []}]}, {destinations, [{broker, "amqp://"},{declarations, []}]},
{queue, <<"your-queue-name-goes-here">>},
{prefetch_count, 10},
{ack_mode, on_confirm},
{publish_fields, [{exchange, <<"my_exchange">>},
{routing_key, <<"from_shovel">>}]},
{publish_properties, [{delivery_mode, 2}]},
{reconnect_delay, 2.5}
]}
]}
{defaults, [{prefetch_count, 0},
{ack_mode, on_confirm},
{publish_fields, []},
{publish_properties, [{delivery_mode, 2}]},
{reconnect_delay, 2.5}]}
]},

{rabbitmq_stomp,
[
{tcp_listeners, [{"127.0.0.1", 61613},
{"::1", 61613}]},
{ssl_listeners, [61614]},
{num_tcp_acceptors, 10},
{num_ssl_acceptors, 1},
{ssl_cert_login, true},
{default_user,
[{login, "guest"},
{passcode, "guest"}]},
{implicit_connect, true},
{proxy_protocol, false}
]
},

{rabbitmq_mqtt,
[
{default_user, <<"guest">>},
{default_pass, <<"guest">>},
{allow_anonymous, true},
{vhost, <<"/">>},
{exchange, <<"amq.topic">>},
{subscription_ttl, 1800000},
{prefetch, 10},
{tcp_listeners, [1883]},
{ssl_listeners, []},
{num_tcp_acceptors, 10},
{num_ssl_acceptors, 1},
{tcp_listen_options, [
{backlog, 128},
{linger, {true, 0}},
{exit_on_close, false}
]},
{proxy_protocol, false}
]},

{rabbitmq_amqp1_0,
[
{default_user, "guest"},
{protocol_strict_mode, false}
]},

{rabbitmq_auth_backend_ldap,
[
{servers, ["your-server-name-goes-here"]},
{use_ssl, false},
{port, 389},
{timeout, infinity},
{log, false},
{user_dn_pattern, "cn=${username},ou=People,dc=example,dc=com"},
{dn_lookup_attribute, "userPrincipalName"},
{dn_lookup_base, "DC=gopivotal,DC=com"},
{other_bind, as_user},
{vhost_access_query, {in_group,"ou=${vhost}- users,ou=vhosts,dc=example,dc=com"}}, {resource_access_query, {constant, true}},
{tag_queries, []}
]},

{lager, [
{log_root, "/var/log/rabbitmq"},
{handlers, [
{lager_file_backend, [{file, "rabbit.log"},
{level, info},
{date, ""},
{size, 0}]}
]},
{extra_sinks, [ {rabbit_log_lager_event,[{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]},
{rabbit_channel_lager_event, [{handlers,[{lager_forwarder_backend,[lager_event, info]}]}]},
{rabbit_conection_lager_event, [{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]},
{rabbit_mirroring_lager_event, [{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]}
]}
]}
].
'''

  1. Rename the file RabbitMQ.config.example to rabbitmq.conf
  2. Open RabbitMQ command prompt, & execute the command rabbitmq-plugins enable rabbitmq_management
  3. From Run -> services.msc, start the RabbitMQ service.
  4. Restart the server.
  5. After this though logging stops happening, not because the above changes worked, but because RabbitMQ stops working.

It is confirmed that RabbitMQ is not working as the URL http://localhost:15672/ fails to launch, which was launching fine earlier by default installation, instead it gives starts giving a proxy & firewall error.

  1. Some online blog suggested to remove what is not required from the .conf file, so I changed the file to just this:

[
{lager, [
{log_root, "/var/log/rabbitmq"},
{handlers, [
{lager_file_backend, [{file, "rabbit.log"},
{level, info},
{date, ""},
{size, 0}]}
]},
{extra_sinks, [ {rabbit_log_lager_event,[{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]},
{rabbit_channel_lager_event, [{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]},
{rabbit_conection_lager_event, [{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]},
{rabbit_mirroring_lager_event, [{handlers, [{lager_forwarder_backend,[lager_event, info]}]}]}
]}
]}
].

After performing the above, I executed the RabbitMQ command 'rabbitmq-plugins' enable 'rabbitmq_management' & restarted the server & rabbitmq service, still the login page for RabbitMQ 'http://localhost:15672/' could not be opened.

  1. Some other blog suggested to keep the .conf file as:

[ {rabbit, [{log_levels,[{connection, error}]}]} ].

After performing the above, I executed the RabbitMQ command 'rabbitmq-plugins' enable 'rabbitmq_management' & restarted the server & rabbitmq service, still the login page for RabbitMQ 'http://localhost:15672/' could not be opened.

I have gone through several blogs & forums, but have not been able to identify where I am going wrong. I deeply suspect that something is wrong the moment I renamed my config file to '.conf', because then the RabbitMQ stopped working.

I will appreciate if you are able to point out where am I going wrong, or could guide me to be able to find the .conf file.

Manpreet Singh

Posted 2019-08-19T14:06:43.717

Reputation: 1

Answers

0

Earlier also I came across some links asking to add the lines in .conf file:
log.file.level = error
log.connection.level = error
log.channel.level = error

But I was not able to figure out where exactly, under which section will it fit into the .conf file.

I again gave it a try by clearing the content of .conf file & simply keeping these 3 lines in the .conf file:
log.file.level = error
log.connection.level = error
log.channel.level = error

And it worked..

You can set the Log Levels as per your requirement.
& can refer here & here for more.

So, the RabbitMQ.conf file was there at path - \AppData\Roaming\RabbitMQ only, the only thing is that the format of .conf file was in an outdated format which was not working. After correcting the format, it is working.

Manpreet Singh

Posted 2019-08-19T14:06:43.717

Reputation: 1

I had a similar problem on Windows. If the rabbitmq.conf file doesn't exist, you can create it manually side-by-side with the advanced.config file. But in order for RMQ to recognize it, you must re-install the service:

rabbitmq-service.bat remove  
rabbitmq-service.bat install
rabbitmq-service.bat start
rabbitmqctl.bat start_app
rabbitmqctl status (to confirm that both Config files were recognized)
 – Lee Grissom  – 2020-01-17T02:59:24.400