• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Filebeat 工作原理

武飞扬头像
Doker 多克 数码品牌
帮助1

一、概述

Filebeat 是一个轻量级的托运器,用于转发和集中日志数据。 Filebeat 作为代理安装在服务器上,监视日志 您指定的文件或位置,收集日志事件并转发它们 要么到 Elasticsearch 要么 Logstash 进行索引。

Filebeat 的工作原理如下:当您启动 Filebeat 时,它会启动一个或 在为日志数据指定的位置中查找的更多输入。为 Filebeat 找到的每个日志,Filebeat 都会启动一个收割机。每 收割机读取新内容的单个日志,并将新日志数据发送到 libbeat,聚合事件并将聚合数据发送到输出 您已为文件节拍配置的。

学新通

二、工作原理

在本主题中,您将了解 Filebeat 的关键构建基块以及它们如何协同工作。了解这些概念将帮助您做出有关为特定用例配置 Filebeat 的明智决策。

Filebeat由两个主要组件组成:输入和采集器。这些组件协同工作以跟踪文件并将事件数据发送到指定的输出。

1、什么是harvester ?

采集器负责读取单个文件的内容。采集器逐行读取每个文件,并将内容发送到输出。每个文件启动一个采集器。采集器负责打开和关闭文件,这意味着在采集器运行时文件描述符保持打开状态。如果文件在获取过程中被删除或重命名,Filebeat会继续读取该文件。这样做的副作用是,磁盘上的空间被保留,直到收割机关闭。默认情况下,Filebeat会保持文件打开,直到达到close_inactive为止。

关闭harvester会产生以下后果:

  • 文件处理程序关闭,如果在采集器仍在读取文件时删除了文件,则释放底层资源。

  • 只有经过scan_frequency之后,才会再次开始获取文件。

  • 如果在harvester关闭时移动或移除文件,则不会继续收割文件。

要控制收割机何时关闭,请使用 close_* 配置选项

2、什么是输入?

输入负责管理采集器并查找所有要读取的源。

您使用输入将数据获取到Logstash中。一些更常用的输入是:

  • file:从文件系统上的文件读取,很像UNIX命令tail-0F

  • syslog:在已知端口514上侦听syslog消息,并根据RFC3164格式进行解析

  • redis:使用redis通道和redis列表从redis服务器读取。Redis通常被用作集中式Logstash安装中的“代理”,用于对来自远程Logstash“发货人”的Logstash事件进行排队。

  • beats:处理beats发送的事件。

如果输入类型为log,则输入会查找驱动器上与定义的glob路径匹配的所有文件,并为每个文件启动一个采集器。每个输入都在自己的Go例程中运行。

以下示例将Filebeat配置为从所有与指定glob模式匹配的日志文件中获取行:

  1.  
    filebeat.inputs:
  2.  
    - type: log
  3.  
    paths:
  4.  
    - /var/log/*.log
  5.  
    - /var/path2/*.log

Filebeat目前支持多种输入类型。每个输入类型可以定义多次。日志输入检查每个文件,以查看是否需要启动采集器,采集器是否已经在运行,或者是否可以忽略该文件(请参阅ignore_older)。只有在收割机关闭后文件大小发生变化时,才会拾取新行。

3、Filebeat 如何保持文件的状态?

Filebeat 保留每个文件的状态,并经常将状态刷新到注册表文件中的磁盘。该状态用于记住收割机读取的最后一个偏移量,并确保发送所有原木行。如果无法访问输出(如 Elasticsearch 或 Logstash),Filebeat 会跟踪发送的最后一行,并在输出再次可用时继续读取文件。当 Filebeat 运行时,每个输入的状态信息也会保存在内存中。重新启动 Filebeat 时,注册表文件中的数据将用于重建状态,Filebeat 会在最后一个已知位置继续每个收割机。

对于每个输入,Filebeat 都会保留它找到的每个文件的状态。由于可以重命名或移动文件,因此文件名和路径不足以标识文件。对于每个文件,Filebeat 存储唯一标识符,以检测以前是否收集过文件。

如果您的使用案例涉及每天创建大量新文件,您可能会发现注册表文件变得太大

4、Filebeat 如何保持文件的状态?

Filebeat 保留每个文件的状态,并经常将状态刷新到注册表文件中的磁盘。该状态用于记住收割机读取的最后一个偏移量,并确保发送所有原木行。如果无法访问输出(如 Elasticsearch 或 Logstash),Filebeat 会跟踪发送的最后一行,并在输出再次可用时继续读取文件。当 Filebeat 运行时,每个输入的状态信息也会保存在内存中。重新启动 Filebeat 时,注册表文件中的数据将用于重建状态,Filebeat 会在最后一个已知位置继续每个收割机。

对于每个输入,Filebeat 都会保留它找到的每个文件的状态。由于可以重命名或移动文件,因此文件名和路径不足以标识文件。对于每个文件,Filebeat 存储唯一标识符,以检测以前是否收集过文件。

如果您的使用案例涉及每天创建大量新文件,您可能会发现注册表文件变得太大

5、过滤器

过滤器是Logstash管道中的中间处理设备。如果某个事件符合某些条件,则可以将筛选器与条件组合起来对其执行操作。一些有用的过滤器包括:

  • grok:解析和构造任意文本。Grok是目前Logstash中将非结构化日志数据解析为结构化和可查询的数据的最佳方法。Logstash内置了120种模式,您很可能会找到一种满足您需求的模式!

  • mutate:对事件字段执行一般转换。您可以重命名、删除、替换和修改事件中的字段。

  • drop:完全删除一个事件,例如调试事件。

  • clone:复制事件,可能添加或删除字段。

  • GeoIP:添加有关IP地址地理位置的信息(还显示了Kibana的惊人图表!)

6、输出

输出是 Logstash 管道的最后阶段。事件可以传递 多个输出,但一旦所有输出处理完成,事件就有 完成了它的执行。一些常用的输出包括:

  • elasticsearch:将事件数据发送到 Elasticsearch。如果您打算储蓄 您的数据以高效、方便且易于查询的格式... Elasticsearch是要走的路。时期。是的,我们有偏见:)

  • 文件:将事件数据写入磁盘上的文件

  • statsd:将事件数据发送到statsd,这是一种“侦听统计信息, 像计数器和计时器一样,通过 UDP 发送并将聚合发送到一个或多个 可插拔后端服务”。如果您已经在使用 statsd,这可能是 对你有用!

7、编解码器

编解码器基本上是流过滤器,可以作为输入或输出的一部分进行操作。编解码器使您能够轻松地将消息的传输与序列化过程分离开来。流行的编解码器包括json、msgpack和纯(文本)。

  • json:以json格式对数据进行编码或解码。

  • multiline:将多行文本事件(如java异常和stacktrace消息)合并为一个事件。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggckeb
系列文章
更多 icon
同类精品
更多 icon
继续加载