我们将开始在 AWS elasticbeanstalk 上使用 docker 部署我们的 java 应用程序,我们想要集中式日志记录并将使用 ELK 堆栈。
我想为每个容器保留一个进程,因此避免使用 filebeat,但为了做到这一点,我们必须使用不同的 appender,如 syslog 甚至是 tcp appender。
我们不能承受丢失日志。
Filebeat 提供开箱即用的重试逻辑,但将其引入混合会增加部署复杂性,需要确保 filebeat 在容器终止时接收 SIGTERM,确保它已预先烘焙到容器映像或 Dockerfile 中,等等.
如果我们使用 tcp 或 syslog appender 沿着这条路走下去,重试取决于我们,我们也希望避免代码的复杂性。
除了我所指出的之外,每种方法的优缺点是什么?
我们的日志库是 logback。