0

我需要监控 rabbitmq 集群状态。

REST API 不提供有关partitions. 所以我需要使用应用程序rabbitmqctl

# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbit-1' ...
[{nodes,[{disc,['rabbit@rabbit-1','rabbit@rabbit-2',
                'rabbit@rabbit-3']}]},
 {running_nodes,['rabbit@rabbit-3','rabbit@rabbit-2',
                 'rabbit@rabbit-1']},
 {cluster_name,<<"rabbit@rabbit-1">>},
 {partitions,[]},
 {alarms,[{'rabbit@rabbit-3',[]},
          {'rabbit@rabbit-2',[nodedown]},
          {'rabbit@rabbit-1',[]}]}]

我需要检查{partitions,[]},。如果有空[]可以了。否则我有问题。

我从 bash 中找到了使用 erlang 的示例:

erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell

rabbitmqctl是否可以使用(或其他工具)解析标准输出erl并返回信息“空/非空”或返回代码?

我绝对不了解 Erlang。

如果有人帮助我,我会很高兴:-)

4

1 回答 1

4

你可以用这个API

http://your_ip:15672/api/nodes

您可以在其中检查节点是启动还是关闭

name: "rabbit@t-srv-rabbit-cent04",
type: "disc",
running: false,
+cluster_links: (0)[...],

或分区

},
-{
-partitions: (0)[
],
os_pid: "8070",
fd_total: 300000,
sockets_total: 269908,
mem_limit: 1590196633,

你不需要erlang shell

于 2017-03-10T10:39:56.223 回答