是否可以使用标准输出作为流利的源来捕获特定日志以写入弹性搜索?

Posted

技术标签:

【中文标题】是否可以使用标准输出作为流利的源来捕获特定日志以写入弹性搜索?【英文标题】:Is it possible to use stdout as a fluentd source to capture specific logs for write to elasticsearch? 【发布时间】:2017-12-02 08:26:36 【问题描述】:

我是 fluentd 和 elasticsearch 的菜鸟,我想知道 fluentd 是否有可能从 stdout 捕获特定日志(在这种情况下,是我们的应用程序生成的自定义审计日志) - 使用 stdout 作为源 -并将它们写入弹性搜索中的特定索引。非常感谢您的回复。

【问题讨论】:

【参考方案1】:

是的,您可以使用 fluentd 的 exec 输入插件来启动您的应用程序并捕获它们的标准输出。请注意,这意味着 fluentd 将负责启动您的应用程序,这可能是不可取的 - 在这种情况下,如果应用程序已经写入日志文件,您可以将 fluentd 设置为尾部该文件,或者如果您的应用程序日志转到类似 @987654326 的内容@你可以以此为食。如果您可以修改应用程序,您还可以让应用程序使用 unix 套接字或 TCP/UDP 消息或通过将日志发布到 HTTP 端点将日志写入 fluentd。请参阅Input Plugin Overview 了解更多详细信息和不同输入选项的示例。

Fluentd 可以进一步filter 这些日志仅用于自定义审核日志。这可以根据日志内容或其他日志条目属性或某种组合以多种方式完成。此外,还有其他插件可以统计某些日志条目,并且仅在满足某些阈值后才发出。请注意,如果您能够从一开始就标记审计消息,您甚至可能不需要解析任何内容,但是否以及如何执行此操作将因使用的输入插件而异。

要将日志发送到 Elasticsearch,您可以使用 uken/fluent-plugin-elasticsearch's output plugin 和 index_name 来控制特定索引。

【讨论】:

以上是关于是否可以使用标准输出作为流利的源来捕获特定日志以写入弹性搜索?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 在日志文件中复制/捕获标准输出

使用 Factless Fact 表作为 Fact Table 的源

Kubernetes中的多行流利日志

如何使用 googletest 捕获标准输出/标准错误?

如何将流利的位输入日志写入本地主机系统日志服务器

使用国内镜像源来加速python pypi包的安装