
Ich verwende RabbitMQ 3.7.7 und habe bei der Installation auf Windows Server 2012 R2 Standard die folgenden Schritte ausgeführt:
- Installieren Sie Erlang OTO 21 (10.0.1) mit den Standardauswahlen im Assistenten, ohne Änderungen im Assistenten vorzunehmen.
- Installieren Sie RabbitMQ 3.7.7 mit den Standardauswahlen im Assistenten, ohne im Assistenten Änderungen vorzunehmen.
- Während des Installationsvorgangs habe ich keine Umgebungsvariablen usw. erstellt.
- Nach Abschluss der Installation von Erlang und RabbitMQ ist der RabbitMQ-Dienst aktiv und standardmäßig wird das Protokoll unter dem Pfad erstellt
\AppData\Roaming\RabbitMQ\log
. Derzeit sehen wir zu viele „INFO“-Einträge in diesem Protokoll und das Protokoll wird zu schnell gefüllt, was unnötigerweise fast 500 MB Speicherplatz pro Tag verbraucht und über einen Zeitraum von einigen Tagen zu anderen Problemen führt. Wir möchten, dass nur „Fehler“ in der Protokolldatei protokolliert werden und „Info“ nicht protokolliert wird. - Stoppen Sie den RabbitMQ-Dienst unter „Ausführen -> services.msc“.
- In der Protokolldatei wird der Pfad der Konfigurationsdateien wie folgt angegeben:
Konfigurationsdatei(en): c:/Users/MANPRE~1.SIN/AppData/Roaming/RabbitMQ/advanced.config
: c:/Users/MANPRE~1.SIN/AppData/Roaming/RabbitMQ/rabbitmq.conf
Da ich die Datei rabbitmq.conf im Ordner nicht finden kann \AppData\Roaming\RabbitMQ
, hätte ich im Konfigurationsprotokoll eher den Eintrag „rabbitmq.conf nicht gefunden“ erwartet, aber im Protokoll gibt es keinen solchen Eintrag.
- Ich kann
rabbitmq.config.example
die Datei jedoch unter demselben Pfad finden. Ich entferne die Kommentare aus dem Code und speichere die Datei wie folgt:
''' [
{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, "/Pfad/zu/testca/cacert.pem"},
{certfile, "/Pfad/zu/server/cert.pem"},
{keyfile, "/Pfad/zu/server/key.pem"},
{überprüfen, secure_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, distinct_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, "/Pfad/zur/Passphrase/Datei"}}]}
{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, unendlich},
{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, {['[email geschützt]'], 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, "/Pfad/zu/exportiert/definitionen.json"},
{http_log_dir, "/Pfad/zu/rabbitmq/logs/http"},
{listener, [{port, 12345},
{ip, "127.0.0.1"},
{ssl, true},
{ssl_opts, [{cacertfile, "/Pfad/zu/cacert.pem"},
{certfile, "/Pfad/zu/cert.pem"},
{keyfile, "/Pfad/zu/key.pem"}]}]},
{rates_mode, basic},
{sample_retention_policies,
[{global, [{60, 5}, {3600, 60}, {86400, 1200}]},
{basic, [{60, 5}, {3600, 60}]},
{detailliert, [{10, 5}]}]} ]
},
{rabbitmq_shovel,
[{Schaufeln,
[{meine_erste_Schaufel,
[{Quellen, [{Broker, ["amqp://user:[email geschützt]/my_vhost"]}, {Erklärungen, []}]}, {Ziele, [{Broker, "amqp://"}, {Erklärungen, []}]},
{Warteschlange, <<"hier-kommt-Ihr-Warteschlangenname">>},
{Prefetch_Count, 10},
{Ack_Mode, bei_Bestätigung},
{Veröffentlichungsfelder, [{Austausch, <<"my_exchange">>},
{Routing_Key, <<"from_shovel">>}]},
{Veröffentlichungseigenschaften, [{Zustellungsmodus, 2}]},
{Wiederherstellungsverzögerung, 2,5}
]}
]}
{Standardwerte, [{Prefetch_Count, 0},
{Ack_Mode, bei_Bestätigung},
{Veröffentlichungsfelder, []},
{Veröffentlichungseigenschaften, [{Zustellungsmodus, 2}]},
{Wiederherstellungsverzögerung, 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, ["hier-steht-Ihr-Servername"]},
{use_ssl, false},
{port, 389},
{timeout, unendlich},
{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"},
{Handler, [
{Lager_file_backend, [{Datei, "rabbit.log"},
{Level, Info},
{Datum, ""},
{Größe, 0}]}
]},
{Extrasinks, [ {Rabbit_log_Lager_event,[{Handler, [{Lager_forwarder_backend,[Lager_event, Info]}]}]},
{Rabbit_channel_Lager_event, [{Handler,[{Lager_forwarder_backend,[Lager_event, Info]}]}]},
{Rabbit_conection_Lager_event, [{Handler, [{Lager_forwarder_backend,[Lager_event, Info]}]}]},
{Rabbit_mirroring_Lager_event, [{Handler, [{Lager_forwarder_backend,[Lager_event, Info]}]}]} ]
}
]}
].
'''
- Benennen Sie die Datei RabbitMQ.config.example um in
rabbitmq.conf
- Öffnen Sie die RabbitMQ-Eingabeaufforderung und führen Sie den Befehl „
rabbitmq-plugins
enable“ aus.rabbitmq_management
- Starten Sie den RabbitMQ-Dienst unter „Ausführen -> services.msc“.
- Starten Sie den Server neu.
- Danach wird die Protokollierung jedoch beendet, nicht weil die oben genannten Änderungen funktioniert haben, sondern weil RabbitMQ nicht mehr funktioniert.
Es wurde bestätigt, dass RabbitMQ nicht funktioniert, da der http://localhost:15672/
Start der URL fehlschlägt. Der Start funktionierte zuvor bei der Standardinstallation problemlos. Stattdessen tritt ein Proxy- und Firewall-Fehler auf.
- In einigen Online-Blogs wurde vorgeschlagen, nicht benötigte Elemente aus der .conf-Datei zu entfernen. Daher habe ich die Datei wie folgt geändert:
[
{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]}]}]} ]
}
]}
].
Nachdem ich die oben genannten Schritte ausgeführt hatte, führte ich den RabbitMQ-Befehl „rabbitmq-plugins“ aus, aktivierte „rabbitmq_management“ und startete den Server und den RabbitMQ-Dienst neu. Die Anmeldeseite für RabbitMQ war immer noch da.http://localhost:15672/' konnte nicht geöffnet werden.
- In einem anderen Blog wurde vorgeschlagen, die .conf-Datei folgendermaßen zu belassen:
[ {Kaninchen, [{log_levels,[{Verbindung, Fehler}]}]} ].
Nachdem ich die oben genannten Schritte ausgeführt hatte, führte ich den RabbitMQ-Befehl „rabbitmq-plugins“ aus, aktivierte „rabbitmq_management“ und startete den Server und den RabbitMQ-Dienst neu. Die Anmeldeseite für RabbitMQ war immer noch da.http://localhost:15672/' konnte nicht geöffnet werden.
Ich habe mehrere Blogs und Foren durchgesehen, konnte aber nicht feststellen, was ich falsch gemacht habe. Ich vermute stark, dass etwas nicht stimmt, als ich meine Konfigurationsdatei in „.conf“ umbenannt habe, denn dann funktionierte RabbitMQ nicht mehr.
Ich wäre Ihnen dankbar, wenn Sie mir sagen könnten, wo ich einen Fehler gemacht habe, oder mir helfen könnten, die .conf-Datei zu finden.
Antwort1
Früher bin ich auch auf einige Links gestoßen, die zum Hinzufügen der Zeilen in der .conf-Datei aufforderten:
log.file.level = Fehler
log.connection.level = Fehler
log.channel.level = Fehler
Ich konnte jedoch nicht genau herausfinden, wo und unter welchem Abschnitt es in die .conf-Datei passt.
Ich habe es noch einmal versucht, indem ich den Inhalt der .conf-Datei gelöscht und einfach diese 3 Zeilen in der .conf-Datei belassen habe:
log.file.level = error
log.connection.level = error
log.channel.level = error
Und es hat funktioniert..
Sie können dieProtokollebenengemäß Ihren Anforderungen.
& kann verweisenHierundHierfür mehr.
Die Datei RabbitMQ.conf befand sich also nur unter dem Pfad - \AppData\Roaming\RabbitMQ. Das einzige Problem war, dass die .conf-Datei ein veraltetes Format hatte, das nicht funktionierte. Nach der Korrektur des Formats funktionierte sie.