标准输入

编辑

使用 stdin 输入从标准输入读取事件。

注意:此输入不能与其他输入类型同时运行。

示例配置

filebeat.inputs:
- type: stdin

配置选项

编辑

stdin 输入支持以下配置选项以及稍后描述的通用选项

encoding
编辑

用于读取包含国际字符的数据的文件编码。请参阅W3C 推荐用于 HTML5 的编码名称

有效编码

  • plain:纯 ASCII 编码
  • utf-8utf8: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 代码页 437
  • cp850:IBM 代码页 850
  • cp852:IBM 代码页 852
  • cp855:IBM 代码页 855
  • cp858:IBM 代码页 858
  • cp860:IBM 代码页 860
  • cp862:IBM 代码页 862
  • cp863:IBM 代码页 863
  • cp865:IBM 代码页 865
  • cp866:IBM 代码页 866
  • ebcdic-037:IBM 代码页 037
  • ebcdic-1040:IBM 代码页 1140
  • ebcdic-1047:IBM 代码页 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 将删除与列表中正则表达式匹配的任何行。默认情况下,不删除任何行。空行将被忽略。

如果还指定了多行设置,则在exclude_lines过滤行之前,每个多行消息都将组合成一行。

以下示例配置 Filebeat 以删除任何以DBG开头的行。

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

有关支持的正则表达式模式列表,请参阅正则表达式支持

include_lines
编辑

要匹配 Filebeat 要包含的行的一组正则表达式。Filebeat 只导出与列表中正则表达式匹配的行。默认情况下,导出所有行。空行将被忽略。

如果还指定了多行设置,则在include_lines过滤行之前,每个多行消息都将组合成一行。

以下示例配置 Filebeat 以导出任何以ERRWARN开头的行。

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

如果同时定义了include_linesexclude_lines,则 Filebeat 将首先执行include_lines,然后执行exclude_lines。这两个选项的定义顺序无关紧要。include_lines选项将始终在exclude_lines选项之前执行,即使exclude_lines在配置文件中出现在include_lines之前。

以下示例导出包含sometext的所有日志行,但以DBG(调试消息)开头的行除外。

filebeat.inputs:
- type: stdin
  ...
  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 解码与过滤和多行结合使用。这在应用程序日志(例如 Docker)包装在 JSON 对象中的情况下很有用。

示例配置

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
如果启用此设置,则 Filebeat 在 JSON 反序列化错误或定义了配置中的message_key但无法使用时,会添加“error.message”和“error.type: json”键。
message_key
一个可选的配置设置,用于指定要应用行过滤和多行设置的 JSON 键。如果指定,则该键必须位于 JSON 对象的顶层,并且与该键关联的值必须是字符串,否则不会进行任何过滤或多行聚合。
document_id
可选配置设置,用于指定设置文档 ID 的 JSON 键。如果已配置,则该字段将从原始 json 文档中删除并存储在@metadata._id中。
ignore_decoding_error
一个可选的配置设置,用于指定是否应记录 JSON 解码错误。如果设置为 true,则不会记录错误。默认为 false。
multiline
编辑

控制 Filebeat 如何处理跨多行的日志消息的选项。有关配置多行选项的更多信息,请参阅多行消息

通用选项

编辑

所有输入都支持以下配置选项。

enabled
编辑

使用enabled选项启用和禁用输入。默认情况下,enabled 设置为 true。

tags
编辑

Filebeat 将包含在每个已发布事件的tags字段中的标签列表。标签使您可以轻松地在 Kibana 中选择特定事件或在 Logstash 中应用条件过滤。这些标签将附加到常规配置中指定的标签列表中。

示例

filebeat.inputs:
- type: stdin
  . . .
  tags: ["json"]
fields
编辑

您可以指定的可选字段,以向输出添加其他信息。例如,您可以添加可用于过滤日志数据的字段。字段可以是标量值、数组、字典或这些的任何嵌套组合。默认情况下,此处指定的字段将在输出文档中的fields子字典下分组。要将自定义字段存储为顶层字段,请将fields_under_root选项设置为 true。如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。

filebeat.inputs:
- type: stdin
  . . .
  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