---
order: 1
---
# 集群状态

[集群部署](../../devops/cluster/README.md)完成后，可访问**系统设置** >**运维** > **集群状态**监控各集群节点的运行情况，该列表每3秒轮询获取各节点的运行指标，并以表格的形式显示，便于运维人员了解当前系统的运行状态，并能根据列表中的警示信息，快速定位故障所在。

![集群监控](./images/2021-03-01-15-59-23.png)

## 列表信息{#list-info}

### 默认显示列{#columns}

`集群监控`列表默认显示列信息如下：

| 列名 | 说明 |
| :---- |:----|
| 状态 | 标注主从节点并展示集群节点的运行状态，分为：`正常`、`启动中`、`关机`、`失联`、`禁用`，鼠标停留时会悬浮显示该节点的[警示信息](#警示信息及解决方法) |
| URL | 未经过[负载平衡](../../devops/cluster/README.md#load-balancing)的集群节点的内网访问地址，点击可直接跳转至该节点首页 |
| 启动时间 | 系统的启动时间 |
| 心跳时间 | 上一次连接数据库并记录并更新自己状态信息的时间 |
| 网络延迟 | 与当前节点间的网络延迟 |
| 接收消息数 | 接收到的集群消息数 |
| 接收数据 | 通过集群通讯接收到的数据包大小 |
| 发送消息数 | 向其他集群成员发送的集群消息数 |
| 发送数据 | 向其他集群成员发送的数据包大小 |
| JVM最大内存 | 系统设置的JVM最大内存，可参考[环境变量设置](../../devops/install/middleware/tomcat.md#env) |
| Web会话数 | 当前系统Session数量 |
| 物理内存 | 服务器物理内存总容量 |
| %CPU JVM | JVM进程CPU占用百分比 |
| 磁盘可用空间 | 在工作目录所在磁盘分区中，JVM进程可以使用的空间 |

### 可选显示列{#optional}

点击列头行末尾的图标，可展开`调整显示列`勾选框，根据运维需要自由选择列表的显示列

![可选显示列](./images/2020-10-27-10-20-34.png)

**系统运行指标**

| 列名 | 说明 |
| :---- |:----|
| 所属主节点 | 集群中的主节点URL，应与`状态`中的`主`标识节点一致 |
| 产品版本 | 当前使用war的版本，所有节点前2位应一致 |
| 工作目录 | 安装时设置的[工作目录](../../devops/install/basic-install/workdir-and-defdb.md#set-workdir)路径 |
| 部署路径 |  Web容器部署路径 |
| 集群通信地址 |  内网集群节点[通讯的地址和端口](../../devops/cluster/README.md#config-firewall)，集群节点是使用的专用的通信地址和端口进行通信的，没有使用Web端口 |

**服务器运行指标**

| 列名 | 说明 |
| :---- |:----|
| 物理内存 | 服务器物理内存总容量 |
| 物理内存空闲 | 服务器物理空余内存量 |
| % CPU | 服务器的CPU占用百分比 |
| CPU 核数 | 服务器的CPU核心数量 |
| 进程ID | JVM进程ID |
| OS用户 | 启动JVM的操作系统用户名 |
| 磁盘总空间 | 工作目录所在的磁盘分区总空间 |
| 磁盘空余空间 | 工作目录所在的磁盘分区空余空间(包含JVM进程不可用部分) |

**mfc协议相关相关信息**

| 列名 | 说明 |
| :---- |:----|
| initial\_hosts  | 系统启动集群初始化时最初要连接的集群节点，由于云平台（如阿里云）通常禁用IP组播，所以系统默认使用TCP协议进行集群通信，集群初始化时需要有最初始的连接节点设置，节点启动后会把自己的通信地址写入数据库，其它节点启动时会读取并正确设置自己的initial\_hosts |
| dynamic\_hosts  | 记录的是用户没有在`initial_hosts`中设置的集群节点，可以理解为曾经加入过集群的、的或后来新加入到集群的节点 |
| UFC\_AverageTimeBlocked | 消息发送的阻塞平均时间（以毫秒为单位）|
| UFC\_NumberOfBlockings| 消息发送的阻塞次数 |
| UFC\_NumberOfQueuedMessages | 当前排队的消息数 |
| UFC\_QueuedSize | 所有目的地的所有当前排队的消息的总大小 |
| UFC\_NumberOfQueuings | 消息已排队的次数 |

## 警示信息及解决方法{#warning-and-solution}

当节点出现故障影响集群通讯时，`状态`列中的图标和状态信息会发生改变，同时鼠标停留时会悬浮显示警示信息，根据故障的严重程度分为警告类和错误类

### 警告类{#warning}

集群中某一节点存在可优化的配置项或暂时失联，一般不会影响其他节点，此时`状态`列中图标为黄色感叹号

![系统诊断警示](./images/2020-10-27-11-21-29.png)

具体存在以下几种情况：

1. **系统诊断警告**

   集群通讯正常但**系统信息** > **系统诊断**中存在需要修改的配置项

   **解决方法：**

   按照警示中的建议，修改对应的配置，并重新启动tomcat

2. **启动超时，可能宕机或者断开数据库连接**

   当节点启动过程中，服务器宕机或数据库连接异常，会导致列表中该节点的状态停留在`启动中`，超时后会出现该警示，此时节点`状态`为`启动中`

   **解决方法：**

   1. 检查服务器是否宕机
   2. 检查该节点ip的数据库连接是否正常，例如数据库连接被阻塞或host发生改变

3. **可能宕机或者断网**

   1. 节点网络服务中断，无法与其他节点通讯，此时节点`状态`为`失联`
   2. 该节点被非正常关机（如用 `kill -9 PID` 杀死tomcat进程）

   **解决方法：**

   1. 检查并重启该节点服务器的网络服务

   Linux下运行

   ```sh
   service network restart
   ```

   网络服务恢复后，不需要重启tomcat，失联节点会自动重新加入集群
   2\. 若存在节点非正常关机的情况，可不必理会，一小时后系统会恢复正常状态。也可以将被关闭的节点重新启动然后正常关闭它

4. **ping超时，可能已经宕机**

   该节点服务器宕机或与其他节点网络未联通

   **解决方法：**

   1. 确认该节点服务器是否宕机
   2. 确认该节点网络服务是否正常启动
   3. 确认该节点是否还与其他节点处于同一网段

### 错误类{#error}

出现较为严重的故障导致集群功能出现异常，例如出现多个主节点或集群功能被禁用，此时`状态`列中图标为红底交叉图案

![禁用集群](./images/2020-10-26-19-11-56.png)

具体存在以下几种情况：

1. **集群中有多个主节点，这通常是因为网络不通导致的，请检查网络设置或防火墙设置**

   集群节点间的通讯出现故障，导致出现了多个主节点

   **解决方法：**

   1. 确认所有集群成员间的网络连接是否正常
   2. 确认7800-7805端口是否正常开放，可参考[开放集群通讯端口](../../devops/cluster/README.md#config-firewall)
   3. 确认所有集群成员的防火墙是否设置了黑名单

2. **当前节点无法连接其它节点，请检查网络设置或防火墙设置**

   1. 当前节点与其他集群节点网络不同
   2. 最近一小时内存在非正常关机的节点（如用 `kill -9 PID` 杀死tomcat进程），此时进程退出前无法更新数据库的状态，导致当前节点以为被杀死的进程还在运行

   **解决方法：**

   3. 确认网络通畅，防火墙开放7800～7805这几个端口
   4. 如果存在非正常关机节点，可不必理会，一小时后系统会恢复正常状态。也可以将被关闭的节点重新启动然后正常关闭它（如 `kill PID`）

3. **未启用集群，存在其他启用集群的节点**

   该节点集群功能被禁用，此时节点状态为`禁用`

   **解决方法:**

   确认[环境变量](../../devops/install/middleware/tomcat.md#env)中是否存在`-Dsucc.cluster.enable=false`，该变量会禁用集群功能，修改为`-Dsucc.cluster.enable=true`并重启tomcat
