
# ALM-13001 ZooKeeper可用连接数不足（2.x及以前版本）
#### 告警解释
系统每30秒周期性检测ZooKeeper服务连接数状态，当检测到ZooKeeper实例连接数超出阈值（最大连接数的百分之八十）时产生该告警。
连接数小于阈值时，告警恢复。
#### 告警属性
| 告警ID  | 告警级别 | 可自动清除 |
|:---|:---|:---|
| 13001 | 严重   | 是     |
   
#### 告警参数
| 参数名称              | 参数含义                  |
|:---|:---|
| ServiceName       | 产生告警的服务名称。            |
| RoleName          | 产生告警的角色名称。            |
| HostName          | 产生告警的主机名。             |
| Trigger Condition | 系统当前指标取值满足自定义的告警设置条件。 |
   
#### 对系统的影响
ZooKeeper可用连接数不足，当连接率超过百分之百时无法处理外部连接。
#### 可能原因
该节点ZooKeeper连接量过大，超过阈值。某些连接进程存在连接泄露，或配置的最大连接数不符合实际使用场景。
#### 处理步骤
1. 检查连接状态。 
   1. 在MRS集群详情页，单击"告警管理 \> 13001连接数不足 \> 定位信息"。查看告警上报的节点IP地址。
   
   2. 获取ZooKeeper进程pid。登录到告警上报的节点，执行命令：**pgrep -f proc_zookeeper**。
   
   3. 是否正常获取pid。
      - 是，执行[1.d]。
      
      - 否，执行[步骤 2]。
       
   
   4. 获取所有与当前ZooKeeper实例连接的IP及连接数量，取连接数最多的前十个进行检查。根据获取到的pid值，执行命令**lsof -i\|grep $pid \| awk '{print $9}' \| cut -d : -f 2 \| cut -d \\\> -f 2 \| awk '{a\[$1\]++} END {for(i in a){print i,a\[i\] \| "sort -r -g -k 2"}}' \| head -10**。（$pid为上一步获取的pid值）
   
   5. 获取节点IP与连接数是否成功。
      - 是，执行[1.f]。
      
      - 否，执行[步骤 2]。
       
   
   6. 获取连接进程的端口号。根据获取到的pid与IP值，执行命令**lsof -i\|grep $pid \| awk '{print $9}'\|cut -d \\\> -f 2 \|grep $IP\| cut -d : -f 2**。（$pid与$IP为上一步获取的pid值与IP值）
   
   7. 获取端口号port成功。
      - 是，执行[1.h]。
      
      - 否，执行[步骤 2]。
       
   
   8. 获取连接进程的进程号。依次登录到各IP，根据获取到的port号，执行命令**lsof -i\|grep $port**。（$port为上一步获取端口号）
   
   9. 获取进程号成功。
      - 是，执行[1.j]。
      
      - 否，执行[步骤 2]。
       
   
   10. 根据获取到的进程号，查看进程是否存在连接泄露。
       - 是，执行[1.k]。
       
       - 否，执行[1.l]。
        
   
   11. 将存在连接泄露的进程关掉，观察界面上告警是否消除？
       - 是，处理完毕。
       
       - 否，执行[1.l]。
        
   
   12. 在MRS集群详情页面，单击"组件管理 \> ZooKeeper \> 服务配置 \> 全部配置 \> quorumpeer \> Performance"中，将"maxCnxns"调整到20000或更多。
   
   13. 界面上告警是否消除？
       - 是，处理完毕。
       
       - 否，执行[步骤 2]。
        
   
   
   
   
2. 收集故障信息。
   
   1. 在MRS Manager界面，单击"系统设置 \> 日志导出"。
   
   2. 请联系运维人员，并发送已收集的故障日志信息。
   
   
   
   
 
#### 参考信息
无。
