Celery-Beat:ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录
Posted
技术标签:
【中文标题】Celery-Beat:ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录【英文标题】:Celery-Beat: ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN 【发布时间】:2019-04-29 05:56:42 【问题描述】:我在 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)
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)
根据日志,是不是认证错误?
当我尝试 curl 它成功连接到兔子时:
->curl -i -u RabbitUser:guest http://localhost:5672/api/whoami
AMQP
我该如何解决这个问题?
【问题讨论】:
是的,看起来 Celery 无法针对您的 RabbitMQ 实例进行身份验证。如果没有看到更多的配置,很难说出原因。 你能告诉我一些想法,我该如何解决这个问题 【参考方案1】:我假设您没有使用虚拟主机 rabbit
创建一个名为 RabbitUser
的 rabbitMQ 用户:
在控制台中输入:
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
这将使用您想要的密码创建用户RabbitUser
,添加虚拟主机rabbit
,设置您的用户管理员并授予您虚拟主机rabbit
的权限
【讨论】:
应该提到这仅在主节点上是必需的。以上是关于Celery-Beat:ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录的主要内容,如果未能解决你的问题,请参考以下文章