
# ALM-24001 Flume Agent异常
#### 告警解释
Flume Agent监控模块对Flume Agent状态进行监控，当Flume Agent进程故障（每5秒检测一次）或Flume Agent启动失败时（即时上报告警），系统产生此告警。
当检测到Flume Agent进程故障恢复，Flume Agent启动成功，且告警处理完成时，告警恢复。
#### 告警属性
| 告警ID  | 告警级别 | 是否自动清除 |
|:---|:---|:---|
| 24001 | 重要   | 是      |
   
#### 告警参数
| 参数名称    | 参数含义           |
|:---|:---|
| 来源      | 产生告警的集群名称。     |
| 服务名     | 产生告警的服务名称。     |
| AgentId | 产生告警的Agent ID。 |
| 角色名     | 产生告警的角色名称。     |
| 主机名     | 产生告警的主机名。      |
   
#### 对系统的影响
产生告警的Flume Agent实例无法正常启动，定义在该实例下的数据传输任务暂时中断，对于实时数据传输，会丢失实时数据。
#### 可能原因
- JAVA_HOME目录不存在或JAVA权限异常。
- Flume Agent目录权限异常。
- Flume Agent启动失败。
 
#### 处理步骤
****检查JAVA_HOME目录是否存在或JAVA权限是否正确****
1. 以**root**用户登录故障节点IP所在主机，用户密码为安装前用户自定义，请咨询系统管理员。
2. 执行以下命令获取发生告警的Flume客户端安装目录。（AgentId可以在告警的"定位信息"中获取） 
   **ps -ef\|grep** *AgentId* **\| grep -v grep \| awk -F 'conf-file ' '{print $2}' \| awk -F 'fusioninsight' '{print $1}'**
   
   
3. 使用"**su -** *Flume安装* 用户"命令切换到Flume安装用户，执行**cd** *Flume* *客户端安装目录* **/fusioninsight-flume-1.9.0/conf/**命令，进入Flume的配置目录。
4. 执行**cat ENV_VARS \| grep JAVA_HOME**命令。
5. 检查JAVA_HOME目录是否存在，若步骤[步骤 4]执行结果返回不为空，且**ll** **$JAVA_HOME/** 不为空，则JAVA_HOME目录存在。
   
   - 是，执行[步骤 7]。
   
   - 否，执行[步骤 6]。
   
   
   
   
6. 指定正确的JAVA_HOME目录，如**export** **JAVA_HOME** **=${BIGDATA_HOME}/common/runtime0/jdk** *版本号*。
7. 执行**$JAVA_HOME/bin/java -version** 命令检查Flume Agent运行用户是否有JAVA可执行权限，若可以查到java版本，这说明JAVA权限满足，否则不满足。
   
   - 是，执行[步骤 9]。
   
   - 否，执行[步骤 8]。
     ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
     **JAVA_HOME** 为安装Flume客户端时export导出的环境变量，也可以进入到*Flume* *客户端安装目录* **/fusioninsight-flume-1.9.0/conf** 目录下，执行**cat ENV_VARS \| grep JAVA_HOME**命令来查看变量的值。
     
   
   
   
   
8. 执行**chmod 750** **$JAVA_HOME/bin/java**命令赋予Flume Agent运行用户JAVA可执行权限。
**检查Flume Agent的目录权限。**
9. 以**root**用户登录故障节点IP所在主机。
10. 执行以下命令，进入Flume Agent的安装目录。 
    **cd** *Flume* *客户端安装目录* **/fusioninsight-flume-1.9.0/conf/**
    
    
11. 执行**ls -al \* -R** 命令，检查所有文件的所有者是否均是Flume Agent运行用户。
    
    - 是，执行[步骤 12]。
    
    - 否，使用**chown**命令修改文件所有者为Flume Agent运行用户。
    
    
    
    
**检查Flume Agent配置。**
12. 执行**cat properties.properties \| grep spooldir** 以及**cat properties.properties \| grep TAILDIR** 命令，确认Flume Source是否是spooldir类型或TAILDIR类型，若任意一个命令有返回值，则为spooldir类型或TAILDIR类型。
    
    - 是，执行[步骤 13]。
    
    - 否，执行[步骤 17]。
    
    
    
    
13. 查看数据监控目录是否存在。
    
    - 是，执行[步骤 15]。
    
    - 否，执行[步骤 14]。
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      查看spooldir监控目录，执行命令：**cat properties.properties \| grep spoolDir**
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001088608580.png "点击放大")
      查看TAILDIR监控目录，执行命令：**cat properties.properties \| grep parentDir**
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001135745627.png "点击放大")
      
    
    
    
    
14. 指定服务器上用户自定义已经存在的数据监控目录。
15. 查看Flume Agent运行用户对步骤[步骤 13]所指定的监控目录是否有可读可写可执行权限。
    
    - 是，执行[步骤 17]。
    
    - 否，执行[步骤 16]。
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      使用Flume运行用户进入监控目录，若可以创建文件，这说明Flume运行用户是否对该监控目录具有可读可写可执行权限。
      
    
    
    
    
16. 执行"**chmod 777** *Flume监控目录* "命令赋予Flume Agent运行用户对步骤[步骤 13]监控目录的可读可写可执行权限。
17. 确认Flume Sink对接组件是否处于安全模式。
    
    - 是，执行[步骤 18]。
    
    - 否，执行[步骤 23]。
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      若用户业务配置文件properties.properties的sink为hdfs sink、hbase sink，当配置文件中包含有keytab时，则Flume Sink对接组件处于安全模式。
      若用户业务配置文件properties.properties的sink为kafka sink，当配置参数\*.security.protocol的值为SASL_PLAINTEXT或为SASL_SSL时，则Flume Sink对接的Kafka处于安全模式。
      
    
    
    
    
18. 使用"**ll** *keytab路径命令* "查看配置文件"\*.kerberosKeytab"参数所指的keytab认证路径是否存在。
    
    - 是，执行[步骤 20]。
    
    - 否，执行[步骤 19]。
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      ke*y* tab路径查看方式：**cat properties.properties \| grep keytab**
      
    
    
    
    
19. 将步骤[步骤 18]中kerberosKeytab参数的值指定为用户自定的keytab路径，执行[步骤 21]。
20. 执行步骤[步骤 18]查看Flume Agent运行用户是否有访问keytab认证文件的权限，若返回为keytab路径，则表示有权限，否则无权限。
    
    - 是，执行[步骤 22]。
    
    - 否，执行[步骤 21]。
    
    
    
    
21. 执行"**chmod 755** *keytab文件* "赋予步骤[步骤 19]中所指定的keytab文件的可读权限, 并重启Flume进程。
22. 查看告警列表中该告警是否已清除。
    
    - 是，处理完毕。
    
    - 否，执行[步骤 23]。
    
    
    
    
**收集故障信息。**
23. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
24. 在"服务"框中勾选待操作集群的"Flume"。
25. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后1小时，单击"下载"。
26. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
