Celery-Beat:ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录

Jus*_*ill 4 python django rabbitmq celery docker

我在 celery-beat 容器上遇到错误。

Celery-Beat 错误日志:

[2018-11-27 12:40:21,139: WARNING/MainProcess] (0, 0): (403) ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN. For details see the broker logfile.
[2018-11-27 12:40:21,241: WARNING/MainProcess] Sentry is attempting to send 1 pending error messages
[2018-11-27 12:40:21,241: WARNING/MainProcess] Waiting up to 10 seconds
[2018-11-27 12:40:21,241: WARNING/MainProcess] Press Ctrl-C to quit
celery beat v4.0.2 (latentcall) is starting.
__    -    ... __   -        _
LocalTime -> 2018-11-27 12:40:19
Configuration ->
    . broker -> amqp://RabbitUser:**@rabbit:5672//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%INFO
    . maxinterval -> 5.00 minutes (300s)
Run Code Online (Sandbox Code Playgroud)

RabbitMq 日志:

=INFO REPORT==== 27-Nov-2018::12:40:19 ===
closing AMQP connection <0.308.0> (192.168.48.3:36552 -> 192.168.48.4:5672)

=INFO REPORT==== 27-Nov-2018::12:40:24 ===
accepting AMQP connection <0.313.0> (192.168.48.2:56664 -> 192.168.48.4:5672)

=ERROR REPORT==== 27-Nov-2018::12:40:24 ===
Error on AMQP connection <0.313.0> (192.168.48.2:56664 -> 192.168.48.4:5672, state: starting):
AMQPLAIN login refused: user 'RabbitUser' - invalid credentials

=INFO REPORT==== 27-Nov-2018::12:40:24 ===
closing AMQP connection <0.313.0> (192.168.48.2:56664 -> 192.168.48.4:5672)
Run Code Online (Sandbox Code Playgroud)

根据日志,是不是认证错误?

当我尝试将其卷曲成功连接到兔子时:

->curl -i -u RabbitUser:guest http://localhost:5672/api/whoami
  AMQP
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

小智 5

RabbitUser我假设您没有创建一个以 vhost命名的rabbitMQ用户rabbit

在控制台中输入:

rabbitmqctl add_user RabbitUser YOURPASSORDHERE
rabbitmqctl add_vhost rabbit
rabbitmqctl set_user_tags RabbitUser administrator
rabbitmqctl set_permissions -p rabbit RabbitUser ".*" ".*" ".*"
rabbitmqctl delete_user guest
Run Code Online (Sandbox Code Playgroud)

RabbitUser这将使用您想要的密码创建用户,添加虚拟主机rabbit,设置您的用户管理员并授予您虚拟主机的权限rabbit