标准输入

编辑

使用 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 代码页 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
编辑

每个 harvester 在获取文件时使用的缓冲区大小(以字节为单位)。默认值为 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
编辑

为此输入生成的事件设置的 ingest pipeline ID。

也可以在 Elasticsearch 输出中配置 pipeline ID,但此选项通常会产生更简单的配置文件。如果 pipeline 在输入和输出中都配置了,则使用输入的选项。

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