
# ALM-38020 Kafka生产流量异常
#### 告警解释
如果用户通过脚本配置了需要上报生产流量异常告警规则（默认不存在），则系统每1分钟（可设置）周期性检测所有用户配置的Topic，当连续5次（可设置）检测到配置的Topic的生产流量不在阈值（单位为生产消息数/秒）内，则产生生产流量异常告警。
当连续5次（可设置）检测到Topic的生产流量在设置的阈值内，则对应的生产流量异常告警恢复。如果执行导致业务停止的操作，建议屏蔽此告警。
本章节仅适用于MRS 3.6.0-LTS.1及之后版本。
#### 告警属性
| 告警ID  | 告警级别                                                                             | 是否可自动清除 |
|:---|:---|:---|
| 38020 | 重要（用户自定义阈值） 紧急（用户自定义阈值） | 是       |
   
#### 告警参数
| 类别                                                                            | 参数名称              | 参数含义                   |
|:---|:---|:---|
| 定位信息   | 来源                | 产生告警的集群名称。             |
| 定位信息   | 服务名               | 产生告警的服务名称。             |
| 定位信息   | 主题名               | 产生告警的主题名称。             |
| 定位信息   | 告警规则ID            | 产生告警的规则ID              |
| 附加信息            | Trigger Condition | 生产流量异常告警是低流量告警还是高流量告警。 |
| 附加信息            | Info              | 实际生产流量与阈值。             |
   
#### 对系统的影响
Topic的生产流量超出阈值，影响该Broker进程正常提供读写功能。
#### 可能原因
业务流量真实变化，或者循环发送、重复发送消息、某个异常分支频繁触发，产生大量无意义消息，或者业务中断等。
#### 处理步骤
1. 登录MRS Manager，选择"运维 \> 告警 \> 告警"，在告警列表中查看当前告警的详细信息，在定位信息中查看告警上报的实例的主题名。
2. 选择"集群 \> 服务 \> Kafka \> KafkaTopic监控 \> *异常主题名*"，查看异常Topic的输入流量趋势，记录生产流量变化较大的时间段。
3. 查看主题名对应的业务在上述时间段是真实流量改变，还是异常导致。
4. 如果为生产流量超过上限阈值，请根据实际情况确认是否需要对该Topic生产流量进行限制。 
   - 是，执行[步骤 5]。
   
   - 否，执行[步骤 7]。
   
   
   
   
5. 使用流控脚本对Topic的生产流量进行限制。
   
   1. 以客户端安装用户，登录已安装Kafka客户端的节点。
   
   2. 切换到Kafka客户端安装目录，例如"/opt/hadoopclient"。 **cd /opt/hadoopclient**
      
   
   3. 执行以下命令，配置环境变量。 **source bigdata_env**
      
   
   4. 执行以下命令，进行用户认证（普通模式跳过此步骤）。 **kinit** *组件业务用户*
      
   
   5. 执行以下命令，切换到Kafka客户端安装目录。 **cd Kafka/kafka**
      
   
   6. 使用"kafka-configs.sh"进行Kafka Topic流量控制。 **bin/kafka-configs.sh** **--zookeeper** *ZooKeeper的任意一个节点的业务IP* :*clientPort* **/kafka** **--alter** **--add-config** '**producer_byte_rate=** *生产限流的速度* ' **--entity-type** **topics_limit** **--entity-name** *topic的名称*
      
   
   
   
   
6. 等待约5分钟，观察界面告警是否清除。 
   - 是，处理完毕。
   
   - 否，执行[步骤 7]。
   
   
   
   
**收集故障信息。**
7. 在MRS Manager界面，选择"运维 \> 日志 \> 下载"。
8. 在"服务"框中勾选待操作集群的"Kafka"。
9. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
10. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
