web-dev-qa-db-ja.com

RabbitMQ 3.3.1はゲスト/ゲストでログインできません

RabbitMQの最新バージョンをVPS Debian Linuxボックスにインストールしました。ゲスト/ゲスト経由でログインを取得しようとしましたが、メッセージlogin failedで返されました。私は少し調査をしましたが、セキュリティ上の理由から、ゲスト/ゲストを介してリモートでログインすることは禁止されていることがわかりました。

rabbitmq.configファイルを手動で作成し(インストールによって作成されなかったため)、次のエントリのみを配置することにより、このバージョンでゲスト使用を有効にしてリモートでログインすることも試みました。

[{rabbit, [{loopback_users, []}]}].

以下のコマンドでrabbitmqを再起動した後。

invoke-rc.d rabbitmq-server stop -- to stop
invoke-rc.d rabbitmq-server start -- to start

それでもゲスト/ゲストでログインできません。また、Windows VPSにRabbitMQをインストールし、localhostを介してゲスト/ゲスト経由でログインしようとしましたが、同じメッセージlogin failedが表示されます。

また、ゲスト/ゲストを介したリモートロギングをサポートするRabbitMQの古いバージョンをインストールできるソースを提供します。

64

私は同じ問題を抱えていた..

RabbitMQとEnabled Web Interfaceもインストールしましたが、新しく作成したユーザーでサインインできませんでした。これは、これにアクセスするには管理者である必要があるためです。

構成ファイルを作成したり、混乱させたりしないでください。

これは私がその後やったことです、

  1. ユーザーtestとパスワードtestのように、新規/新規ユーザーを追加します。

    rabbitmqctl add_user test test
    
  2. 新しいユーザーに管理アクセス権を付与します。

    rabbitmqctl set_user_tags test administrator
    
  3. 新しく作成したユーザーにアクセス許可を設定します。

    rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
    

それだけです、お楽しみください:)

143
Prasanth Jaya

Debianで次の手順で同じ構成を試しました。

  1. RabbitMQをインストールしました。
  2. Web管理プラグインを有効にしました(必要ではありません)。

ログインしようとしたときに同じエラーが発生しました:

enter image description here

そのため、rabbitmq.configディレクトリ内に/etc/rabbitmqファイル( クラシック構成ファイル )を作成し、次のコンテンツを追加しました(最後のドットに注意してください)。

[{ウサギ、[{loopback_users、[]}]}]。

あるいは、同じディレクトリ内に次の内容のrabbitmq.confファイル( 新しい構成ファイル )を代わりに作成できます。

loopback_users =なし

次に、invoke-rc.d rabbitmq-server startコマンドを実行し、コンソールとJavaクライアントの両方がゲスト/ゲストの資格情報を使用して接続できました。

enter image description here

この手順が機能しない場合、他の問題があると思います。たとえば、何らかの理由でRABBITMQ_CONFIG_FILE環境変数を変更した場合、RabbitMQは設定ファイルを読み取れない可能性があります。

81
Gabriele

これは、バージョン3.3.0以降の新機能です。 localhostのゲスト/ゲストを使用してのみログインできます。他のマシンまたはipからログを記録するには、ユーザーを作成し、アクセス許可を割り当てる必要があります。これは次のように実行できます。

rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
11
Vineet Nair

注意:PORTが15672であることを確認してください! (バージョン> 3.3)5672が機能しない場合

まず、「上記の回答を選択」を確認します。

rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

それでも接続が機能しない場合は、ポートが正しいかどうかを確認してください!

私にとって、このコマンドは機能します:

$ rabbitmqadmin -H 10.140.0.2 -P 15672 -u test -p test list vhosts
+------+----------+
| name | messages |
+------+----------+
| /    |          |
+------+----------+

完了したポートについては、これを確認してください: RabbitMQはどのポートを使用しますか?

ウサギmqサーバーを確認するには、これを確認してください。 rabbitmqのバージョンを確認

追伸.

私にとっては、「テスト」ユーザーを作成してset_user_tagsset_permissionsを実行した後、ポート5672を介してrabbitmqに接続できませんが、15672を介して接続できます。

ただし、ポート15672は常に「空白の応答」を提供します。コードが機能しなくなります。

約5分後に5672に切り替えて、すべてが機能しました!

非常に配線の問題。もっと深く掘り下げる時間はありません。同じ問題に出会った人のためにここに書き留めました。

rabbitMQプロビジョニングにAnsibleを使用する他の人にとって、rabbitmq_userモジュールで見逃したのはtags: administratorでした

「ゲスト」ユーザーを再作成するための私のAnsible構成は次のとおりです(開発環境の目的のため、実稼働環境では実行しないでください)。

- name: Create RabbitMQ user "guest" become: yes rabbitmq_user: user: guest password: guest vhost: / configure_priv: .* read_priv: .* write_priv: .* tags: administrator force: yes # recreate existing user state: present

また、次を含む/etc/rabbitmq/rabbitmq.configファイルをセットアップする必要がありました。

[{rabbit, [{loopback_users, []}]}].

localhostの外部から「guest」/「guest」を使用してログを記録できるようにするため

3
Oliboy50

同じ問題がありました。 Gasによって提案されたものを試してみましたが、起動しなかった「invoke-rc.d rabbitmq-server start」を実行しました。サーバーを再起動しようとしましたが、webuiはゲストユーザーと連携しました。たぶんrabbitmq.configファイルを追加した後、何か他のものを開始する必要がありました。

Rabbitmqバージョン3.5.3を使用しました。

もう1つ注意すべき点があります。AWSインスタンスを使用している場合、受信ポート15672を開く必要があります(3.0より前のRabbitMQバージョンのポートは55672です)。

2
Sreeni

時々あなたはコンマを必要としません。これはデフォルトで設定ファイルにあります。ウサギタグの下に他に何も設定されていない場合、ブローカーを起動しているときにクラッシュします

{loopback_users、[]}のように、これを忘れて後でコンマを削除するのに何時間も費やします。これはSSLを含む他のすべての構成に適用可能です

1
Jaile Sebes

私の仕事のために、rabbitmqを再起動して再度ログインしてみてください。

1
Guarana

学生と私はこの問題を1時間見つめました。ファイルに正しい名前を付けてください。 /etc/rabbitmqディレクトリには、2つの異なるファイルがあります。説明したようにループバックユーザーを取得するために編集する必要がある/etc/rabbitmq/rabbitmq.configファイルがありますが、rabbitmq-env.confファイルと呼ばれる別のファイルがあります。多くの人がタブ補完を使用し、「ig」を追加しましたが、これは正しいファイルではありません。再確認してください!

1
Chad Miller

わずかに異なる使用法ですが、監視目的でAPIにアクセスする人にとっては便利かもしれません:@ Oliboy50によって与えられた答えがうまくいくことを確認できますhowever必ず有効にしてください次のように、ユーザーが監視できるようにする仮想ホストごとに

      permissions:
    - vhost: "{{item.name}}"
      configure_priv: .*
      write_priv: .*
      read_priv: .*
  state: present
  tags: management
with_items: "{{user_system_users}}"

このループを使用すると、仮想ホストでAPIを使用するときに「401 Unauthorized」エラーを回避できました。

0
insideClaw

情報レポートでログファイルを確認すると、これが表示されます。

`config file(s) : /etc/rabbitmq/rabbitmq.config (not found)`. 

以下のコマンドを使用して設定ファイルのアクセス許可を変更し、guestを使用してログインすると、動作します

Sudo chmod 777 /etc/rabbitmq/rabbitmq.config

0
SRK