[ %% ---------------------------------------------------------------------------- %% RabbitMQ Sample Configuration File %% ---------------------------------------------------------------------------- {rabbit, [%% %% Network Connectivity %% %% AMQP listen on ports {tcp_listeners, [5672, 5673]}, %% SSL (AMQP) listen on ports {ssl_listeners, [5674, 5675]}, %% SSL options {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, true}]}, %% Frame Max (in bytes) {frame_max, 131072}, %% Heartbeat delay (in seconds) {heartbeat, 600}, %% Socket options %% See (http://www.erlang.org/doc/man/inet.html#setopts-2) {tcp_listen_options, [binary, {packet, raw}, {reuseaddr, true}, {backlog, 128}, {nodelay, true}, {exit_on_close, false}]}, %% %% Security/AAA & Default VHost/User %% %% Set available auth mechanisms {auth_mechanisms, ['PLAIN', 'AMQPLAIN']}, %% To enable auth-mechanism-ssl %% {auth_mechanisms, ['EXTERNAL']}, %% Available authentication databases {auth_backends, [rabbit_auth_backend_internal]}, %% To enable the LDAP backend %% {auth_backends, [rabbit_auth_backend_ldap]}, %% Virtual host to create on first start {default_vhost, <<"/">>}, %% User name to create on first start {default_user, <<"guest">>}, %% Password for default user {default_pass, <<"guest">>}, %% Tags for default user {default_user_tags, [administrator]}, %% Permissions for default user {default_permissions, [<<".*">>, <<".*">>, <<".*">>]}, %% %% Resource Limits & Flow Control %% %% Memory-based Flow Control threshold {vm_memory_high_watermark, 0.4}, %% Disk free limits (set in bytes) {disk_free_limit, 1000000000}, %% Disk free limits (relative to total RAM) {disk_free_limit, {mem_relative, 1.0}}, %% Log levels {log_levels, [{connection, info}]}, %% %% Misc/Advanced Options: %% %% NB: Change these only if you understand what you're doing! %% %% How to respond to cluster partitions {cluster_partition_handling, ignore}, %% Make clustering happen *automatically* {cluster_nodes, {['rabbit@my.host.com'], disc}}, %% Set (internal) statistics granularity {collect_statistics, none}, %% Statistics collection interval (in milliseconds) {collect_statistics_interval, 5000}, %% Override file handle limits {file_handles_high_watermark, 10000000}, %% Explicitly enable/disable hipe compilation {hipe_compile, true}, %% Override the number of delegate processes in use {delegate_count, 16}m %% Implementation module for queue indexing {msg_store_index_module, rabbit_msg_store_ets_index}, %% Implementation module for queue content handling {backing_queue_module, rabbit_variable_queue}, %% Tunes the maximum (individual) file size limit for %% the broker's persistent message store. WARNING you %% should almost certainly not need to change this {msg_store_file_size_limit, 16777216}, %% Tunes the maximum number of journal entries for %% the broker's persistent message store. WARNING: %% you should almost certainly not need to change this {queue_index_max_journal_entries, 65536} ]}, %% ---------------------------------------------------------------------------- %% RabbiMQ Management Plugin %% %% See http://www.rabbitmq.com/management.html for details %% ---------------------------------------------------------------------------- {rabbitmq_management, [%% Pre-Load schema definitions from the following JSON file {load_definitions, "/path/to/schema.json"}, %% Log HTTP requests to a file {http_log_dir, "/path/to/access.log"}, %% Change the port on which the HTTP listener listens, %% specify an interface for the web server to bind to. %% Also set the listener to use SSL {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"}]}]}, %% Sample retention policies {sample_retention_policies, [{global, [{60, 5}, {3600, 60}, {86400, 1200}]}, {basic, [{60, 5}, {3600, 60}]}, {detailed, [{10, 5}]}]} ]}, {rabbitmq_management_agent [%% Force fine-grained statistics {force_fine_statistics, true}]}, %% ---------------------------------------------------------------------------- %% RabbiMQ Shovel Plugin %% %% See http://www.rabbitmq.com/shovel.html for details %% ---------------------------------------------------------------------------- {rabbitmq_shovel, [{shovels, [{my_first_shovel, [{sources, %% Setting SSL Options via the connection string [{brokers, ["amqps://username:password@host:port/vhost?" "cacertfile=/path/to/cacert.pem" "&certfile=/path/to/certfile.pem" "&keyfile=/path/to/keyfile.pem" "&verify=verify_peer" "&fail_if_no_peer_cert=true", %% Tuning connection via the connection string "amqp://john:secret@host2.domain/my_vhost" "?heartbeat=5&frame_max=8192" ]}, {declarations, [ {'exchange.declare', [{exchange, <<"my_fanout">>}, {type, <<"fanout">>}, durable]}, {'queue.declare', [{arguments, [{<<"x-message-ttl">>, long, 60000}]}]}, {'queue.bind', [{exchange, <<"my_direct">>}, {queue,<<>>}]} ]} ]}, {destinations, [{broker, "amqp://"}, {declarations, [{'exchange.declare', [{exchange, <<"my_direct">>}, {type, <<"direct">>}, durable]}]} ]}, {queue, <<>>}, {prefetch_count, 10}, {ack_mode, on_confirm}, {publish_properties, [{delivery_mode, 2}]}, {publish_fields, [{exchange, <<"my_direct">>}, {routing_key, <<"from_shovel">>}]}, {reconnect_delay, 2.5} ]} ]}]}, %% ---------------------------------------------------------------------------- %% RabbiMQ Stomp Adapter %% %% See http://www.rabbitmq.com/stomp.html for details %% ---------------------------------------------------------------------------- {rabbitmq_stomp, [%% Listen only on localhost (ipv4 & ipv6) on port 61613 {tcp_listeners, [{"127.0.0.1", 61612}, {"::1", 61612}]}, %% Listen for SSL connections on 61613 {ssl_listeners, [61613]}, %% Extract name from client's certificate when using SSL {ssl_cert_login, true}, %% Use cn instead of dn when reading from the SSL cert %% , {ssl_cert_login_from, common_name} %% Set a default user and password {default_user, [{login, "guest"}, {passcode, "guest"}]} ]}, %% ---------------------------------------------------------------------------- %% RabbiMQ MQTT Adapter %% %% See http://hg.rabbitmq.com/rabbitmq-mqtt/file/stable/README.md for details %% ---------------------------------------------------------------------------- {rabbitmq_mqtt, [{default_user, <<"guest">>}, {default_pass, <<"guest">>}, {allow_anonymous, true}, {vhost, <<"/">>}, {exchange, <<"amq.topic">>}, {subscription_ttl, 1800000}, {prefetch, 10}, {ssl_listeners, []}, {tcp_listeners, [1883]}, {tcp_listen_options, [binary, {packet, raw}, {reuseaddr, true}, {backlog, 128}, {nodelay, true}]}]}, %% ---------------------------------------------------------------------------- %% RabbiMQ AMQP 1.0 Support %% %% See http://hg.rabbitmq.com/rabbitmq-amqp1.0/file/default/README.md %% for details %% ---------------------------------------------------------------------------- {rabbitmq_amqp1_0, [{default_user, "guest"}, {protocol_strict_mode, false}]}, %% ---------------------------------------------------------------------------- %% RabbitMQ LDAP Plugin %% %% See http://www.rabbitmq.com/ldap.html for details. %% %% ---------------------------------------------------------------------------- {rabbitmq_auth_backend_ldap, [{servers, ["my-ldap-server"]}, {user_dn_pattern, "cn=${username},ou=People,dc=example,dc=com"}, {use_ssl, false}, {port, 389}, {log, false}, {vhost_access_query, {in_group "ou=${vhost}-users,ou=vhosts,dc=example,dc=com"}}, {resource_access_query, {for, [{permission, configure, {in_group, "cn=admin,dc=example,dc=com"}}, {permission, write, {for, [{resource, queue, {in_group, "cn=admin,dc=example,dc=com"}}, {resource, exchange, {constant, true}}]}}, {permission, read, {for, [{resource, exchange, {in_group, "cn=admin,dc=example,dc=com"}}, {resource, queue, {constant, true}}]}} ] }}, {tag_queries, [{administrator, {constant, false}}, {management, {constant, true}}]} ] }, %% ---------------------------------------------------------------------------- %% Lager Logging Support %% %% See https://github.com/basho/lager for specific configuration. %% %% ---------------------------------------------------------------------------- {lager, [{handlers, [{lager_console_backend, info}, {lager_file_backend, [%% Location of the error log {"/var/log/rabbitmq/error.log", error, 10485760, "$D0", 5}, %% Location of the info log {"/var/log/rabbitmq/console.log", info, 10485760, "$D0", 5} ]} ]} ]} ].