【问题标题】:Is it possible to use stdout/stderr as fluentd source?是否可以使用 stdout/stderr 作为 fluentd 源?
【发布时间】:2019-07-13 15:43:05
【问题描述】:

问题:

是否可以使用 stdout/stderr 作为 fluentd 源?
如果没有,是否有某种解决方法来实现这一点?

背景:

我必须将使用 json-log 作为日志记录资源的 NodeJS Web 服务器容器化。
由于容器是短暂的,我想提取它的日志以进行调试。
为此,我决定使用 EFK 堆栈。

但是,因为……

json-log 的理念是……

写入标准输出/错误

我只能从标准输出获取网络服务器的日志。
在浏览了 fluentd 文档后,我没有找到使用 stdout/stderr 作为源的方法。

相关问题:

Is it possible to use stdout as a fluentd source to capture specific logs for write to elasticsearch?
这个问题有答案,但不适用于我的情况。

【问题讨论】:

    标签: fluentd


    【解决方案1】:

    https://www.npmjs.com/package/json-log#write-to-stdouterr

    您可以将日志从 json-log 发送到 syslog。 所以你可以使用fluent-plugin-syslog 接收来自json-log 的日志,并发送给Fluentd。

    【讨论】:

    • 这可能行得通。但目前,我很好奇是否可以使用容器的 stdout/stderr 作为 fluentd 源,或者是否有解决方法可以这样做。 (因为并非所有应用都使用json-log
    • 如果你使用docker,你可以运行docker logs -f并将它们重定向到主机上的文件。然后使用in_tail plugin 从 Fluentd 读取日志。
    • 或者你可以使用fluent-cat
    • 我不确定您使用的是什么引擎,但如果您使用的是 Docker,则可以选择默认为 json 文件日志记录并尾随日志目录。另一种选择是将 Docker 配置为使用其流利的日志记录驱动程序docs.docker.com/config/containers/logging/fluentd
    猜你喜欢
    • 2021-02-12
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多