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

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