可以使用该信息解决群集环境中的 Elasticsearch 和 RabbitMQ 问题。Elasticsearch(用于审核、报告和目录同步日志的搜索和分析引擎)和 RabbitMQ(消息代理)嵌入在 VMware Identity Manager 虚拟设备中。

Elasticsearch 故障排除

您可以在 VMware Identity Manager 设备中使用以下命令以验证 Elasticsearch 运行状况。

curl 'http://localhost:9200/_cluster/health?pretty'

该命令应返回类似于以下内容的结果。

         {
  "cluster_name" : "horizon",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 20,
  "active_shards" : 40,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0
}

如果 Elasticsearch 未正确启动或其状态为红色,请按照以下步骤进行故障排除。

  1. 确保打开了端口 9300。

    1. 将群集中的所有节点的 IP 地址添加到 /usr/local/horizon/scripts/updateiptables.hzn 文件以更新节点详细信息:

      ALL_IPS="node1IPadd node2IPadd node3IPadd"

    2. 在群集中的所有节点上运行以下脚本。

      /usr/local/horizon/scripts/updateiptables.hzn

  2. 在群集中的所有节点上重新启动 Elasticsearch。

    service elasticsearch restart

  3. 查看日志以了解更多详细信息。

    cd /opt/vmware/elasticsearch/logs

    tail -f horizon.log

RabbitMQ 故障排除

您可以在 VMware Identity Manager 设备中使用以下命令以验证 RabbitMQ 运行状况。

rabbitmqctl cluster_status

该命令应返回类似于以下内容的结果。

Cluster status of node 'rabbitmq@node3' ...
[{nodes,[{disc,['rabbitmq@node2','rabbitmq@node3']}]},
 {running_nodes,['rabbitmq@node3']},
 {cluster_name,<<"rabbitmq@node2.example.com">>},
 {partitions,[]},
 {alarms,[{'rabbitmq@node3',[]}]}]

如果 RabbitMQ 未启动或运行状况 URL https://hostname/SAAS/API/1.0/REST/system/health/ 显示 "MessagingConnectionOk":"false",请按照以下步骤进行故障排除。

  1. 确保打开了端口 4369、5700 和 25672。要打开端口,请执行以下操作:

    1. 使用以下命令创建一个文件:

      touch /usr/local/horizon/conf/flags/enable.rabbitmq

    2. 运行以下脚本:

      /usr/local/horizon/scripts/updateiptables.hzn

  2. 重新启动 RabbitMQ。

    1. 终止任何现有的 rabbitmq 进程。

    2. rabbitmqctl stop

    3. rabbitmq-server -detached

  3. 如果 RabbitMQ 无法正常启动,您可能需要重新启动 VMware Identity Manager 服务。

    service horizon-workspace restart