通过阅读12factor中的以下帖子,我想出了一个问题,我想检查一下你们是如何处理这个问题的。
基本上,应用应该直接写入stdout / stderr。无论如何将这些流直接重定向到流畅的(未绑定到rsyslog / syslog)?随着我越来越清楚流利,我相信它将是一个很好的工具,可以从多个应用程序/平台进行日志聚合。
主要原因是,如果应用程序是跨平台的,则rsyslog / syslog可能不可用,并且据我所知,使用日志框架(需要所需的配置才能使用)将违反12因子。
谢谢!
答案 0 :(得分:3)
您需要将流程管理器配置为使用流利。
基本上,这个想法是日志重定向是流程管理器的一个问题。例如,Upstart通常依赖于logger,Unix Domain Socket有一个选项(-u
)可以写入configure fluentd to use that same socket as an input stream。反过来,您可以Fluentd supports a lot of input streams。
similar thread(他们称之为数据源),它应该为几乎任何环境提供解决方案。您可能正在使用的流程管理器(我们需要知道这些流程管理器才能提供更完整的解决方案)。
答案 1 :(得分:2)
这仍然是一个实验性程序,但你可以看看stdout-hook。
该程序从子进程读取STDOUT输出,并将记录发布到Fluentd。