ALM-38011 Broker上用户连接数使用率超过设定阈值
告警解释
系统每30秒周期性检测Broker上每个用户的连接数情况,当连续5次检测到Broker上某个用户的连接数使用占比超过阈值(默认80%)时产生该告警。
平滑次数为5,当Broker上某个用户的连接数使用占比低于阈值时,告警恢复。
告警可自动清除,但当某个用户的连接数突然变为0时,而且不再建立连接,此时该告警不会消除,需要手动清除。
告警属性
告警ID |
告警级别 |
可自动清除 |
---|---|---|
38011 |
重要 |
是 |
告警参数
参数名称 |
参数含义 |
---|---|
来源 |
产生告警的集群名称。 |
服务名 |
产生告警的服务名称。 |
角色名 |
产生告警的角色名称。 |
主机名 |
产生告警的主机名。 |
用户名 |
产生告警的用户名。 |
对系统的影响
当同一个用户连接数太多时,产生告警的用户将无法与Broker建立新的连接。
可能原因
- 客户端使用同一个用户建立的连接个数超过设定阈值。
- 用户连接数使用率阈值设置不符合业务需求。
处理步骤
检查客户端使用同一个用户建立的连接个数。
- 在FusionInsight Manager首页,选择“运维 > 告警 > 告警 > Broker上用户连接数使用率超过设定阈值”。在“定位信息”中查看告警上报的Broker实例主机名和用户名。
- 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Kafka > 实例”,选择上报告警实例主机名对应的角色。单击图标区域右上角下拉菜单,选择“定制 > 其它”,勾选“Broker上用户连接数使用率”,“Broker上用户最大连接数状况”和“Broker上用户连接数使用个数”,查看当前Broker下用户的连接数状况。
- 观察当前告警用户的实时连接数情况,确认当前用户的实时监控数据是否存在。
- 是,执行4。
- 否,说明当前用户已经断开所有连接,则手动清除告警,操作结束。
当告警用户断开所有连接之后,该用户的监控数据会消失,此时无法自动清除告警,需要手动清除。
- 确认该告警的用户是否为业务侧允许的合法用户。
- 在客户端执行如下命令对该用户的连接数进行限制。这里有两种命令行配置规则:
- 针对特定Broker,特定用户。
kafka-configs.sh --bootstrap-server <broker ip:port> --alter --add-config 'max.connections.per.user.overrides=[<username>:<connection.number>]' --entity-type brokers --entity-name <broker.id> --command-config Kafka/kafka/config/producer.properties
对于非法用户,需要和业务侧确认减小非法用户的最大连接个数或者将最大连接数设置为0。
上述命令需要指定Broker的IP和端口,设置配置项的大小,指定brokerId和用户名,这里的用户指kerberos认证用户。
使用命令行工具更新的配置可以动态生效,重启服务会失效。如果想在重启后继续生效,请在FusionInsight Manager首页,选择“集群 > 待操作的集群名称 > 服务 > Kafka > 配置 > 全部配置 > Broker > 服务”,将配置信息更新到“max.connections.per.user.overrides”中。
- 针对特定用户,默认Broker,即集群所有的Broker。
kafka-configs.sh --bootstrap-server <broker ip:port> --alter --add-config 'max.connections.per.user.overrides=[<username>:<connection.number>]' --entity-type brokers ---entity-default --command-config Kafka/kafka/config/client.properties
例如:
kafka-configs.sh --bootstrap-server 10.153.3.26:21007 --alter --add-config 'max.connections.per.user.overrides=[showcase:4]' --entity-type brokers --entity-name 1 --command-config Kafka/kafka/config/client.properties
- 针对特定Broker,特定用户。
- 通过2查看该用户当前最大连接数是否为0,当前用户的连接数是否减少或不变。
- 是,手动清除告警,操作结束。
- 否,执行7。
- 查看当前用户实时的连接个数和使用率对比历史数据是否有明显的异常增长,已经达到设定的最大连接数。
如果对比历史数据发现该用户的连接有明显的增加,甚至达到了设定的最大连接数,那么该用户的连接可能存在异常,需要和业务方进行确认。
检查用户的连接个数是否符合业务需求。
- 确认该用户的连接个数是否符合业务需求。
- 是,执行9。
- 否,联系业务方进行异常连接排查。
如果用户连接个数非正常业务需要,需要联系业务方进行排查问题,可以从两方面入手:
- 需要业务方排查是否有新业务加入导致用户连接数激增。
- 排查业务侧代码是否存在句柄泄露问题。
- 考虑是否增大该用户的最大连接数个数。
- 根据业务侧需求增加该用户的最大连接个数。在Kafka客户端对该用户的连接数重新进行设置,命令参考5。
- 等待几分钟,查看告警是否自动消除。
- 根据业务侧需求考虑是否需要将该用户添加到白名单中。
将用户添加到白名单,需要重启Kafka服务,这样会中断服务导致业务受影响,因此如果要采用这种方式,必须和业务侧确认后才能进行。
- 在FusionInsight Manager首页,选择“集群 > 待操作的集群名称 > 服务 > Kafka > 配置 > 全部配置 > Broker(角色) > 服务”,将该用户添加到“max.connections.per.user.whitelist”配置项中。
- 重启服务使其生效,同时需要手动清除该告警。操作结束。
收集故障信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
无