7.Beats

作者: 大勇任卷舒 | 来源:发表于2022-03-17 16:11 被阅读0次

7.1 Beats简介

  • 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功能

7.4 Filebeat简介

  • 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
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

相关文章

  • 7.Beats

    7.1 Beats简介 Beats 平台是 Elastic.co 从 packetbeat 发展出来的数据收集器系...

网友评论

    本文标题:7.Beats

    本文链接:https://www.haomeiwen.com/subject/ufejdrtx.html