filebeat应用

目前以7.x版本为例

安装

CentOS 7yum安装

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

cat > /etc/yum.repos.d/elastic.repo << EOF
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

yum install filebeat -y

filebeat配置

filebeat.yml 基础配置示例:

单索引配置示例

多索引配置示例

动态加载配置示例

有时候要修改filebeat的采集配置,但大部分情况下配置要重启服务才会生效。filebeat可以配置动态加载配置,在指定的时间内自动扫描配置文件的变化进行重新加载。不过动态加载对于filebeat.yml文件不生效 filebeat.yml内容示例

input.yml内容示例

Nginx日志解析配置

filebeat同样支持通过Grok正则解析WEB服务日志,解析操作在processors中通过dissect进行,以下是配置示例

多行日志处理

java项目中经常遇到错误日志是由多行组成,如果按行收集,会导致日志被分割,不方便排查问题。

官方配置参考arrow-up-right

  • multiline.type 定义要使用的聚合方法。默认为"."。还可以指定pattern count 为按指定的行数进行聚合

  • multiline.pattern 指定要匹配的正则表达式。

  • multiline.negate 定义是否否定模式。默认值为 false

  • multiline.match 指定如何将匹配的行合并到事件中。after或before

negat的设置

match的设置

结果

示例 pattern: ^b

false

after

与模式匹配的连续行将追加到不匹配的前一行

![[../../../media/Images/filebeat_01.png]]

false

before

与模式匹配的连续行将附加到不匹配的下一行

![[../../../media/Images/filebeat_02.png]]

true

after

与模式不匹配的连接行将追加到匹配的上一行

![[../../../media/Images/filebeat_03.png]]

true

before

与模式不匹配的连续行将附加到匹配的下一行

![[../../../media/Images/filebeat_04.png]]

  • multiline.flush_pattern 指定一个正则表达式,在该表达式中,当前多行将从内存中刷新,结束多选消息

  • multiline.max_lines 可以组合到一个事件中的最大行数。默认值为500。

  • multiline.timeout 在指定的时间后,Filebeat将发送多行事件,即使没有找到新模式来启动新事件,默认值为5秒。

  • multiline.count_lines 要聚合到单个事件的行数。

  • multiline.skip_newline 设置后,多行事件在在没有行分隔符的情况下串联。

多行配置示例(7.x版本)

本节中的示例涵盖以下用例:

  • 将 Java 堆栈跟踪合并为单个事件

  • 将 C 样式的线条延续合并到单个事件中

  • 合并来自时间戳事件的多行

filebeat.yml配置示例

Java堆栈跟踪

Java 堆栈跟踪由多行组成,初始行之后的每一行都以空格开头,如 此示例:

Filebeat合并为一行配置示例: 此配置将任何以空格开头的行合并到前一行。

下面是一个 Java 堆栈跟踪,它提供了一个稍微复杂的示例:

Filebeat合并为一行配置示例: 在此示例中,模式与以下行匹配:

  • 以空格开头的行,后跟单词 orat…

  • 以单词开头的行Caused by:

行延续

一些编程语言在行尾使用反斜杠\字符来表示行的继续,例如

要在Filebeat中将这些行合并为单一事件,配置示例如下: 此配置将以\字符结尾的任何行与后面的行合并。

时间戳

来自Elasticsearch等服务的活动日志通常以时间戳开头,后面跟有关的特定活动信息。例如

要在Filebeat中将这些行合并为单个事件,示例配置:

应用程序事件

有时,应用程序日志包含以自定义标记开头和结尾的事件,例如:

要在Filebeat中将这些行合并为单个事件,示例配置:

示例

多行配置示例(8.x版本)

在8.x以上的版本,filebeat的input.type中不再推荐使用log官方8.13版本文档参考arrow-up-right

  • 将 Java 堆栈跟踪合并为单个事件

filesteam配置多行示例

log配置多行示例对比

服务控制

错误处理

找到filebeat的主配置filebeat.yml,在output中加入 bulk_max_size: 20,这个值默认是50,我们要改小一点,改成10或者20都行

filebeat数据流(data stream)配置

ES 7.9以后的版本支持数据流,数据流通过索引模板(index template)和 Index Lifecycle Management (ILM) 进行管理。索引模板定义了索引的设置和映射,ILM 定义了索引的生命周期管理策略(如何时滚动、何时删除)。

最后更新于