日志输入
编辑日志输入
编辑[7.16.0] 已于 7.16.0 版本中弃用。
日志输入已弃用。请使用 filestream 输入
将日志文件发送到输出。
使用 log
输入读取日志文件中的行。
要配置此输入,请指定基于 glob 的 paths
列表,Filebeat 必须遍历这些路径才能找到并获取日志行。
示例配置
filebeat.inputs: - type: log paths: - /var/log/messages - /var/log/*.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
确保在一个输入中未多次定义同一个文件,因为这可能会导致意外行为。
读取网络共享和云提供商上的文件
编辑Filebeat 不支持从网络共享和云提供商读取文件。
但是,如果正确配置 Filebeat,可以减轻这些数据源的一些限制。
默认情况下,Filebeat 根据文件的 inode 和设备 ID 来识别文件。但是,在网络共享和云提供商上,这些值可能会在文件的生命周期内发生变化。如果发生这种情况,Filebeat 会认为该文件是新的,并重新发送文件的全部内容。要解决此问题,您可以配置 file_identity
选项。除了默认的 inode_deviceid
之外,可能的取值还有 path
和 inode_marker
。
选择 path
指示 Filebeat 根据文件的路径来识别文件。如果 inode 和设备 ID 可能会更改,这是一种快速避免重新读取文件的方法。但是,请记住,如果文件被轮换(重命名),它们将被重新读取并重新提交。
如果即使设备 ID 更改,inode 也保持不变,则可以使用 inode_marker
选项。如果可能,您应该选择此方法来处理文件轮换,而不是使用 path
方法。您必须配置 Filebeat 可读取的标记文件,并在 inode_marker
的 path
选项中设置路径。
此文件的内容必须对设备唯一。您可以放置设备或存储输入的挂载点的 UUID。以下示例单行程序为选定的挂载点 /logs
生成一个隐藏的标记文件:请注意,您不应在 Windows 上使用此选项,因为文件标识符可能更容易变化。
$ lsblk -o MOUNTPOINT,UUID | grep /logs | awk '{print $2}' >> /logs/.filebeat-marker
要将生成的文件设置为 file_identity
的标记,您应按如下方式配置输入:
filebeat.inputs: - type: log paths: - /logs/*.log file_identity.inode_marker.path: /logs/.filebeat-marker
读取轮换日志
编辑处理文件轮换时,避免收集符号链接。而是使用 paths
设置指向原始文件,并指定一个与您要收集的文件及其所有轮换文件匹配的模式。还要确保您的日志轮换策略可以防止丢失或重复的消息。有关更多信息,请参见 日志轮换导致事件丢失或重复。
此外,为避免重复轮换日志消息,请勿对 file_identity
使用 path
方法。或者使用 exclude_files
选项排除轮换的文件。
配置选项
编辑log
输入支持以下配置选项以及稍后描述的 常用选项。
paths
编辑将被遍历和获取的基于 glob 的路径列表。此处也支持 Go Glob 支持的所有模式。例如,要从预定义级别的子目录中获取所有文件,可以使用以下模式:/var/log/*/*.log
。这将获取 /var/log
子文件夹中的所有 .log
文件。它不会获取 /var/log
文件夹本身的日志文件。可以使用可选的 recursive_glob
设置递归地获取所有子目录中的所有文件。
Filebeat 为其在指定路径下找到的每个文件启动一个收集器。您可以每行指定一个路径。每行以短横线 (-) 开头。
recursive_glob.enabled
编辑启用将 **
扩展为递归 glob 模式。启用此功能后,每个路径中最右边的 **
将扩展为固定数量的 glob 模式。例如:/foo/**
将扩展为 /foo
、/foo/*
、/foo/*/*
等。如果启用,它会将单个 **
扩展为 8 级深的 *
模式。
此功能默认启用。将 recursive_glob.enabled
设置为 false 以禁用它。
encoding
编辑用于读取包含国际字符的数据的文件编码。请参见 W3C 建议在 HTML5 中使用的编码名称。
有效的编码
-
plain
:纯 ASCII 编码 -
utf-8
或utf8
:UTF-8 编码 -
gbk
:简体中文字符 -
iso8859-6e
:ISO8859-6E,拉丁/阿拉伯语 -
iso8859-6i
:ISO8859-6I,拉丁/阿拉伯语 -
iso8859-8e
:ISO8859-8E,拉丁/希伯来语 -
iso8859-8i
:ISO8859-8I,拉丁/希伯来语 -
iso8859-1
:ISO8859-1,Latin-1 -
iso8859-2
:ISO8859-2,Latin-2 -
iso8859-3
:ISO8859-3,Latin-3 -
iso8859-4
:ISO8859-4,Latin-4 -
iso8859-5
:ISO8859-5,拉丁/西里尔字母 -
iso8859-6
:ISO8859-6,拉丁/阿拉伯语 -
iso8859-7
:ISO8859-7,拉丁/希腊语 -
iso8859-8
:ISO8859-8,拉丁/希伯来语 -
iso8859-9
:ISO8859-9,Latin-5 -
iso8859-10
:ISO8859-10,Latin-6 -
iso8859-13
:ISO8859-13,Latin-7 -
iso8859-14
:ISO8859-14,Latin-8 -
iso8859-15
:ISO8859-15,Latin-9 -
iso8859-16
:ISO8859-16,Latin-10 -
cp437
:IBM CodePage 437 -
cp850
:IBM CodePage 850 -
cp852
:IBM CodePage 852 -
cp855
:IBM CodePage 855 -
cp858
:IBM CodePage 858 -
cp860
:IBM CodePage 860 -
cp862
:IBM CodePage 862 -
cp863
:IBM CodePage 863 -
cp865
:IBM CodePage 865 -
cp866
:IBM CodePage 866 -
ebcdic-037
:IBM CodePage 037 -
ebcdic-1040
:IBM CodePage 1140 -
ebcdic-1047
:IBM CodePage 1047 -
koi8r
:KOI8-R,俄语(西里尔字母) -
koi8u
:KOI8-U,乌克兰语(西里尔字母) -
macintosh
:Macintosh 编码 -
macintosh-cyrillic
:Macintosh 西里尔字母编码 -
windows1250
:Windows1250,中欧和东欧 -
windows1251
:Windows1251,俄语,塞尔维亚语(西里尔字母) -
windows1252
:Windows1252,旧版 -
windows1253
:Windows1253,现代希腊语 -
windows1254
:Windows1254,土耳其语 -
windows1255
:Windows1255,希伯来语 -
windows1256
:Windows1256,阿拉伯语 -
windows1257
:Windows1257,爱沙尼亚语,拉脱维亚语,立陶宛语 -
windows1258
:Windows1258,越南语 -
windows874
:Windows874,ISO/IEC 8859-11,拉丁/泰语 -
utf-16-bom
:带有必需 BOM 的 UTF-16 -
utf-16be-bom
:带有必需 BOM 的大端 UTF-16 -
utf-16le-bom
:带有必需 BOM 的小端 UTF-16
plain
编码是特殊的,因为它不会验证或转换任何输入。
exclude_lines
编辑要匹配您希望 Filebeat 排除的行的一组正则表达式。Filebeat 将删除与列表中正则表达式匹配的任何行。默认情况下,不删除任何行。空行将被忽略。
如果还指定了 multiline 设置,则在行被 exclude_lines
过滤之前,每个多行消息将合并为一行。
以下示例配置 Filebeat 以删除任何以 DBG
开头的行。
filebeat.inputs: - type: log ... exclude_lines: ['^DBG']
请参见 正则表达式支持,了解支持的正则表达式模式列表。
include_lines
编辑要匹配您希望 Filebeat 包含的行的一组正则表达式。Filebeat 仅导出与列表中正则表达式匹配的行。默认情况下,导出所有行。空行将被忽略。
如果还指定了 multiline 设置,则在行被 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
之前。
以下示例导出包含 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 解码才有效。
解码发生在线过滤和多行处理之前。如果设置 message_key
选项,可以将 JSON 解码与过滤和多行处理结合使用。这在应用程序日志被包装在 JSON 对象中时非常有用,例如 Docker 的情况。
示例配置
json.keys_under_root: true json.add_error_key: true json.message_key: log
必须指定至少以下设置之一才能启用 JSON 解析模式。
-
keys_under_root
- 默认情况下,解码后的 JSON 将放在输出文档中的“json”键下。如果启用此设置,则键将复制到输出文档的顶层。默认为 false。
-
overwrite_keys
- 如果启用了
keys_under_root
和此设置,则解码后的 JSON 对象中的值将覆盖 Filebeat 通常添加的字段(type、source、offset 等)(如有冲突)。 -
expand_keys
- 如果启用此设置,Filebeat 将递归地取消解码 JSON 中的点分隔键,并将它们扩展为分层对象结构。例如,
{"a.b.c": 123}
将扩展为{"a":{"b":{"c":123}}}
。当输入由 ECS 日志记录器 生成时,应启用此设置。 -
add_error_key
- 如果启用此设置,则在 JSON 反序列化错误或配置中定义了
message_key
但无法使用时,Filebeat 将添加“error.message”和“error.type: json”键。 -
message_key
- 一个可选的配置设置,指定要应用行过滤和多行设置的 JSON 键。如果指定,则该键必须位于 JSON 对象的顶层,并且与该键关联的值必须是字符串,否则不会进行过滤或多行聚合。
-
document_id
- 可选配置设置,指定设置文档 ID 的 JSON 键。如果已配置,则该字段将从原始 json 文档中删除并存储在
@metadata._id
中。 -
ignore_decoding_error
- 一个可选的配置设置,指定是否应记录 JSON 解码错误。如果设置为 true,则不会记录错误。默认为 false。
multiline
编辑控制 Filebeat 如何处理跨越多行的日志消息的选项。有关配置多行选项的更多信息,请参阅 多行消息。
exclude_files
编辑要匹配 Filebeat 要忽略的文件的正则表达式列表。默认情况下不排除任何文件。
以下示例配置 Filebeat 以忽略所有具有 gz
扩展名的文件。
filebeat.inputs: - type: log ... exclude_files: ['\.gz$']
请参见 正则表达式支持,了解支持的正则表达式模式列表。
ignore_older
编辑如果启用此选项,Filebeat 将忽略在指定时间段之前修改的任何文件。如果长时间保留日志文件,配置 ignore_older
特别有用。例如,如果要启动 Filebeat,但只想发送最新的文件和上周的文件,可以配置此选项。
可以使用时间字符串,例如 2h(2 小时)和 5m(5 分钟)。默认为 0,这将禁用该设置。注释掉配置的效果与将其设置为 0 相同。
必须将 ignore_older
设置为大于 close_inactive
。
受此设置影响的文件分为两类:
- 从未收集的文件
- 已收集但未更新超过
ignore_older
时间的文件
对于以前从未见过的文件,偏移量状态将设置为文件的末尾。如果状态已存在,则不会更改偏移量。如果稍后再次更新文件,则读取将从设置的偏移量位置继续。
ignore_older
设置依赖于文件的修改时间来确定是否忽略文件。如果在将行写入文件时未更新文件的修改时间(这可能在 Windows 上发生),则 ignore_older
设置可能会导致 Filebeat 忽略文件,即使后来添加了内容。
要从注册表文件中删除以前收集的文件的状态,请使用 clean_inactive
配置选项。
在 Filebeat 忽略文件之前,必须关闭该文件。为确保在忽略文件时不再收集文件,必须将 ignore_older
设置为比 close_inactive
更长的持续时间。
如果当前正在收集的文件属于 ignore_older
,则采集器将首先完成读取文件,并在达到 close_inactive
后关闭它。然后,之后将忽略该文件。
close_*
编辑close_*
配置选项用于在达到特定条件或时间后关闭采集器。关闭采集器意味着关闭文件句柄。如果在关闭采集器后更新文件,则在 scan_frequency
到期后,将再次拾取该文件。但是,如果在关闭采集器时移动或删除了文件,Filebeat 将无法再次拾取该文件,并且采集器未读取的任何数据都将丢失。close_*
设置在 Filebeat 尝试从文件读取时同步应用,这意味着如果 Filebeat 由于输出被阻塞、队列已满或其他问题而处于阻塞状态,否则将被关闭的文件将保持打开状态,直到 Filebeat 再次尝试从文件读取。
close_inactive
编辑启用此选项后,如果文件未被收集指定持续时间,Filebeat 将关闭文件句柄。定义周期的计数器从采集器读取最后一条日志行时开始。它不是基于文件的修改时间。如果关闭的文件再次更改,则将启动新的采集器,并在 scan_frequency
到期后拾取最新的更改。
建议将 close_inactive
设置为大于日志文件更新频率的值。例如,如果日志文件每隔几秒钟更新一次,则可以安全地将 close_inactive
设置为 1m
。如果日志文件的更新速率差异很大,则可以使用具有不同值的多个配置。
将 close_inactive
设置为较低的值意味着文件句柄将更快关闭。但是,如果采集器关闭,这会产生副作用,即不会近乎实时地发送新的日志行。
关闭文件的时间戳不依赖于文件的修改时间。相反,Filebeat 使用反映上次收集文件时间的内部时间戳。例如,如果 close_inactive
设置为 5 分钟,则 5 分钟的倒计时将在采集器读取文件的最后一行后开始。
可以使用时间字符串,例如 2h(2 小时)和 5m(5 分钟)。默认为 5m。
close_renamed
编辑只有在了解数据丢失是潜在副作用的情况下才使用此选项。
启用此选项后,当文件重命名时,Filebeat 将关闭文件句柄。例如,在旋转文件时会发生这种情况。默认情况下,采集器保持打开状态并继续读取文件,因为文件句柄不依赖于文件名。如果启用了 close_renamed
选项,并且文件被重命名或移动,以至于不再与为路径指定的模式匹配,则将不会再次拾取该文件。Filebeat 将不会完成读取文件。
不要在配置基于 path
的 file_identity
时使用此选项。启用此选项没有意义,因为 Filebeat 无法使用路径名作为唯一标识符来检测重命名。
WINDOWS:如果 Windows 日志旋转系统显示错误,因为它无法旋转文件,则应启用此选项。
close_removed
编辑启用此选项后,当文件被删除时,Filebeat 将关闭采集器。通常,只有在文件处于非活动状态(持续时间由 close_inactive
指定)后才能删除文件。但是,如果文件过早删除并且未启用 close_removed
,则 Filebeat 将保持文件打开状态以确保采集器已完成。如果此设置导致文件未完全读取,因为它们过早地从磁盘中删除,则禁用此选项。
此选项默认启用。如果禁用此选项,则还必须禁用 clean_removed
。
WINDOWS:如果 Windows 日志旋转系统显示错误,因为它无法旋转文件,请确保已启用此选项。
close_eof
编辑只有在了解数据丢失是潜在副作用的情况下才使用此选项。
启用此选项后,Filebeat 将在达到文件末尾后立即关闭文件。这在文件仅写入一次且不会不时更新时非常有用。例如,当您将每个日志事件写入新文件时会发生这种情况。此选项默认禁用。
close_timeout
编辑只有在了解数据丢失是潜在副作用的情况下才使用此选项。另一个副作用是多行事件可能在超时过期之前无法完全发送。
启用此选项后,Filebeat 将为每个采集器提供预定义的生命周期。无论读取器位于文件中的哪个位置,读取都将在 close_timeout
周期到期后停止。当只想在文件上花费预定义的时间量时,此选项对于较旧的日志文件很有用。虽然 close_timeout
将在预定义的超时后关闭文件,但如果文件仍在更新,Filebeat 将根据定义的 scan_frequency
再次启动新的采集器。并且此采集器的 close_timeout 将再次开始超时倒计时。
此选项在输出被阻塞的情况下特别有用,它使得 Filebeat 即使对于从磁盘中删除的文件也保持打开的文件句柄。将close_timeout
设置为5m
确保定期关闭文件,以便操作系统可以释放它们。
如果将close_timeout
设置为等于ignore_older
,则如果在收集器关闭时修改了文件,则不会拾取该文件。这种设置组合通常会导致数据丢失,并且不会发送完整的文件。
当您对包含多行事件的日志使用close_timeout
时,收集器可能会在多行事件的中间停止,这意味着只会发送事件的一部分。如果重新启动收集器并且文件仍然存在,则只会发送事件的第二部分。
此选项默认设置为 0,这意味着它已禁用。
clean_*
编辑clean_*
选项用于清理注册表文件中的状态条目。这些设置有助于减小注册表文件的大小,并可以防止潜在的inode 重用问题。
clean_inactive
编辑只有在了解数据丢失是潜在副作用的情况下才使用此选项。
启用此选项后,Filebeat 会在指定的不活动时间段过后删除文件的状。只有在 Filebeat 已经忽略该文件(该文件早于ignore_older
)的情况下才能删除状态。clean_inactive
设置必须大于ignore_older + scan_frequency
,以确保在仍在收集文件时不会删除任何状态。否则,该设置可能会导致 Filebeat 不断重新发送完整内容,因为clean_inactive
会删除 Filebeat 仍在检测到的文件的状。如果文件被更新或再次出现,则会从开头读取文件。
clean_inactive
配置选项对于减小注册表文件的大小非常有用,尤其是在每天生成大量新文件的情况下。
此配置选项还有助于防止 Linux 上 inode 重用导致的 Filebeat 问题。有关更多信息,请参见Inode 重用导致 Filebeat 跳过行。
每次重命名文件时,都会更新文件状态,并且clean_inactive
的计数器将再次从 0 开始。
在测试过程中,您可能会注意到注册表包含根据clean_inactive
设置应删除的状态条目。发生这种情况是因为 Filebeat 只有在再次打开注册表以读取不同的文件时才会删除这些条目。如果您正在测试clean_inactive
设置,请确保 Filebeat 配置为从多个文件读取,否则将永远不会从注册表中删除文件状态。
clean_removed
编辑启用此选项后,如果在磁盘上找不到 Filebeat 使用上一次已知名称的文件,则 Filebeat 会从注册表中清理这些文件。这意味着在收集器完成之后重命名的文件也将被删除。此选项默认启用。
如果共享驱动器短暂消失然后再次出现,则所有文件将从开头重新读取,因为状态已从注册表文件中删除。在这种情况下,我们建议您禁用clean_removed
选项。
如果也禁用了close_removed
,则必须禁用此选项。
scan_frequency
编辑Filebeat 检查指定用于收集的路径中的新文件的频率。例如,如果您指定类似/var/log/*
的通配符,则将使用scan_frequency
指定的频率扫描目录中的文件。指定 1s 以尽可能频繁地扫描目录,而不会导致 Filebeat 扫描过于频繁。我们不建议将此值设置为<1s
。
如果您需要实时发送日志行,请不要使用非常低的scan_frequency
,而是调整close_inactive
,以便文件句柄保持打开状态并持续轮询您的文件。
默认设置为 10s。
scan.sort
编辑此功能处于技术预览阶段,可能在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 的约束。
如果为该设置指定非空字符串值,则可以使用scan.order
确定是使用升序还是降序。可能的值为modtime
和filename
。要按文件修改时间排序,请使用modtime
,否则使用filename
。将此选项留空以禁用它。
如果为该设置指定一个值,则可以使用scan.order
配置文件扫描的升序或降序。
默认设置已禁用。
scan.order
编辑此功能处于技术预览阶段,可能在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 的约束。
指定当scan.sort
设置为非 none 值时,是否使用升序或降序。可能的值为asc
或desc
。
默认设置为asc
。
tail_files
编辑如果将此选项设置为 true,则 Filebeat 将从每个文件的末尾而不是开头开始读取新文件。当此选项与日志轮换一起使用时,可能会跳过新文件中的第一批日志条目。默认设置为 false。
此选项适用于 Filebeat 尚未处理的文件。如果您之前运行过 Filebeat 并且文件的状已持久保存,则tail_files
将不适用。收集将在之前的偏移量继续。要将tail_files
应用于所有文件,必须停止 Filebeat 并删除注册表文件。请注意,这样做会删除所有之前的状。
首次在日志文件集上运行 Filebeat 时,可以使用此设置来避免索引旧的日志行。建议在第一次运行后禁用此选项,否则在文件轮换期间可能会丢失行。
symlinks
编辑symlinks
选项允许 Filebeat 收集符号链接以及常规文件。在收集符号链接时,Filebeat 会打开并读取原始文件,即使它报告的是符号链接的路径。
配置符号链接进行收集时,请确保已排除原始路径。如果将单个输入配置为同时收集符号链接和原始文件,Filebeat 将检测到问题,并且只处理它找到的第一个文件。但是,如果配置了两个不同的输入(一个读取符号链接,另一个读取原始路径),则将收集这两个路径,导致 Filebeat 发送重复数据并且输入相互覆盖其状态。
symlinks
选项如果符号链接到日志文件的文件名中包含其他元数据,并且您想在 Logstash 中处理这些元数据,则此选项非常有用。例如,Kubernetes 日志文件就是这种情况。
由于此选项可能会导致数据丢失,因此默认情况下它处于禁用状态。
backoff
编辑backoff 选项指定 Filebeat 多么积极地爬取打开的文件以进行更新。在大多数情况下,您可以使用默认值。
backoff
选项定义在到达 EOF 后 Filebeat 等待再次检查文件的时间。默认值为 1s,这意味着如果添加了新行,则每秒检查一次文件。这使得可以进行近乎实时的爬取。每次在文件中出现新行时,backoff
值都会重置为初始值。默认为 1s。
max_backoff
编辑Filebeat 在到达 EOF 后等待再次检查文件的最长时间。在多次从检查文件后退之后,无论为backoff_factor
指定什么值,等待时间都不会超过max_backoff
。由于读取新行最多需要 10 秒,因此将max_backoff
指定为 10 秒意味着,在最坏的情况下,如果 Filebeat 多次后退,则可以将新行添加到日志文件中。默认为 10s。
要求:将max_backoff
设置为大于或等于backoff
并且小于或等于scan_frequency
(backoff <= max_backoff <= scan_frequency
)。如果需要更高的max_backoff
,建议关闭文件句柄,然后让 Filebeat 再次拾取文件。
backoff_factor
编辑此选项指定等待时间的增加速度。backoff 系数越大,达到max_backoff
值的速度越快。backoff 系数呈指数增长。允许的最小值为 1。如果将此值设置为 1,则禁用 backoff 算法,并使用backoff
值来等待新行。backoff
值每次都将乘以backoff_factor
,直到达到max_backoff
。默认为 2。
harvester_limit
编辑harvester_limit
选项限制为一个输入并行启动的收集器的数量。这直接关系到打开的文件句柄的最大数量。harvester_limit
的默认值为 0,这意味着没有限制。如果要收集的文件数量超过操作系统的打开文件句柄限制,则此配置非常有用。
限制收集器的数量意味着潜在地并非所有文件都是并行打开的。因此,我们建议您将此选项与close_*
选项结合使用,以确保更频繁地停止收集器,以便可以拾取新文件。
目前,如果可以再次启动新的收集器,则会随机选择收集器。这意味着,可能启动刚刚关闭然后再次更新的文件的收集器,而不是启动长时间未收集文件的收集器。
此配置选项适用于每个输入。您可以使用此选项通过分配更高的收集器限制来间接设置某些输入的更高优先级。
file_identity
编辑可以配置不同的file_identity
方法以适应您收集日志消息的环境。
-
native
- Filebeat 的默认行为是使用其 inode 和设备 ID 来区分文件。
file_identity.native: ~
-
path
- 要基于文件的路径标识文件,请使用此策略。
仅当您的日志文件被轮转到输入范围之外的文件夹或根本没有轮转时,才使用此策略。否则,您最终会得到重复的事件。
此策略不支持重命名文件。如果输入文件被重命名,如果新路径与输入的设置匹配,Filebeat 将再次读取它。
file_identity.path: ~
-
inode_marker
- 如果设备 ID 经常变化,则必须使用此方法来区分文件。此选项在 Windows 上不受支持。
按以下方式设置标记文件的位置
file_identity.inode_marker.path: /logs/.filebeat-marker
常用选项
编辑所有输入都支持以下配置选项。
enabled
编辑使用 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 将作为顶级字段存储在输出文档中,而不是在 fields
子字典下分组。如果自定义字段名称与 Filebeat 添加的其他字段名称冲突,则自定义字段会覆盖其他字段。
processors
编辑应用于输入数据的处理器列表。
有关在配置中指定处理器的信息,请参阅 处理器。
pipeline
编辑为该输入生成的事件设置的摄取管道 ID。
管道 ID 也可以在 Elasticsearch 输出中配置,但这通常会导致更简单的配置文件。如果在输入和输出中都配置了管道,则使用输入中的选项。
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"
。
publisher_pipeline.disable_host
编辑默认情况下,所有事件都包含 host.name
。此选项可以设置为 true
以禁用将此字段添加到所有事件。默认值为 false
。