Stdin 输入编辑

使用 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,拉丁语-1
  • iso8859-2:ISO8859-2,拉丁语-2
  • iso8859-3:ISO8859-3,拉丁语-3
  • iso8859-4:ISO8859-4,拉丁语-4
  • iso8859-5:ISO8859-5,拉丁语/西里尔语
  • iso8859-6:ISO8859-6,拉丁语/阿拉伯语
  • iso8859-7:ISO8859-7,拉丁语/希腊语
  • iso8859-8:ISO8859-8,拉丁语/希伯来语
  • iso8859-9:ISO8859-9,拉丁语-5
  • iso8859-10:ISO8859-10,拉丁语-6
  • iso8859-13:ISO8859-13,拉丁语-7
  • iso8859-14:ISO8859-14,拉丁语-8
  • iso8859-15:ISO8859-15,拉丁语-9
  • iso8859-16:ISO8859-16,拉丁语-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 会丢弃与列表中正则表达式匹配的任何行。默认情况下,不会丢弃任何行。空行将被忽略。

如果还指定了多行设置,则在通过 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 解码与过滤和多行组合在一起。在应用程序日志包装在 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 通常添加的字段(类型,来源,偏移量等)。
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 子字典下。如果自定义字段名称与 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