[Filebeat7.6]
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
- /var/path2/*.log
您可以添加额外的 配置设置(如fields
, include_lines
,exclude_lines
,multiline
,等),从这些文件中获取行。您指定的选项将应用于此输入收集的所有文件。
要将不同的配置设置应用于不同的文件,您需要定义多个输入节:
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
确保在所有input中每个文件只定义一次,因为定义多次这可能导致意外的行为。
paths
将获取的Glob的路径的列表。这里也支持Go Glob支持的所有模式。
例如,将所有文件从子目录的获取,/var/log/*/*.log
,将从/var/log
的子文件夹中提取所有.log
文件。它不会从/var/log
文件夹本身获取日志文件。可以使用可选recursive_glob
设置以递归方式获取目录所有子目录中的所有文件。
recursive_glob.enabled
默认开启,启用扩展**
为递归glob模式。它将单个扩展**
为8级深度*
模式。
encoding
用于读取包含国际字符的数据的文件编码。请参阅W3C建议在HTML5中使用的编码名称。
exclude_lines
正则表达式列表,匹配要排除的行。Filebeat会删除列表中与正则表达式匹配的所有行。默认情况下,不删除任何行。空行将被忽略。
如果还指定了多行设置,则在用过滤各行之前,将每条多行消息合并为一行exclude_lines
。
以下示例将Filebeat配置为删除以开头的任何行 DBG
。
filebeat.inputs:
- type: log
...
exclude_lines: ['^DBG']
支持的正则表达式模式的列表,请参见正则表达式支持。
include_lines
正则表达式列表,以匹配您要匹配的行。Filebeat仅匹配与列表中的正则表达式匹配的行。默认情况下,所有行均被导出。空行将被忽略。
如果还指定了多行设置,则在用过滤各行之前,将每条多行消息合并为一行include_lines
。
以下示例将Filebeat配置为导出以ERR
或开头的任何行WARN
:
filebeat.inputs:
- type: log
...
include_lines: ['^ERR', '^WARN']
NOTE
如果同时定义了include_lines
和exclude_lines
,首先执行include_lines,然后执行
exclude_lines`。定义两个选项的顺序无关紧要。
以下示例匹配所有包含的日志行sometext
,但以DBG
(调试消息)开头的行除外
filebeat.inputs:
- type: log
...
include_lines: ['sometext']
exclude_lines: ['^DBG']
harvester_buffer_size
在获取文件时使用的缓冲区大小(以字节为单位)。默认值为16384。
max_bytes
一条日志消息可以具有的最大字节数。之后的所有字节 max_bytes
将被丢弃而不发送。此设置对于可能会变大的多行日志消息特别有用。默认值为10MB(10485760)。
json
这些选项使Filebeat可以解码结构化为JSON消息的日志。Filebeat逐行处理日志,因此,只有每行有一个JSON对象时,JSON解码才有效。
multiline
控制Filebeat如何处理跨多行的日志消息的选项。有关配置多行选项的更多信息,请参见多行消息。
ignore_older
如果启用此选项,则Filebeat将忽略在指定时间跨度之前修改的所有文件。ignore_older
如果长时间保留日志文件,则配置特别有用。例如,如果要启动Filebeat,但只想发送最新的文件和上周的文件,则可以配置此选项。
您可以使用2h(2小时)和5m(5分钟)之类的时间字符串。默认值为0,将禁用设置。注释掉配置与将其设置为0具有相同的效果。
important
您必须设置ignore_older
为大于close_inactive
。
受此设置影响的文件分为两类:
ignore_older
scan_frequency
Filebeat多久检查一次指定用于收集的路径中的新文件。指定1s可以尽可能频繁地扫描目录,而不会导致Filebeat频繁扫描。我们不建议设置此值<1s
。
如果您需要近乎实时地发送日志行,设置 scan_frequency
调整,close_inactive
以使文件处理程序保持打开状态并不断轮询文件。
默认设置为10秒。
enabled
使用该enabled
选项可以启用和禁用输入。默认情况下,启用设置为true。
tags
Filebeat包含在tags
每个已发布事件的字段中的标签列表。使用标记,可以轻松地在Kibana中选择特定事件或在Logstash中应用条件过滤。这些标签将被添加到常规配置中指定的标签列表中。
例:
filebeat.inputs:
- type: log
. . .
tags: ["json"]
fields
您可以指定可选字段以将其他信息添加到输出中。例如,您可以添加可用于过滤日志数据的字段。字段可以是标量值,数组,字典或它们的任何嵌套组合。默认情况下,您在此处指定的字段将被分组fields
到输出文档中的子词典下。要将自定义字段存储为顶级字段,请将fields_under_root
选项设置为true。如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。
filebeat.inputs:
- type: log
. . .
fields:
app_id: query_engine_12
fields_under_root
如果将此选项设置为true,则自定义 字段将作为顶级字段存储在输出文档中,而不是分组在fields
子词典下。如果自定义字段名称与Filebeat添加的其他字段名称冲突,则自定义字段将覆盖其他字段。
processors
应用于输入数据的处理器列表。
有关在配置中指定处理器的信息,请参阅处理器。
pipeline
要为此输入生成的事件设置的接收节点管道ID。
也可以在Elasticsearch输出中配置管道ID,但是此选项通常会导致配置文件更简单。如果在输入和输出中都配置了管道,则使用输入中的选项。
keep_null
如果将此选项设置为true,则带有null
值的字段将发布在输出文档中。默认情况下,keep_null
设置为false
。
index
如果存在,此格式化的字符串将覆盖来自此输入的事件的索引(对于elasticsearch输出),或者设置raw_index
事件的元数据的字段(对于其他输出)。该字符串只能引用代理名称和版本以及事件时间戳。用于访问动态字段,使用 output.elasticsearch.index
或处理器。
值示例:"%{[agent.name]}-myindex-%{+yyyy.MM.dd}"
可能扩展为"filebeat-myindex-2019.11.01"
。