标签: rabbitmq

如何永久增加RabbitMQ文件描述符限制

我正在尝试永久增加 RabbitMQ 文件描述符限制。我已经将系统限制增加到 65535,并通过在/etc/security/limits.d/rabbitmq.conf文件中添加一个条目对 RabbitMQ 进程进行了相同的操作。

的输出ulimit -n65536

的输出su - rabbitmq -s /bin/sh -c 'ulimit -n'65535

的输出rabbitmqctl status | grep -A 4 limit是:

{vm_memory_limit,16900370432},
{disk_free_limit,16900370432},
{disk_free,1786935627776},
{file_descriptors,
  [{total_limit,924},{total_used,5},{sockets_limit,829},{sockets_used,1}]},
{processes,[{limit,1048576},{used,204}]},
{run_queue,0},
{uptime,3}]
Run Code Online (Sandbox Code Playgroud)

如果我跑,rabbitmqctl eval 'file_handle_cache:set_limit(65000).'那么我得到:

{vm_memory_limit,16900370432},
{disk_free_limit,16900370432},
{disk_free,1786935721984},
{file_descriptors,
  [{total_limit,65000},
    {total_used,5},
    {sockets_limit,58498},
    {sockets_used,1}]},
{processes,[{limit,1048576},{used,204}]},
{run_queue,0},
{uptime,91}]
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎样才能永久增加file_descriptors total_limit?每次我重新启动 RabbitMQ 时它都会回到 924。我不希望它改变,所以我想知道你们是否能告诉我在这里缺少什么:D

为了完整起见,请遵循我的完整/etc/rabbitmq/rabbitmq.config文件:

%% -*- mode: erlang -*-
%% ----------------------------------------------------------------------------
%% RabbitMQ Sample …
Run Code Online (Sandbox Code Playgroud)

rabbitmq file-descriptors

7
推荐指数
2
解决办法
2万
查看次数

在 Ubuntu / RabbitMQ 中关闭 EPMD 监听端口(4369)

我正在尝试保护 RabbitMQ 的安装,但不确定如何保护 Erlang EPMD 端口。我只有一台机器在运行任何东西,所以我想让它只在环回设备上监听。根据文档,我添加了:

ERL_EPMD_ADDRESS=127.0.0.1
Run Code Online (Sandbox Code Playgroud)

to /etc/rabbitmq/rabbitmq-env.conf,但这没有效果,因为端口仍然显示nmap从远程系统打开。

有没有办法锁定我不会使用的这个端口?

ubuntu rabbitmq

6
推荐指数
1
解决办法
3341
查看次数

RabbitMQ Erlang Cookie

我在带有 Erlang R15B01 的 CentOS 5.5 机器上运行 RabiitMQ。RabbitMQ 一直在运行,直到我升级到最新版本 (2.8.4)。

当我使用以下命令启动 RabbitMQ 时:

/etc/init.d/rabbitmq start
Run Code Online (Sandbox Code Playgroud)

在 RabbitMQ startup_log 我看到以下内容:

{error_logger,{{2012,7,11},{11,44,15}},"Cookie file /var/lib/rabbitmq/.erlang.cookie mus be accessible by owner only",[]}
Run Code Online (Sandbox Code Playgroud)

Erlang cookie 具有以下权限:

-rwxr-xr-x 1 rabbitmq rabbitmq 17 Jul 10 12:20 .erlang.cookie
Run Code Online (Sandbox Code Playgroud)

有没有其他人经历过这种情况?或者有人有我可以遵循的一些故障排除步骤吗?

非常感谢,Risteard

rabbitmq

6
推荐指数
1
解决办法
1万
查看次数

RabbitMQ 管理控制台不工作

我已经开始使用 RabbitMQ。我有一台(windows)机器,我在上面安装了两个 RabbitMQ 节点作为服务 - 我为每个节点选择了节点名、端口和服务名称。服务正在正常运行(我看到它们在 netstat-a 中侦听)。

我还安装了带有“rabbitmq-plugins enable rabbitmq_management”的管理插件并重新启动了这两个服务。但是插件没有运行 - 我没有看到它在 netstat 中监听,我无法通过浏览器连接到管理控制台。

知道有什么问题吗?是否有任何日志可以查看正在发生的事情?

更新:当我做 rabbitmq-plugins list 时,我得到:

c:\RabbitMq\sbin>rabbitmq-plugins list
[e] amqp_client                       3.0.1
[ ] cowboy                            0.5.0-rmq3.0.1-git4b93c2d
[ ] eldap                             3.0.1-gite309de4
[e] mochiweb                          2.3.1-rmq3.0.1-gitd541e9a
[ ] rabbitmq_auth_backend_ldap        3.0.1
[ ] rabbitmq_auth_mechanism_ssl       3.0.1
[ ] rabbitmq_consistent_hash_exchange 3.0.1
[ ] rabbitmq_federation               3.0.1
[ ] rabbitmq_federation_management    3.0.1
[ ] rabbitmq_jsonrpc                  3.0.1
[ ] rabbitmq_jsonrpc_channel          3.0.1
[ ] rabbitmq_jsonrpc_channel_examples 3.0.1
[E] rabbitmq_management               3.0.1
[e] rabbitmq_management_agent         3.0.1
[ ] rabbitmq_management_visualiser    3.0.1
[e] …
Run Code Online (Sandbox Code Playgroud)

rabbitmq

6
推荐指数
1
解决办法
1万
查看次数

RabbitMQ 作为 Windows 服务的配置文件

我正在设置一个 RabbitMQ 实例以在我的开发工作站上运行以进行测试。

我想使用配置(在我的情况下是关于流量控制的配置)。

我已经安装了erlang,rabbitmq-server-3.1.1,设置RABBITMQ_BASE到某个目录,设置RABBITMQ_CONFIG_FILEc:/path/to/myconf(所以它引用c:\path\to\myconf.config)。

现在我打开我的 cmd 并执行 rabbitmq-service install。Web 管理器显示我的 RMQ 服务器已启动并正在运行。

但是disk_free_limit我设置的值不匹配。

我不知道是否没有读取配置文件,或者我的配置文件是否有错误并因此被忽略。

我的conf文件的内容:

[
    {rabbit,
        [
            {disk_free_limit, 250000000}
        ]
    }
].
Run Code Online (Sandbox Code Playgroud)

日志中的启动报告(它显示我的 conf 文件没有被读取):

=INFO REPORT==== 12-Jun-2013::17:06:44 ===
node           : rabbit@DEV-WORKSTATION
home dir       : C:\Windows
config file(s) : (none)
cookie hash    : 2SazL+DgWDMqrHlr4w8R8A==
log            : c:/rabbitmq_server-3.1.1/RabbitMQ/log/DEV-WORKSTATION.log
sasl log       : c:/rabbitmq_server-3.1.1/RabbitMQ/log/rabbit@DEV-WORKSTATION-sasl.log
database dir   : c:/rabbitmq_server-3.1.1/RabbitMQ/db/rabbit@DEV-WORKSTATION-mnesia
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

windows configuration service rabbitmq

6
推荐指数
2
解决办法
1万
查看次数

我可以更改rabbitmq节点名称吗?

我已经开始在 EC2 linux 上运行 RabbitMQ。

我在默认设置下运行 RabbitMQ,所以我的 RabbitMQ 节点名称现在是 rabbit@{hostname} 并且主机名是默认的 EC2 主机名,ip-{my IP address}.

我想更改节点名称,如果我更改目录和 .pid 名称 in mnesia/and rabbitmq.conffile as rabbit@newhost,它会起作用吗?

rabbitmq

6
推荐指数
2
解决办法
2万
查看次数

rabbitmq docker container .erlang.cookie 不是从 RABBITMQ_ERLANG_COOKIE 环境变量设置的

我正在尝试使用 aws 容器服务设置一个 rabbitmq 集群。我需要/var/lib/rabbitmq/.erlang.cookie在所有节点上都相同。因此,对于我的所有 rabbitmq 容器,当它们运行时,我传入了一个RABBITMQ_ERLANG_COOKIE环境变量,根据此处的文档https://hub.docker.com/_/rabbitmq/应写入/var/lib/rabbitmq/.erlang.cookie.

当我检查正在运行的容器时,我可以看到存在环境变量RABBITMQ_ERLANG_COOKIE=QOKWQHQKXXTBIEAOPWKE,但是当cat /var/lib/rabbitmq/.erlang.cookie我得到不同的值时AYMNAPKRPCPJVPFYAJZX

因此,所有rabbitmq 容器都不同.erlang.cookie,无法形成集群。

为什么没有设置来自环境变量的 cookie?我会在这里错过什么?

我正在使用 rabbitmq:3.6.9-alpine 图像。

amazon-web-services rabbitmq docker

6
推荐指数
1
解决办法
3967
查看次数

如何让RabbitMQ更快地启动和停止

在 Debian 10 上,service rabbitmq-server start需要 10 秒;service rabbitmq-server stop需要 5 秒。

这适用于负载极低且启动/停止速度比 RabbitMQ 性能或可靠性更重要的 Docker 开发环境。因此,停止并重新启动容器需要 15 秒。

我怎样才能让它更快?我添加log.default.level = debugrabbitmq.conf以防万一它会告诉我它在启动过程中正在做什么,但它没有给我任何有用的东西。

debian rabbitmq systemd

6
推荐指数
0
解决办法
973
查看次数

具有多个可用区的 EKS 集群中的持久存储

我有一个带有一个 Linux 工作节点的 EKS 集群,它可以在一个区域内的任何可用区中实例化。我需要使用持久存储卷,这样即使节点死亡,我的数据也不会丢失。值得一提的是,我说的是RabbitMQ数据。

我尝试过使用 EBS 卷,但它有一个硬限制,即它绑定到单个可用区。如果节点死亡,然后实例化到不同的可用区,则无法挂载 EBS 卷

到目前为止我有以下想法:

  1. 将单个 EBS 卷附加到工作节点。当工作节点在不同的可用区中重新启动时,创建EBS 快照,并使用它在正确的可用区中创建新的 EBS 卷。新的节点实例将挂载新的 EBS 卷。

  2. 每个可用区都有一个工作节点,并有一个专用的 EBS 卷。RabbitMQ 可以自动跨 EBS 卷复制数据。这样就无需使用 EBS 快照,如解决方案 1 中建议的那样。

  3. 拥有一个可连接到所有可用区的多个节点的 EFS 卷。

此外,我发现这篇文章解释了解决我的问题的更复杂的方法:

我为 Kubernetes 1.10/1.11 推荐的另一个选项是控制卷的创建位置以及 pod 的调度位置:

您能帮我比较这些方法吗?比如在可扩展性、成本效率、可维护性方面……或者也许你能想到更好的?

amazon-ebs amazon-web-services rabbitmq kubernetes

6
推荐指数
1
解决办法
5607
查看次数

如何验证RabbitMQ用户密码?

有没有一种简单的方法可以从命令行验证 RabbitMQ 用户密码?简单地说,我的意思是:

  • 没有启用rabbitmq_management插件

  • 没有额外的依赖项,如 ruby​​/python/等。默认情况下,Linux 机器上通常不存在库。

rabbitmq

5
推荐指数
2
解决办法
1万
查看次数