Filebeat 的学习笔记

Filebeat 的学习笔记

文章目录

  • Filebeat 的学习笔记
    • 1. 概述
      • 工作原理:
      • Filebeat用途
      • filebeat的构成
      • Filebeat文件夹结构
      • filebeat如何保存文件的状态
      • filebeat如何保证至少一次数据消费
    • 2. 实现原理
    • 3. 输出方式
    • 4. 使用
      • 1、下载安装
      • 2、修改配置文件
      • 3、启动
      • 4、停止
      • 5、基本命令
      • 6、输入输出
      • 7、keystore的使用
    • 5.filebeat.yml配置(log输入类型为例)
      • 常用配置解析
        • 输入类型配置解析
        • 输出类型配置解析
          • Console输出
          • ElasticSearch输出
          • LogStash输出
    • 6. 其他数据采集器
    • 7. 推荐解决方案

中文官网:https://www.elastic.co/cn/

1. 概述

Filebeat 是一个用于转发和集中日志数据的轻量级传送工具。作为代理安装在您的服务器上,Filebeat 监控您指定的日志文件或位置,收集日志事件,并将他们转发到 Elasticsearch 或 Logstash 以进行索引。

  • Filebeat由两个主要组成部分组成:prospector(探勘者)和 harvesters(矿车)。这些组建一起工作来读取文件并将事件数据发送到指定的output。

    • prospector:负责找到所有需要进行去读的数据源
    1. prospector负责管理harvester并找到所有要读取的文件来源。

    2. 如果输入类型为日志,则查找器将查找路径匹配的所有文件,并为每个文件启动一个harvester。

    3. Filebeat目前支持两种prospector类型:log和stdin。

    • harvesters:负责读取单个文件的内容,并将内容发送到output中,负责文件的打开和关闭。
    1. 负责读取单个文件的内容。
    2. 如果文件在读取时被删除或重命名,FIlebeat将继续读取文件

工作原理:

​ 当启动 Filebeat 时,它会启动一个或多个输入,这些输入会在您为日志数据指定的位置中查找。对于 FileBeat 定位的每个日志,FIlebeat 都会启动一个收集器(harvester)。每个harvester 读取单个日志以获取新内容并将新日志数据发送到 libbeat,libbeat 聚合事并将聚合数据发送到您为 Filebeat 配置的输出。

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

工作流程图如下:

Filebeat 的学习笔记_第1张图片

简介:

​ 首先filebeat是Beats中的一员。

​ Beats是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用logstash手机、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计,

1、Beats是 elastic 公司的一款轻量级数据采集产品,它包含了几个子产品:

1)packetbeat(用于监控网络流量,网络数据,收集网络流量数据)

2)filebeat(用于监听日志数据,日志文件,收集文件数据,可以替代logstash-input-file)

3)topbeat(用于搜集进程的信息、负载、内存、磁盘等数据)

​ Metricbeat(指标,收集系统、进程和文件系统级别的CPU和内存使用情况等数据)

4)winlogbeat(用于搜集windows事件日志)

5)Auditbeat (审计数据,收集审计日志)

6)Heartbeat(运行时间监控,收集系统运行时的数据)

注:社区还提供了dockerbeat等工具(非elastic公司)

2、Filebeat 是一个开源的文件收集器,采用 go 语言开发,重构 logstash采集器源码,安装在服务器上作为代理来监视日志目录或特定的日志文件,并把它们发送到logstash 或 elasticsearch等。

3、Filebeat是代替logstash-forwarder的数据采集方案,原因是 logstash 运行在jvm上,对服务器的资源消耗比较大

Filebeat用途

  • 为什么要用 filebeat 来收集日志?为什么不直接用logstash收集日志?

因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存(这就是为什么logstash启动特别慢的原因),而filebeat 只需要10几M内存资源。常用的ELK 日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送到logstash,logstash根据配置文件进行过滤。然后将过滤之后的文件输送到elasticsearch中,通过kibana去展示。

  • 适用于集群环境下,服务多,且部署在不同机器

filebeat的构成

​ filebeat结构:由两个组件构成,分别是inputs(输入)和harvesters(收集器),这些组件一起工作来跟踪文件并并事件数据发送到您指定的输出,harvester付原则读取单个文件的内容。harvester逐行读取每个文件,并将内容发送到输出。为每个文件启动一个harvester。harvester负责打开和关闭文件,这意味着文件描述符在harvester运行时保持打开状态。如果在收集文件时删除或重命名文件,FIlebeat将继续读取该文件。这样做的副作用是,磁盘上的空间一直保留到harvester关闭。默认情况下,Filebeat保持文件打开,直到达到close-inactive

关闭harvester可以会产生的结果:

  • 文件处理程序关闭,如果harvester仍在读取文件时被删除,则释放底层资源。
  • 只有在scan-frequency结束之后,才会再次启动文件的收集。
  • 如果该文件在harvester关闭时被移除或删除,该文件的手机将不会继续

​ 一个input 负责管理harvesters 和寻找所有来源读取。如果inoput类型是log,则input在它自己的Go进程中运行,Filebeat当前支持多种输入类型。每个输入类型可以定义多次。日志输入检查每个文件,以查看是否需要启动harvester、是否已经在运行harvester或是否可以忽略该文件。

Filebeat文件夹结构

描述
filebeat 用于启动filebeat的二进制文件
data 持久化数据文件的位置
logs Filebeat创建的日志的位置
modules.d 简化filebeat配置的模板文件夹,如nginx/kafka等日志收集模板
filebeat.yml filebeat配置文件

filebeat如何保存文件的状态

​ Filebeat保留每个文件的状态,并经常将状态刷新到磁盘中的注册表文件中,该状态用于记住harvester读取的最后一个偏移量,并确保发送所有日志行。如果无法访问输出(如Elasticsearch或Logstash),Filebeat将跟踪最后发送的行,并在输出在此可用时继续读取文件。当Filebeat运行时,每个输入的状态信息也保存在内存中,当Filebeat重新启动时,来自注册表文件的数据用于重建状态,Filebeat在最后一个已知位置继续每个harvester。对于每个输入,Filebeat都会保留它找到的每个文件的状态。由于文件可以重命名或移动,文件名和路径不足以标识文件。对于每个文件,Filebeat存储唯一的标识符,以检测文件是否以前被捕获。

filebeat如何保证至少一次数据消费

​ filebeat保证事件将至少传递到配置的输出一次,并且不会丢失数据。是因为它将每个事件的传递状态存储在注册表文件中。在已定义的输出被阻止且未确认所有事件的情况下,Filebeat将继续尝试发送时间,指导输出确认已接收到事件为止。如果Filbeat在发送事件的过程中关闭,它不会等待输出确认所有事件后再关闭。当Filebeat重新启动时,将再次将Filebeat关闭前未确认的所有事件发送到输出。这样可以确保每个事件至少发送一次,但最终可能会有重复的事件发送到输出。通过设置shutdown_timeout选项,可以将Filebeat配置为在关机前等待特定时间。

2. 实现原理

Filebeat 的学习笔记_第2张图片

当开启 filebeat 程序的时候,它会启动一个或多个探测器(prospectors)去检测指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后 filebeat 会发送集合的数据到你指定的地点。

3. 输出方式

1)Elasticsearch(推荐)

2)Logstash (推荐)

3)File

4)Console

5)Kafka

6)Redis

4. 使用

1、下载安装

  1. 源码

wget https://download.elastic.co/beats/filebeat/filebeat-1.3.0-x86_64.tar.gz

tar -zxvf filebeat-1.3.0-x86_64.tar.gz

  1. deb

curl -L -Ohttps://download.elastic.co/beats/filebeat/filebeat_1.3.0_amd64.deb

sudo dpkg -i filebeat_1.3.0_amd64.deb

  1. rpm

curl -L -Ohttps://download.elastic.co/beats/filebeat/filebeat-1.3.0-x86_64.rpm

sudo rpm -vi filebeat-1.3.0-x86_64.rpm

  1. mac

curl -L -Ohttps://download.elastic.co/beats/filebeat/filebeat-1.3.0-darwin.tgz

tar -xzvf filebeat-1.3.0-darwin.tgz2、安装

  1. win

a、下载windows zip 文件 点击下载

b、解压文件到C:/ProgramFiles

c、重命名为Filebeat

d、带看PowerShell 提示符作为管理员(右键单击PowerShell的图标,并选择以管理员身份运行)。如果您运行的是Windows XP,则可能需要下载并安装PowerShell

e、运行以下命令来安装FIlebeat作为Windows 服务

cd ‘C:\ProgramFiles\Filebeat’

C:\ProgramFiles\Filebeat> .\install-service-filebeat.ps1

2、修改配置文件

Filebeat的配置文件是/etc/filebeat/filebeat.yml,遵循YAML语法。具体可以配置如下几个项目:

  • Filebeat
  • Output
  • Shipper
  • Logging(可选)
  • Run Options(可选)

File beat 主要定义prospector 的列表,定义监控那里的日志文件,关于如何定义的详细信息可以参考filebeat.yml中的注释,下面主要介绍一些需要注意的地方。

  • paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是: /var/log/*/*.log 则只会去/var/log 目录的所有子目录中寻找以“.log”结尾的文件,而不会寻找/var/log 目录下以“.log”结尾的文件。
    • encoding:指定被监控的文件的编码类型,使用plain和utf-8都是可以处理中文日志的。
    • input_type:指定文件的输入类型log(默认)或者stdin。
    • exclude_lines:在输入中排除符合正则表达式列表的那些行。
    • include_lines:包含输入中符合正则表达式列表的那些行(默认包含所有行),include_lines执行完毕之后会执行exclude_lines。
    • exclude_files:忽略掉符合正则表达式列表的文件(默认为每一个符合paths定义的文件都创建一个harvester)。
    • fields:向输出的每一条日志添加额外的信息,比如“level:debug”,方便后续对日志进行分组统计。默认情况下,会在输出信息的fields子目录下以指定的新增fields建立子目录,例如fields.level。

fields:
level: debug

  • fields_under_root:如果该选项设置为true,则新增fields成为顶级目录,而不是将其放在fields目录下。自定义的field 会覆盖filebeat 默认的field。例如添加如下配置:

    fields:
    level: debug
    fields_under_root: true

    • ignore_older:可以指定Filebeat忽略指定时间段以外修改的日志内容,比如2h(两个小时)或者5m(5分钟)。
    • close_older:如果一个文件在某个时间段内没有发生过更新,则关闭监控的文件handle。默认1h,change只会在下一次scan才会被发现
    • force_close_files:Filebeat会在没有到达close_older之前一直保持文件的handler,入如果在这个时间窗内删除文件会有问题,所以可以把force_close_files设置为true,只要filebeat检测到文件名字发生变化,就会关掉这个handle。
    • scan_frequency:Filebeat以多快的频率去prospector指定的目录下面检测文件更新(比如是否有新增文件),如果设置为0s,则Filebeat会尽可能快地感知更新(占用的CPU会变高)。默认是10s。
    • document_type:设定 Elasticsearch输出时的document的type字段,也可以用来给日志进行分类。
    • harvester_buffer_size:每个harvester监控文件时,使用的buffer的大小。
    • max_bytes:日志文件中增加一行算一个日志事件,max_bytes限制在一次日志事件中最多上传的字节数,多出的字节会被丢弃。
    • multiline:适用于日志中每一条日志占据多行的情况,比如各种语言的报错新调用栈。
    • tail_files:如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的没遗憾那个文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。
    • backoff:Filebeat 检测到某个文件到了EOF之后,每次等待多久再去检测文件是否有更新,默认为1s.
    • max_backoff:Filebeat检测到某个文件到了EOF之后,等待检测文件更新的最大时间,默认是10秒。
    • backoff_factor:定义到达max_backoff的速度,默认因子是2,到达max_backoff后,变成每次等待max_backoff那么长的时间才backoff一次,直到文件有更新才会重置为backoff。比如:如果设置为1,意味着使用了退避算法,每个backoff那么长的时间退避一次。
    • spool_size:spooler的大小,spooler中的事件数量超过这个阈值的时候会清空发送出去(不论是否达到超过时间)。
    • idle_timeout:spooler的超时时间,如果到了超时时间,spooler也会清空发送出去(不论是否到达容量的阈值)。
    • registry_file:记录filebeat处理日志文件的位置的文件
    • config_dir:如果要在本配置文件中引入其他位置的配置文件,可以写在这里(需要写完整路径),但是只处理prospector 的部分。
    • publish_asunc:是否采用异步发送模式(实验功能)。

3、启动

sudo /etc/init.d/filebeat start

  • ./filebeat -e -c filebeat.yml
    • -c:配置文件位置
    • -path.logs:日志位置
    • -path.data:数据位置
    • -path.home:家位置
    • -e:关闭日志输出
    • -d 选择器:启用对指定选择器的调试。对于选择器,可以指定逗号分隔的组件列表,也可以使用-d"*"为所有组件启用调试。例如,-d "publish"显示所有”publish"相关的消息。
  • 后台启动filebeat
    • nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 & 将所有标准输出及标准错误输出到/dev/null空设备,即没有任何输出
    • nohup ./filebeat -e -c filebeat.yml > filebeat.log &

4、停止

1) ps -ef |grep filebeat

2) kill 掉该进程 (kill -9 pids)

5、基本命令

详见官网:https://www.elastic.co/guide/en/beats/filebeat/current/command-line-options.html

export 		#导出
run			#执行(默认执行)
test		#测试配置
keystore	#密钥存储
modules		#模块配置管理
setup		#设置初始环境

例如:./filebeat test config #用来测试配置文件是否正确

6、输入输出

支持的输入组件:

Multilinemessages,Azureeventhub,CloudFoundry,Container,Docker,GooglePub/Sub,HTTPJSON,Kafka,Log,MQTT,NetFlow,Office365ManagementActivityAPI,Redis,s3,Stdin,Syslog,TCP,UDP(最常用的额就是log)
支持的输出组件:

Elasticsearch,Logstash,Kafka,Redis,File,Console,ElasticCloud,Changetheoutputcodec(最常用的就是Elasticsearch,Logstash)

7、keystore的使用

keystore主要是防止敏感信息被泄露,比如密码等,像ES的密码,这里可以生成一个key为ES-PWD,值为es的password的一个对应关系,在使用es的密码的时候就可以使用${ES_PWD}使用。

创建一个存储密码的keystore:filebeat keystore create

然后往其中添加键值对,例如:filebeat keystore add ES_PWD

使用覆盖原来键的值: filebeat keystore add ES_PWD -force

删除键值对: filebeat keystore remove ES_PWD

查看已有的键值对: filebeat keystore list

例如:后期就可以通过${ES_PWD}使用其值,例如:

output。elasticsearch.password:“${ES_PWD}”

5.filebeat.yml配置(log输入类型为例)

1、type: log #input类型为log
2、enable: true #表示是该log类型配置生效
3、paths: #指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是:/var/log/* /*.log 则只会去/var/log目录的所有子目录中寻找以".log"结尾的文件,而不会寻找/var/log目录下以".log"结尾的文件。
4、recursive_glob.enabled: #启用全局递归模式,例如/foo/**包括/foo, /foo/*, /foo/*/*
5、encoding:#指定被监控的文件的编码类型,使用plain和utf-8都是可以处理中文日志的
6、exclude_lines: [‘^DBG’] #不包含匹配正则的行
7、include_lines: [‘^ERR’, ‘^WARN’] #包含匹配正则的行
8、harvester_buffer_size: 16384 #每个harvester在获取文件时使用的缓冲区的字节大小
9、max_bytes: 10485760 #单个日志消息可以拥有的最大字节数。max_bytes之后的所有字节都被丢弃而不发送。默认值为10MB (10485760)
10、exclude_files: [‘.gz$’] #用于匹配希望Filebeat忽略的文件的正则表达式列表
11、ingore_older: 0 #默认为0,表示禁用,可以配置2h,2m等,注意ignore_older必须大于close_inactive的值.表示忽略超过设置值未更新的文件或者文件从来没有被harvester收集
12、close_* #close_ *配置选项用于在特定标准或时间之后关闭harvester。 关闭harvester意味着关闭文件处理程序。 如果在harvester关闭后文件被更新,则在scan_frequency过后,文件将被重新拾取。 但是,如果在harvester关闭时移动或删除文件,Filebeat将无法再次接收文件,并且harvester未读取的任何数据都将丢失。
13、close_inactive #启动选项时,如果在制定时间没有被读取,将关闭文件句柄。

读取的最后一条日志定义为下一次读取的起始点,而不是基于文件的修改时间。

如果关闭的文件发生变化,一个新的harverster将在scan_frequency运行后被启动。

建议至少设置一个大于读取日志频率的值,配置多个prospector来实现针对不同更新速度的日志文件。

使用内部时间戳机制,来反映记录日志的读取,每次读取到最后一行日志时开始倒计时使用2h 5m 来表示
14、close_rename #当选项启动,如果文件被重命名和移动,filebeat关闭文件的处理读取
15、close_removed #当选项启动,文件被删除时,filebeat关闭文件的处理读取这个选项启动后,必须启动clean_removed
16、close_eof #适合只写一次日志的文件,然后filebeat关闭文件的处理读取
17、close_timeout #当选项启动时,filebeat会给每个harvester设置预定义时间,不管这个文件是否被读取,达到设定时间后,将被关闭
18、close_timeout 不能等于ignore_older,会导致文件更新时,不会被读取如果output一直没有输出日志事件,这个timeout是不会被启动的,至少要要有一个事件发送,然后haverter将被关闭
设置0 表示不启动
19、clean_inactived #从注册表文件中删除先前收获的文件的状态
设置必须大于ignore_older+scan_frequency,以确保在文件仍在收集时没有删除任何状态
配置选项有助于减小注册表文件的大小,特别是如果每天都生成大量的新文件
此配置选项也可用于防止在Linux上重用inode的Filebeat问题
20、clean_removed #启动选项后,如果文件在磁盘上找不到,将从注册表中清除filebeat
如果关闭close removed 必须关闭clean removed
21、scan_frequency #prospector检查指定用于收获的路径中的新文件的频率,默认10s
22、tail_files:#如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。
23、symlinks:#符号链接选项允许Filebeat除常规文件外,可以收集符号链接。收集符号链接时,即使报告了符号链接的路径,Filebeat也会打开并读取原始文件。
24、backoff: #backoff选项指定Filebeat如何积极地抓取新文件进行更新。默认1s,backoff选项定义Filebeat在达到EOF之后再次检查文件之间等待的时间。
25、max_backoff: #在达到EOF之后再次检查文件之前Filebeat等待的最长时间
26、backoff_factor: #指定backoff尝试等待时间几次,默认是2
27、harvester_limit:#harvester_limit选项限制一个prospector并行启动的harvester数量,直接影响文件打开数

28、tags #列表中添加标签,用过过滤,例如:tags: [“json”]
29、fields #可选字段,选择额外的字段进行输出可以是标量值,元组,字典等嵌套类型
30、fields_under_root #如果值为ture,那么fields存储在输出文档的顶级位置

31、multiline.pattern #必须匹配的regexp模式
32、multiline.negate #定义上面的模式匹配条件的动作是 否定的,默认是false
假如模式匹配条件’^b’,默认是false模式,表示讲按照模式匹配进行匹配 将不是以b开头的日志行进行合并
如果是true,表示将不以b开头的日志行进行合并
33、multiline.match # 指定Filebeat如何将匹配行组合成事件,在之前或者之后,取决于上面所指定的negate
34、multiline.max_lines #可以组合成一个事件的最大行数,超过将丢弃,默认500
35、multiline.timeout #定义超时时间,如果开始一个新的事件在超时时间内没有发现匹配,也将发送日志,默认是5s
36、max_procs #设置可以同时执行的最大CPU数。默认值为系统中可用的逻辑CPU的数量。
37、name #为该filebeat指定名字,默认为主机的hostname

常用配置解析

输入类型配置解析

filebeat.inputs:
- type: log ①
  paths:
    - /var/log/system.log
    - /var/log/wifi.log
- type: log ②
  paths:
    - "/var/log/apache2/*"
  fields:
    apache: true
  fields_under_root: true

① 表示从system.logwifi.log 收集日志

② 表示收集 apache2 文件夹下的所有内容,并且使用fields 配置项将apache字段添加到输出中的根节点

paths :待收集日志的路径列表,可以为每行指定一个路径,每行以破折号(-)开头。Filebeat 会为它在指定路径下找到的每个文件启动一个harvester(收集器)

encoding:读取数据时使用的编码

exclude_lines:filebeat 会删除与列表中正则表达式匹配的任何行,默认情况下,不会删除任何行。忽略空行,如

filebeat.inputs:
- type: log
  ...
  exclude_lines: ['^DBG']

删除DBG开头的行。

include_lines:filebeat只会导出与列表中正则表达式匹配的任何行,默认情况下,将导出所有行。忽略空行,如

filebeat.inputs:
- type: log
  ...
  include_lines: ['^ERR', '^WARN']

只导出ERR/WARN 开头的数据

enabled :使用enabled 去启用或禁用inputs,默认设置为true

tags:Filebeat在每个已发布事件的标记字段中包含的标记列表。标记使得在Kibana中选择特定事件或在Logstash 中应用条件过滤变得很容易。这些标记将被附加到常规配置中指定的标记列表中。

filebeat.inputs:
- type: log
  . . .
  tags: ["json"]

fields:可选字段,您可以指定将附加信息添加到输出中。例如,可以添加可用于筛选日志数据的字段。字段可以是标量值、数组、字典或他们的任何嵌套组合。默认情况下,此处指定的字段将分组到输出文档的字段字典下。如

filebeat.inputs:
- type: log
  . . .
  fields:
    app_id: query_engine_12

fields_under_root:将自定义字段显示为顶级字段

processors:可以过滤和增强导出的数据。使用exclude_linesinclude_lines可以达到过滤数据的作用,缺点是需要为每个配置问价配置所需的筛选条件。

每个处理器接受一个事件,对事件应用定义的操作,然后返回事件。如果定义处理器列表,则按照在Filebeat配置文件中定义的顺序执行这些处理器。

可以在配置中定义处理器,以便在事件被发送到配置的输出之前对其进行处理,libbeat类库提供的处理器可以处理以下内容:

  • 减少导出字段的数量
  • 使用其它元数据增强事件
  • 执行附加处理和解码

如 删除DBG开头的行

processors:
 - drop_event:
     when:
        regexp:
           message: "^DBG:"

如删除来自某个日志文件的所有日志消息

processors:
 - drop_event:
     when:
        contains:
           source: "test"

输出类型配置解析

Console输出
output.console:
  pretty: true

pretty:如果 pretty 设置为true,则写入stdout的时间将被格式化。默认值为false

codec:输出编解码器配置。如果缺少编解码器部分,事件将使用“pretty”选项进行json编码。

enabled:enabled config 是用于启用或禁用输出的布尔设置。如果设置为false,则禁用输出

ElasticSearch输出
output.elasticsearch:
  hosts: ["https://localhost:9200"]
  index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
  ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
  ssl.certificate: "/etc/pki/client/cert.pem"
  ssl.key: "/etc/pki/client/cert.key"

hosts:要连接到的ElasticSearch节点的列表。事件按循环顺序分发到这些节点。如果一个节点无法访问,则事件将自动返送到另一个节点。每个Elas节点都可以定义为URL或IP:PORT。若没有指定port,则默认是9200

index:索引名称。默认的格式是filebeat-%{[beat.version]}-%{+yyyy.MM.dd}(如filebeat-6.5.4-2022-09-23)。如果修改了这个配置,则必须同时配置setup.template.namesetup.template.pattern

LogStash输出
output.logstash:
  hosts: ["127.0.0.1:5044"]

hosts :指定配置的LogStash服务器和监听的端口。

6. 其他数据采集器

1)logstash-forwarder(elastic)

2)scribe(FaceBook)

3)chukwa(Apache)

4)flume(Cloudera)

5)fluentd

7. 推荐解决方案

1、Filebeat(采集数据)+ Elasticsearch(建立索引)+ Kibana(展示)

2、Filebeat(采集数据)+ Logstash(过滤)+ Elasticsearch(建立索引) + Kibana(展示)

3、Filebeat(采集数据)+ Kafka/Redis/File/Console(数据传输) + 应用程序(处理,存储,展示)

4、Filebeat(采集数据)+ Logstash(过滤)+ Kafka/Redis/File/Console(数据传输)+ 应用程序(处理,存储,展示)

注:Redis/File/Console 如何判断增量是一个问题

你可能感兴趣的:(学习,Filebeat)