日志采集工具Filebeat

Filebeat是一款轻量级的日志采集工具,用于从本地文件系统收集日志数据,发送到如Logstash或Elasticsearch的接收端。它支持多种配置选项,包括输入、筛选、关闭策略等,以实现高效、可靠的数据传输。Filebeat通过Prospector和Harvester组件管理日志文件,保证在输出端忙碌时能自动调整读取速度,避免管道过载。同时,它可以保存文件状态,确保在输出端恢复后能继续从上次位置读取。
摘要由CSDN通过智能技术生成

日志采集工具Filebeat

Filebeat简介

Filebeat 是一个用Go语言编写的轻量级开源日志传送器,用于本地文件的日志数据采集,可以将日志数据发送到Logstash和Elasticsearch等。 它提供了“至少一次”保证的数据传输,并且它使用了背压敏感协议,因此不会使管道过载。

带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。

Filebeat可将收集的日志原样上报,若日志源程序支持json格式输出(比如Nginx或Apache),那么可以直接上报ES。但是,还有很多程序不支持修改日志格式,比如MySQL慢日志、Linux系统日志等。因此,可使用logstash对日志数据进行结构化处理等操作并转发给指定output。

当发送数据到Logstash或Elasticsearch时,Filebeat使用一个反压力敏感(backpressure-sensitive)的协议来解释高负荷的数据量。当Logstash数据处理繁忙时,Filebeat放慢它的读取速度。一旦压力解除,Filebeat将恢复到原来的速度,继续传输数据。

一台服务器只能启动一个filebeat进程。

Filebeat适用于集群环境下,资源消耗相较于logstash小,避免了在每台服务器都部署logstash。可通过Filebeat部署在需要日志数据的服务器上采集日志数据并发送到logstash所在的服务器进行处理。

Filebeat组件

  1. 采集器Harvester

**Harvester负责读取单个文件的内容。**读取每个文件,并将内容发送到配置指定的output,每个文件启动一个harvester, harvester负责打开和关闭文件,这意味着在运行时文件描述符保持打开状态。

如果文件在读取时被删除或重命名,Filebeat将继续读取文件。这有副作用,即在harvester关闭之前,磁盘上的空间被保留。默认情况下,Filebeat将文件保持打开状态,直到达到close_inactive状态

关闭harvester会产生以下结果:

1)如果在harvester仍在读取文件时文件被删除,则关闭文件句柄,释放底层资源。

2)文件的采集只会在scan_frequency过后重新开始。

3)如果在harvester关闭的情况下移动或移除文件,则不会继续处理文件。

要控制harvester何时关闭,使用close_ *配置选项

  1. 查找器Prospector

Prospector负责管理harvester并找到所有要读取的文件来源。如果输入类型为日志,则查找器将查找路径匹配的所有文件,并为每个文件启动一个harvester

Filebeat目前支持两种prospector类型:log和stdin。每个prospector类型可以定义多次。日志prospector检查每个文件来查看harvester是否需要启动,是否已经运行,或者该文件是否可以被忽略(请参阅ignore_older)。

只有在harvester关闭后文件的大小发生了变化,才会读取到新行。

另外,Filebeat prospector只能读取本地文件,没有功能可以连接到远程主机来读取存储的文件或日志。

  1. 配置文件

配置文件:$FILEBEAT_HOME/filebeat.yml。Filebeat可以一次读取某个文件夹下的所有后缀名为log的文件,也可以读取指定的某一个后缀名为log的文件。

Filebeat工作方式

启动Filebeat时,它会启动一个或多个查找器prospector,查看为日志文件指定的本地路径。对于prospector所找到的每个日志文件,prospector都会启动收集器harvester。每个收集器harvester都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚合事件,并将聚合的数据发送到为Filebeat配置的输出。

工作的流程图如下:在这里插入图片描述

Filebeat可以保持每个文件的状态,并且频繁地把文件状态从注册表里更新到磁盘。这里所说的文件状态是用来记录上一次Harvster读取文件时读取到的位置,以保证能把全部的日志数据都读取出来,然后发送给output。如果在某一时刻,作为output的ElasticSearch或者Logstash变成了不可用,Filebeat将会把最后的文件读取位置保存下来,直到output重新可用的时候,快速地恢复文件数据的读取。在Filebaet运行过程中,每个Prospector的状态信息都会保存在内存里。如果Filebeat出行了重启,完成重启之后,会从注册表文件里恢复重启之前的状态信息,让FIlebeat继续从之前已知的位置开始进行数据读取。

Filebeat如何弹性输出信息

Filebeat可以保持每个文件的状态,并且频繁地把文件状态从注册表里更新到磁盘。这里所说的文件状态是用来记录上一次Harvster读取文件时读取到的位置,以保证能把全部的日志数据都读取出来,然后发送给output。如果在某一时刻,作为output的ElasticSearch或者Logstash变成了不可用,Filebeat将会把最后的文件读取位置保存下来,直到output重新可用的时候,快速地恢复文件数据的读取。在Filebaet运行过程中,每个Prospector的状态信息都会保存在内存里。如果Filebeat出行了重启,完成重启之后,会从注册表文件里恢复重启之前的状态信息,让FIlebeat继续从之前已知的位置开始进行数据读取。

Filebeat安装

安装包数据源

https://www.elastic.co/cn/downloads/beats/filebeat

Filebeat采集配置样例详细介绍

编辑filebeat.yml,遵循yaml语法;

vi /etc/filebeat/filebeat.yml

Filebeat部分主要定义prospector的列表,定义监控哪里的日志文件等等。filebeat.yml中的注释有详细信息。

type: log #input类型为log
enable: 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值