标准输入
编辑标准输入
编辑使用 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 代码页 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
编辑每个 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
。