使用EMR-Flume同步HDFS audit日志到HDFS

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: E-MapReduce从3.19.0版本开始对EMR-Flume提供集群管理的功能。通过集群管理功能,可以在Web页面方便的配置和管理Flume Agent。 本文将使用EMR-Flume实时同步HDFS audit日志至HDFS,便于对HDFS操作记录进行离线统计和实时分析。

使用EMR-Flume同步HDFS audit日志到HDFS

1.前言

E-MapReduce从3.19.0版本开始对EMR-Flume提供集群管理的功能。通过集群管理功能,可以在Web页面方便的配置和管理Flume Agent。
本文将使用EMR-Flume实时同步HDFS audit日志至HDFS,便于对HDFS操作记录进行离线统计和实时分析。

2.部署方案

2.1方案一

在master实例启动Flume agent,收集本地磁盘中的audit日志并sink到HDFS。
这个方案架构和配置比较简单,但是master实例本身部署了比较重要且对资源占用比较敏感的服务,比如Zookeeper,在master实例中HDFS读写操作如果占用过多资源会对这些服务产生影响。

2.2方案二

选取core实例启动Flume agent做sink HDFS的操作,在master实例启动Flume agent,收集本地磁盘中的audit日志通过Avro协议发送数据至core实例。
使用这个方案时,考虑到core实例上Flume运行的稳定性,可以选取多个core实例构成failover sink processor。
本文以方案二对操作流程作说明。

3.操作流程

3.1准备工作

创建E-MapReduce Hadoop集群,在可选服务中选择Flume。具体操作可参考创建集群

3.2 core实例配置并启动Flume Agent

比如在emr-worker-1节点进行操作,选择核心实例组进行配置,如下入所示

1

在配置页面设置如下

default-agent.sinks.default-sink.type hdfs
default-agent.channels.default-channel.type file
default-agent.sources.default-source.type avro
deploy_node_hostname emr-worker-1

在配置页面通过自定义配置添加如下配置:

default-agent.sinks.default-sink.hdfs.path 对于高可用集群,使用hdfs://emr-cluster/path形式的地址
default-agent.sinks.default-sink.hdfs.fileType DataStream
default-agent.sinks.default-sink.hdfs.rollSize 0
default-agent.sinks.default-sink.hdfs.rollCount 0
default-agent.sinks.default-sink.hdfs.rollInterval 86400
default-agent.sinks.default-sink.hdfs.batchSize 51200
default-agent.sources.default-source.bind 0.0.0.0
default-agent.sources.default-source.port 根据实际设置
default-agent.channels.default-channel.transactionCapacity 51200
default-agent.channels.default-channel.dataDirs channel存储event数据的路径
default-agent.channels.default-channel.checkpointDir 存储checkpoint的路径
default-agent.channels.default-channel.capacity 根据hdfs roll进行设置

说明:为避免生成过多小文件,通常以GB为单位生成HDFS文件,或者按天生成一个文件。此处按照时间来生成文件,可根据实际情况进行设置.

保存配置后启动Flume agent

2

3

4

查看操作历史里显示操作成功后,部署拓扑页面可以看到emr-worker-1节点的flume已经是started状态

5

emr-worker-1节点启动成功后,开始启动第二个worker节点。
同样的方式,比如在worker-2节点启动flume,修改配置项

deploy_node_hostname 节点的hostname
default-agent.sinks.default-sink.hdfs.path 对于高可用集群,使用hdfs://emr-cluster/path形式的地址

保存配置后,启动 All Components,指定机器为emr-worker-2。

3.3 master实例配置并启动Flume Agent

比如在emr-header-1节点进行操作,选择服务配置

6

配置agent如下

additional_sinks k1
deploy_node_hostname emr-header-1
default-agent.sources.default-source.type taildir
default-agent.sinks.default-sink.type avro
default-agent.channels.default-channel.type file

新增配置如下:

配置项
default-agent.sources.default-source.filegroups f1
default-agent.sources.default-source.filegroups.f1 /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.*
default-agent.sources.default-source.positionFile 存储position file的路径
default-agent.channels.default-channel.checkpointDir 存储checkpoint的路径
default-agent.channels.default-channel.dataDirs 存储event数据的路径
default-agent.channels.default-channel.capacity 根据实际情况设置
default-agent.sources.default-source.batchSize 2000
default-agent.channels.default-channel.transactionCapacity 2000
default-agent.sources.default-source.ignoreRenameWhenMultiMatching true
default-agent.sinkgroups g1
default-agent.sinkgroups.g1.sinks default-sink k1
default-agent.sinkgroups.g1.processor.type failover
default-agent.sinkgroups.g1.processor.priority.default-sink 10
default-agent.sinkgroups.g1.processor.priority.k1 5
default-agent.sinks.default-sink.hostname emr-worker-1节点的IP
default-agent.sinks.default-sink.port emr-worker-1节点Flume Agent的port
default-agent.sinks.k1.hostname emr-worker-2节点的IP
default-agent.sinks.k1.port emr-worker-2节点Flume Agent的port
default-agent.sinks.default-sink.batch-size 2000
default-agent.sinks.k1.batch-size 2000
default-agent.sinks.k1.type avro
default-agent.sinks.k1.channel default-channel

需要说明的是,Flume的taildir source在filegroups使用通配符匹配log4j的滚动日志时会有数据重复的问题,通过对EMR-Flume配置ignoreRenameWhenMultiMatching可以避免这种问题。
保存配置后,相同的方式指定机器为emr-header-1启动flume。
如果需要在emr-header-2节点启动Flume agent,只需对配置作如下修改

3.4查看同步结果

使用HDFS命令,可以看到同步的数据被写入FlumeData.${timestamp}形式的文件中,其中timestamp为文件创建的时间戳

7

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
8月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
172 0
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之pyodps的线程限制是什么意思
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
125 3
|
DataWorks 数据可视化 安全
DataWorks产品使用合集之SLS日志中新增了存在iotId这个字段,同步的时候怎么手动增加
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
120 3
|
10月前
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
362 9
|
存储 分布式计算 资源调度
通过日志聚合将作业日志存储在HDFS中
如何通过配置Hadoop的日志聚合功能,将作业日志存储在HDFS中以实现长期保留,并详细说明了相关配置参数和访问日志的方法。
208 1
通过日志聚合将作业日志存储在HDFS中
|
12月前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
190 2
|
12月前
|
SQL 存储 关系型数据库
Mysql主从同步 清理二进制日志的技巧
Mysql主从同步 清理二进制日志的技巧
120 1
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56796 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何同步SLS日志到odps上
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
156 0

热门文章

最新文章