Stdin 输入
编辑Stdin 输入编辑
使用 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,拉丁语-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 以导出以 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 解码与过滤和多行组合在一起。在应用程序日志包装在 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
。