RabbitMQ は問題なく起動しますが、shovel プラグインのステータスは「開始中」と表示されます。
私は次のrabbitmq.configを使用しています:
各ブローカーは個別の AWS インスタンスで実行されています。リモート サーバーは Windows 2008 サーバー、ローカル サーバーは Amazon Linux です。
[{rabbitmq_shovel, [{shovels, [{scrape_request_shovel, [{sources, [{broker,"amqp://test_user:test_password@localhost"}]}, {destinations, [{broker, "amqp://test_user:test_password@ec2-###-##-###-###.compute-1.amazonaws.com"}]}, {queue, <<"scp_request">>}, {ack_mode, on_confirm}, {publish_properties, [{delivery_mode, 2}]}, {publish_fields, [{exchange, <<"">>}, {routing_key, <<"scp_request">>}]}, {reconnect_delay, 5} ]} ] }] }].
次のコマンドを実行します。
sudo rabbitmqctl eval 'rabbit_shovel_status:status().'
戻り値:
[{scrape_request_shovel,starting,{{2012,7,11},{23,38,47}}}]
This questionによると、これは、2 つのブローカーでユーザーが正しく設定されていない場合に発生する可能性があります。ただし、両方のマシンで rabbitmqctl user_add を使用してユーザーを正しく設定したことを再確認しました。別のユーザー セットで試してみました。
また、リモート ホストでポート 5672 の nmap スキャンを実行して、そのポートで稼働していることを確認しました。
更新問題は解決されていませんが、リモート サーバーとの接続の問題が原因のようです。設定ファイルで「reconnect_delay」を 0 に変更して、シャベルが無限に接続を再試行するのを回避しました。この問題を抱えている他の人にもこれを行うことを強くお勧めします。これにより、rabbit_shovel_status からエラー メッセージを取得できるようになります。私の場合、次のエラーが発生しました。
[{scrape_request_shovel, {terminated, {{badmatch,{error,access_refused}}, [{rabbit_shovel_worker,make_conn_and_chan,1}, {rabbit_shovel_worker,handle_cast,2}, {gen_server2,handle_msg,2}, {proc_lib,init_p_do_apply,3}]}}, {{2012,7,12},{0,4,37}}}]