一下Flume中央日志系统(版本号:1.3.)的使用方式

优采云 发布时间: 2021-08-09 04:45

  一下Flume中央日志系统(版本号:1.3.)的使用方式

  这两天仔细研究了Flume Central Log System(版本号:1.3.X)。在我看来,Flume 仍然是一个非常好的日志采集系统,它的设计理念非常简单。使用简洁。并且是一个开源项目,基于Java语言开发,可以开发一些自定义功能。运行Flume时,机器必须安装JDK6.0以上版本,Flume目前只有Linux系统的启动脚本,Windows环境没有启动脚本。

  

  Flume 主要采购自 3 个重要组件:

  Source:完成日志数据的采集,分为transition和event进入通道。

  Channel:主要提供一个队列功能,简单的缓存source提供的数据。

  Sink:取出Channel中的数据,存储到文件系统、数据库中,或者提交到远程服务器。

  对现有程序的最小改动是直接使用程序原来记录的日志文件,基本可以在不改变现有程序的情况下实现无缝访问。

  直接读取文件Source,有两种方式:

  ExecSource:通过运行Linux命令,如tail -F文件名命令,不断输出最新数据。在这种模式下,必须指定文件名。

  SpoolSource:是监控配置目录下新增的文件,读取文件中的数据。需要注意两点:1、复制到spool目录下的文件已经无法打开编辑了。 2、spool 目录不能收录相应的子目录。在实际使用过程中,可以配合log4j使用。使用log4j时,将log4j文件拆分机制设置为每1分钟一次,并将文件拷贝到spool的监控目录。 log4j有一个TimeRolling插件,可以把log4j划分的文件放到spool目录下。基本实现了实时监控。 Flume传输文件后,会将文件后缀修改为.COMPLETED(后缀也可以在配置文件中灵活指定)

  ExecSource 和 SpoolSource 对比:ExecSource 可以实现实时日志采集,但是当 Flume 不运行或者出现指令执行错误时,无法采集日志数据,无法证明日志数据的完整性。 SpoolSource虽然不能实时采集数据,但是可以分分钟进行文件分割,接近实时。如果应用程序不能在几分钟内剪切日志文件,可以结合使用两种采集方法。

  Channel 有多种方式:MemoryChannel、JDBC Channel、MemoryRecoverChannel、FileChannel。 MemoryChannel 可以实现高速吞吐量,但无法保证数据完整性。 MemoryRecoverChannel 已根据官方文档的推荐建议使用 FileChannel 替换它。 FileChannel 保证数据的完整性和一致性。具体配置没有出现的FileChannel时,建议将FileChannel设置的目录和保存程序日志文件的目录设置在不同的磁盘上,以提高效率。

  Sink 在设置存储数据时可以将数据存储在文件系统、数据库、hadoop 中。当日志数据较小时,可以将数据存储在文件系统中,并设置一定的时间间隔来保存数据。当日志数据较多时,可以将相应的日志数据存储在Hadoop中,方便日后进行相应的数据分析。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线