rabbitmq告警Error: health check failed. Message: resource alarm(s) in effect:[{resource_limit,memory,'rabbit@rabbitmq-1'}]

发布时间 2023-07-27 12:07:34作者: 不会跳舞的胖子

 

这个错误信息表示 RabbitMQ 的内存使用量超出了预设的阈值,导致触发了 RabbitMQ 的内存警告阈值报警。

RabbitMQ 在运行过程中会不断地将消息存储在内存中,如果内存使用量超出了预设的阈值,就会触发内存警告阈值报警。这个阈值的默认值是 40% 的物理内存,可以通过修改 RabbitMQ 的配置文件来调整它。

要解决这个问题,你可以尝试以下几种方法:

  1. 增加 RabbitMQ 节点的物理内存。这是最直接的方法,可以通过升级 RabbitMQ 节点的硬件配置来增加内存。这样做可以让 RabbitMQ 能够处理更多的消息,减少内存使用量超出阈值的可能性。

  2. 调整 RabbitMQ 的内存警告阈值。你可以通过修改 RabbitMQ 的配置文件来调整内存警告阈值。具体来说,你可以在 RabbitMQ 的配置文件中添加以下内容:

[{rabbit, [{vm_memory_high_watermark, 0.8}]}].
这里的 0.8表示内存使用率的阈值,也就是当 RabbitMQ 的内存使用率超过 80% 时就会触发警告。你可以根据实际情况将这个值调整为合适的值。
  1. 减少 RabbitMQ 的内存使用量。你可以通过以下几种方式来尽可能地减少 RabbitMQ 的内存使用量:

    • 减少队列的数量和大小。如果你有很多队列,并且它们的大小比较大,那么就会占用大量的内存。你可以考虑删除一些不再需要的队列,或者缩小队列的大小。

    • 减少消息的大小。如果你的消息比较大,那么就会占用更多的内存。你可以考虑压缩消息,或者将消息分为多个部分发送。

    • 关闭不需要的插件。如果你安装了很多不需要的插件,那么它们也会占用一定的内存。你可以考虑关闭一些不需要的插件来减少内存使用量。

需要注意的是,在修改 RabbitMQ 的配置文件之前,你需要先停止 RabbitMQ 服务,然后再重新启动它。

 如果没有这个配置文件,需要手动创建
 /etc/rabbitmq/rabbitmq.conf:RabbitMQ 的主要配置文件,用于配置 RabbitMQ 的基本参数,如节点名称、端口号、日志文件等。

注意,如果你使用的是 RabbitMQ 的集群模式,那么关于节点之间的配置信息则保存在 /var/lib/rabbitmq/.erlang.cookie 文件中。该文件用于存储 Erlang 节点间的安全 cookie,确保各个节点之间的通信是安全的。

在配置 RabbitMQ 时,建议备份好配置文件,以免意外修改或删除导致 RabbitMQ 无法正常工作。