【问题标题】:12Factor App: Capturing stdout/stderr logs with Fluentd12Factor 应用程序:使用 Fluentd 捕获标准输出/标准错误日志
【发布时间】:2015-04-28 02:56:04
【问题描述】:

通过阅读来自12factor 的以下帖子,我想出了一个问题,我想看看你们是如何处理这个问题的。

基本上,应用程序应该直接写入 stdout/stderr。有没有办法将这些流直接重定向到fluentd(不绑定到rsyslog/syslog)?随着我对 fluentd 的了解越来越多,我相信它会成为从多个应用程序/平台聚合日志的绝佳工具。

这样做的主要原因是,如果应用程序是跨平台的,则 rsyslog/syslog 可能不可用,据我了解,使用日志框架(需要所需的配置才能工作)将违反12 因素。

谢谢!

【问题讨论】:

  • 有了 docker,一切都变得简单了

标签: logging fluentd 12factor


【解决方案1】:

您需要配置您的流程管理器以使用 fluentd。

"Twelve-factor app processes should [...] rely on the operating system’s process manager (such as Upstart, a distributed process manager on a cloud platform, or a tool like Foreman in development) to manage output streams [...]."

基本上,这个想法是日志重定向是进程管理器关心的问题。例如,Upstart 通常依赖于logger,它有一个选项 (-u) 可以写入Unix Domain Socket。反过来,你可以configure fluentd to use that same socket as an input stream

Fluentd supports a lot of input streams(他们称它们为数据源),它应该为您可能正在使用的几乎所有环境和流程管理器提供解决方案(我们需要知道这些以提供更完整的解决方案)。

【讨论】:

    【解决方案2】:

    这仍然是一个实验程序,但你可以看看 stdout-hook。

    此程序从子进程读取 STDOUT 输出,并将记录发布到 Fluentd。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-11
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 2011-07-21
      相关资源
      最近更新 更多