更新时间:2024-11-29 GMT+08:00

ALM-24001 Flume Agent异常

告警解释

Flume Agent监控模块对Flume Agent状态进行监控,当Flume Agent进程故障(每5秒检测一次)或Flume Agent启动失败时(即时上报告警),系统产生此告警。

当检测到Flume Agent进程故障恢复,Flume Agent启动成功,且告警处理完成时,告警恢复。

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

24001

重要

处理错误告警

Flume

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

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.11.0/conf/命令,进入Flume的配置目录。
  4. 执行cat ENV_VARS | grep JAVA_HOME命令。
  5. 检查JAVA_HOME目录是否存在,若步骤4执行结果返回不为空,且ll $JAVA_HOME/不为空,则JAVA_HOME目录存在。

    • 是,执行7
    • 否,执行6

  6. 指定正确的JAVA_HOME目录。
  7. 执行$JAVA_HOME/bin/java -version命令检查Flume Agent运行用户是否有JAVA可执行权限,若可以查到java版本,这说明JAVA权限满足,否则不满足。

    • 是,执行9
    • 否,执行8

      JAVA_HOME为安装Flume客户端时export导出的环境变量,也可以进入到Flume客户端安装目录/fusioninsight-flume-1.11.0/conf目录下,执行cat ENV_VARS | grep JAVA_HOME命令来查看变量的值。

  8. 执行chmod 750 $JAVA_HOME/bin/java命令赋予Flume Agent运行用户JAVA可执行权限。

检查Flume Agent的目录权限。

  1. root用户登录故障节点IP所在主机。
  2. 执行以下命令,进入Flume Agent的安装目录。

    cd Flume客户端安装目录/fusioninsight-flume-1.11.0/conf/

  3. 执行ls -al * -R命令,检查所有文件的所有者是否均是Flume Agent运行用户。

    • 是,执行12
    • 否,使用chown命令修改文件所有者为Flume Agent运行用户。

检查Flume Agent配置。

  1. 执行cat properties.properties | grep spooldir以及cat properties.properties | grep TAILDIR命令,确认Flume Source是否是spooldir类型或TAILDIR类型,若任意一个命令有返回值,则为spooldir类型或TAILDIR类型。

    • 是,执行13
    • 否,执行17

  2. 查看数据监控目录是否存在。

    • 是,执行15
    • 否,执行14
      • 查看spooldir监控目录,执行命令:cat properties.properties | grep spoolDir
      • 查看TAILDIR监控目录,执行命令:cat properties.properties | grep parentDir

  3. 指定服务器上用户自定义已经存在的数据监控目录。
  4. 查看Flume Agent运行用户对步骤13所指定的监控目录是否有可读可写可执行权限。

    • 是,执行17
    • 否,执行16

      使用Flume运行用户进入监控目录,若可以创建文件,这说明Flume运行用户是否对该监控目录具有可读可写可执行权限。

  5. 执行“chmod 777 Flume监控目录”命令赋予Flume Agent运行用户对步骤13监控目录的可读可写可执行权限。
  6. 确认Flume Sink对接组件是否处于安全模式。

    • 是,执行18
    • 否,执行23

      若用户业务配置文件properties.properties的sink为hdfs sink、hbase sink,当配置文件中包含有keytab时,则Flume Sink对接组件处于安全模式。

      若用户业务配置文件properties.properties的sink为kafka sink,当配置参数*.security.protocol的值为SASL_PLAINTEXT或为SASL_SSL时,则Flume Sink对接的Kafka处于安全模式。

  7. 使用“ll ketab路径命令”查看配置文件“*.kerberosKeytab”参数所指的keytab认证路径是否存在。

    • 是,执行20
    • 否,执行19

      ketab路径查看方式:cat properties.properties | grep keytab

  8. 将步骤18中kerberosKeytab参数的值指定为用户自定的keytab路径,执行21
  9. 执行步骤18查看Flume Agent运行用户是否有访问keytab认证文件的权限,若返回为keytab路径,则表示有权限,否则无权限。

    • 是,执行22
    • 否,执行21

  10. 执行“chmod 755 ketab文件”赋予步骤19中所指定的keytab文件的可读权限, 并重启Flume进程。
  11. 查看告警列表中该告警是否已清除。

    • 是,处理完毕。
    • 否,执行23

收集故障信息。

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”框中勾选待操作集群的“Flume”。
  3. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后1小时,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。