默认情况下,RabbitMQ 使用 vRealize Automation 设备的短主机名,而这可能会阻止节点互相解析。

问题

尝试将其他 vRealize Automation 设备加入群集时,会出现类似于以下内容的错误。

Clustering node 'rabbit@sc2-rdops-vm01-dhcp-62-2' with rabbit@company ...
Error: unable to connect to nodes [rabbit@company]: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@company]

rabbit@company:
  * unable to connect to epmd (port 4369) on company: nxdomain (non-existing domain)


current node details:
- node name: 'rabbitmq-cli-11@sc2-rdops-vm01-dhcp-62-2'
- home dir: /var/lib/rabbitmq
- cookie hash: 4+kP1tKnxGYaGjrPL2C8bQ==

[2017-09-01 14:58:04] [root] [INFO] RabbitMQ join failed with exit code: 69, see RabbitMQ logs for details.

原因

您的网络配置不允许 vRealize Automation 设备通过短主机名互相解析。

解决方案

  1. 对于部署中的所有 vRealize Automation 设备,请以 root 用户身份登录到控制台会话。
  2. 停止 RabbitMQ 服务。

    service rabbitmq-server stop

  3. 在文本编辑器中打开以下文件。

    /etc/rabbitmq/rabbitmq-env.conf

  4. 将以下属性设置为 true。

    USE_LONGNAME=true

  5. 保存并关闭 rabbitmq-env.conf
  6. 重置 RabbitMQ。

    vcac-vami rabbitmq-cluster-config reset-rabbitmq-node

  7. 仅在一个 vRealize Automation 设备节点上运行以下脚本。

    vcac-config cluster-config-ping-nodes --services rabbitmq-server

  8. 在所有节点上,确认 RabbitMQ 服务已启动。

    vcac-vami rabbitmq-cluster-config get-rabbitmq-status