Beats 平台是 Elastic.co 从 packetbeat 发展出来的数据收集器系统
beat 收集器可以直接写入 Elasticsearch,也可以传输给 Logstash其中抽象出来的 libbeat,提供了统一的数据发送方法,输入配置解析,日志记录框架等功能 也就是说,所有的 beat 工具,在配置上,除了 input 以外,在 output、filter、shipper、logging、run-options 上的配置规则都是完全一致的 7.2 Beats的家族
Beats是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch。
7.3 Beats功能
filebeat 是基于原先 logstash-forwarder 的源码改造出来的
7.4.1 Filebeat重要参数
spool_size: 1024 # 最大可以攒够 1024 条数据一起发送出去idle_timeout: “5s” # 否则每5 秒钟也得发送一次document_type: “apache” # 定义写入 ES 时的 _type 值ignore_older: “24h” # 超过 24小时没更新内容的文件不再监听。在 windows 上另外有一个配置叫 force_close_files,只要文件名一变化立刻关闭文件句柄,保证文件可以被删除,缺陷是可能会有日志还没读完scan_frequency: “10s” # 每 10秒钟扫描一次目录,更新通配符匹配上的文件列表tail_files: false # 是否从文件末尾开始读取harvester_buffer_size: 16384 # 实际读取文件时,每次读取 16384 字节backoff: “1s” # 每 1 秒检测一次文件是否有新的一行内容需要读取 7.4.2 Filebeat是如何工作的
Filebeat由两个主要组件组成:inputs 和 harvesters (直译:收割机,采集器)
这些组件一起工作以跟踪文件,并将事件数据发送到你指定的输出 7.5 harvester是什么
一个harvester负责读取一个单个文件的内容。harvester逐行读取每个文件(一行一行地读取每个文件),并把这些内容发送到输出。每个文件启动一个harvester。harvester负责打开和关闭这个文件,这就意味着在harvester运行时文件描述符保持打开状态。在harvester正在读取文件内容的时候,文件被删除或者重命名了,那么Filebeat会续读这个文件。这就有一个问题了,就是只要负责这个文件的harvester没用关闭,那么磁盘空间就不会释放。默认情况下,Filebeat保存文件打开直到close_inactive到达。 7.6 input是什么
一个input负责管理harvesters,并找到所有要读取的源。如果input类型是log,则input查找驱动器上与已定义的glob路径匹配的所有文件,并为每个文件启动一个harvester。每个input都在自己的Go例程中运行。下面的例子配置Filebeat从所有匹配指定的glob模式的文件中读取行:
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
- /var/path2/*.log
7.6 Filebeat如何保持文件状态
Filebeat保存每个文件的状态,并经常刷新状态到磁盘上的注册文件(registry)。
状态用于记住harvester读取的最后一个偏移量,并确保所有日志行被发送(到输出)。如果输出,比如Elasticsearch 或者 Logstash等,无法访问,那么Filebeat会跟踪已经发送的最后一行,并只要输出再次变得可用时继续读取文件。当Filebeat运行时,会将每个文件的状态新保存在内存中。当Filebeat重新启动时,将使用注册文件中的数据重新构建状态,Filebeat将在最后一个已知位置继续每个harvester。 对于每个输入,Filebeat保存它找到的每个文件的状态。
因为文件可以重命名或移动,所以文件名和路径不足以标识文件。对于每个文件,Filebeat存储惟一标识符,以检测文件是否以前读取过。 如果你的情况涉及每天创建大量的新文件,你可能会发现注册表文件变得太大了。 7.7 模块
Filebeat模块简化了公共日志格式的收集、解析和可视化。一个典型的模块(例如,对于Nginx日志)是由一个或多个fileset组成的(以Nginx为例,access 和 error)。一个fileset包含以下内容:
Filebeat 输入配置,其中包含要默认的查找或者日志文件路径。这些默认路径取决于操作系统。Filebeat配置还负责在需要的时候拼接多行事件。Elasticsearch Ingest Node 管道定义,用于解析日志行。字段定义,用于为每个字段在Elasticsearch中配置正确类型。它们还包含每个字段的简短描述。简单的Kibana dashboards,用于可视化日志文件。Filebeat会根据你的环境自动调整这些配置,并将它们加载到相应的Elastic stack 组件中。
大数据视频推荐:
CSDN
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通



