【问题标题】:Accessing RabbitMQ logs in real time实时访问 RabbitMQ 日志
【发布时间】:2019-09-16 20:35:17
【问题描述】:

在阅读 Manning 的《RabbitMQ in Action》一书时,我遇到了一个有趣的话题。显然,可以将消费者设置为能够在消费者中实时接收所有 RabbitMQ 日志记录。

我读到 RabbitMQ 将日志记录发布到名为 amq.rabbitmq.logtopic 类型的交换。消费者可以监听特定的严重级别,例如可以通过将路由键设置为errorwarninginfo 进行过滤。

我的问题是;我在我的 PC 上安装了一个默认的 RabbitMQ 服务器,但我找不到任何名为 amq.rabbitmq.log 的交换。只有一个可能相关的是amq.rabbitmq.trace,但这个用于事件(如 queue.deleted、queue.created 等事件),换句话说,这不是我要找的。

谁能澄清我的问题?为什么 amq.rabbitmq.log 交换在干净的 RabbitMQ 服务器安装上不可用?

引用:

也许当您使用 rabbitmqctl 列出交易所时,您发现 一个名为 amq.rabbitmq.log 的交易所,其类型为主题。 RabbitMQ 将 使用严重性级别将其日志发布到该交换 路由键 - 你会得到错误、警告和信息。根据你的 从前面的章节中学到,你可以创建一个消费者来 听取这些日志并做出相应的反应。

【问题讨论】:

    标签: rabbitmq rabbitmq-exchange


    【解决方案1】:

    您必须启用它。创建/etc/rabbitmq/rabbitmq.conf 文件并确保其中存在这一行:

    log.exchange = true
    

    我刚刚为rabbitmq.com 网站搜索了source,并没有在任何地方看到该设置。如果您愿意,请在该存储库中提交一个新问题,我会修复它,或者打开您自己的 PR 进行修复。


    注意:RabbitMQ 团队会监控 rabbitmq-users mailing list,并且有时只回答 StackOverflow 上的问题。

    【讨论】:

    • 事件交换插件与上述配置有什么区别?
    • @Luke,配置完成,但仍没有创建交换。我也无法手动创建它,当我尝试创建一个名为amq.rabbitmq.log 的交换时,我得到了access refused。我忘记了什么?
    • 更新:我在这里找到了更多信息:github.com/rabbitmq/rabbitmq-server/issues/1973。我想我需要更新到最新的 RabbitMQ 版本。我现在在 3.7.14。
    • @Ozkan 我想你不明白我的问题。 RabbitMQ 提供了一个名为 evet_exchange 插件的插件,可用于使用与队列、交换、连接、用户等相关的 RabbitMQ 事件。日志消费者和事件消费者有什么区别?据我所知,这些日志与生成的事件相同。
    • @bumblebee 您仍然没有完全正确地阅读我的问题 :),amq.rabbitmq.log 用于纯日志记录。 event_exchange 如你所说。在我的问题中寻找 amq.rabbitmq.trace
    【解决方案2】:

    有点晚了,但希望它对某人有所帮助。到目前为止,它对我有用。交换“amq.rabbitmq.log”将由 rabbitmq 代理自己自动创建。我使用的 RabbitMQ 代理版本是:3.8.1

    添加

    log.exchange = true

    进入您的 rabbitmq.conf 文件并重新启动您的 rabbitmq 服务。

    每次更新 rabbitmq.conf 文件时都需要重新启动 rabbitmq 服务。

    打开cmd并在windows中输入以下内容:

    1. rabbitmq-服务停止
    2. rabbitmq-服务安装
    3. rabbitmq-服务启动
    4. rabbitmqctl start_app

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 2015-08-06
      • 2017-12-17
      • 1970-01-01
      • 2014-07-29
      • 2017-11-25
      • 1970-01-01
      相关资源
      最近更新 更多