【发布时间】:2016-09-09 08:18:28
【问题描述】:
我们有一堆服务,通过 docker 容器部署在 Mesos 上,记录到 stdout 和 stderr。我们现在正在引入 ELK,因此需要将此日志数据发送到 Logstash。
我正在考虑的一个解决方案是有一个包装进程来启动服务进程,捕获 stdout 和 stderr 并将其写入文件(随着时间的推移而被截断)并让 FileBeat 将该文件发送到 LogStash。感觉我可能是在重新发明一个轮子的想法,有没有更直接的方法来实现同样的事情?
【问题讨论】:
-
不能用重定向(>)直接写入文件吗?
-
可以......但我也希望日志输出继续在标准输出和标准错误上输出,因为 Mesos 捕捉到了这一点。另外,如果我这样做会截断文件吗?此外,我们正在使用结构化日志记录,因此如果子进程在重新启动之前死亡,包装进程可以使用我们的结构进行日志记录。
-
可能使用 logrotate 截断文件,使用 tee 命令发送到文件和 stderr/out。但我理解你为什么要在这种情况下使用包装器
标签: elasticsearch logstash kibana filebeat