elastic stack - Filebeat 入门之 配置

本文详细介绍了Filebeat的配置方法,包括通过modules.d目录、运行时及filebeat.yml启用模块,配置inputs以读取日志文件,特别强调了如何处理多行消息,以及如何配置Elasticsearch、Logstash和Kafka输出。此外,还讨论了配置负载均衡、索引模板和监控Filebeat的相关设置。
摘要由CSDN通过智能技术生成

配置Filebeat


为了配置Filebeat,你可以编辑配置文件 filebeat.yml。还有一个完整的配置文件示例 filebeat.reference.yml

1.  指定运行哪个模块

Filebeat提供了几种启用模块的不同方式:

  • 用modules.d目录下的配置启用模块
  • 运行Filebeat的时候启用模块
  • 用filebeat.yml启用模块配置

1.1.  用modules.d目录启用模块配置

./filebeat modules enable apache2 mysql

1.2.  运行Filebeat是启用模块

./filebeat --modules nginx,mysql,system

1.3.  在filebeat.yml中启用模块

如果可能的话,你应该用modules.d目录下的配置文件

filebeat.modules:
- module: nginx
- module: mysql
- module: system

 2.  配置inputs

为了手动配置Filebeat(代替用模块),你可以在filebeat.yml中的filebeat.inputs区域下指定一个inputs列表。

列表时一个YMAL数组,并且你可以指定多个inputs,相同input类型也可以指定多个。例如:

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

2.1.  Log input

从日志文件读取行

为了配置这种input,需要指定一个paths列表,列表中的每一项必须能够定位并抓取到日志行。例如:

filebeat.inputs:
- type: log
  paths:
    - /var/log/messages
    - /var/log/*.log

你还可以应用设置其它额外的配置项(比如,fields, include_lines, exclude_lines, multiline等等)来从这些文件中读取行。你设置的这些配置对所有这种类型的input在获取日志行的时候都生效。

为了对不同的文件应用不同的配置,你需要定义多个input区域:

filebeat.inputs:
- type: log   # 从system.log和wifi.log中读取日志行
  paths:
    - /var/log/system.log
    - /var/log/wifi.log
- type: log   # 从apache2目录下的每一个文件中读取日志行,并且在输出的时候会加上额外的字段apache
  paths:
    - "/var/log/apache2/*"
  fields:
    apache: true
  fields_under_root: true

配置项

paths

例如:/var/log/*/*.log 将会抓取/var/log子目录目录下所有.log文件。它不会从/var/log本身目录下的日志文件。如果你应用recursive_glob设置的话,它将递归地抓取所有子目录下的所有.log文件。

recursive_glob.enabled

允许将**扩展为递归glob模式。启用这个特性后,每个路径中最右边的**被扩展为固定数量的glob模式。例如:/foo/**扩展到/foo, /foo/*, /foo/**,等等。如果启用,它将单个**扩展为8级深度*模式。这个特性默认是启用的,设置recursive_glob.enabled为false可以禁用它。

encoding

读取的文件的编码

下面是一些W3C推荐的简单的编码:

  • plain, latin1, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, gbk, hz-gb-2312
  • euc-kr, euc-jp, iso-2022-jp, shift-jis, 等等

plain编码是特殊的,因为它不校验或者转换任何输入。

exclude_lines

一组正则表达式,用于匹配你想要排除的行。Filebeat会删除(PS:我觉得用“丢弃”更合适)这组正则表达式匹配的行。默认情况下,没有行被删除。空行被忽略。

如果指定了multiline,那么在用exclude_lines过滤之前会将每个多行消息合并成一个单行。(PS:也就是说,多行合并成单行后再支持排除行的过滤)

下面的例子配置Filebeat删除以DBG开头的行:

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

include_lines

一组正则表达式,用于匹配你想要包含的行。Filebeat只会导出那些匹配这组正则表达式的行。默认情况下,所有的行都会被导出。空行被忽略。

如果指定了multipline设置,每个多行消息先被合并成单行以后再执行include_lines过滤。

下面是一个例子,配置Filebeat导出以ERR或者WARN开头的行:

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

(画外音:如果 include_lines 和 exclude_lines 都被定义了,那么Filebeat先执行 include_lines 后执行 exclude_lines,而与这两个选项被定义的顺序没有关系。include_lines 总是在 exclude_lines选项前面执行,即使在配置文件中 exclude_lines 出现在 include_lines的前面。)

下面的例子导出那些除了以DGB开头的所有包含sometext的行:

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

harves

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值