0

我有一个容器化应用程序,它将两类信息作为单行 JSON 写入 STDOUT。第一类是诊断日志(ERR/WARN 等),第二类是内容访问日志(CONTENT_ID/USER_ID 等)。我打算运行一个 Filebeats sidecar 来收集这个输出到 ELS。我想在一个索引中获取诊断日志项,在另一个索引中获取内容访问日志。

我可以使用指向同一文件的多个输入运行 Filebeat,并在每个输入上配置包含行以获取不同的行并将它们输出到正确的索引吗?有一个更好的方法吗?或者我根本不应该尝试这样做,也许我应该让容器化应用程序将内容日志显式写入单独的文件?

4

1 回答 1

1

您可以使用 Logstash 执行此操作,但这可能是一种矫枉过正的做法,而且没有必要。

您可以使用dissectFilebeat中的处理器将某些内容从不同的日志行中分离出来以区分它们吗?使用条件add_labels根据需要设置具有预期索引名称的某些字段。

然后,您可以在Elasticsearch 输出中使用它来将索引写入不同的索引(例如{[fields.log_type]}文档中的示例)。

于 2020-12-15T23:07:22.093 回答