标准输入
编辑标准输入
编辑使用 stdin
输入从标准输入读取事件。
注意:此输入不能与其他输入类型同时运行。
示例配置
filebeat.inputs: - type: stdin
配置选项
编辑stdin
输入支持以下配置选项以及稍后描述的通用选项。
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 代码页 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 以导出任何以ERR
或WARN
开头的行。
filebeat.inputs: - type: stdin ... 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: 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
。