如何从AWS EC2和Docker容器检索日志无法validation?

目前,我们有以下设置:

多台AWS EC2机器,其中一些运行Docker Container,一些则无docker。 为了检索Syslog,Web服务器日志(Apache)和应用程序日志,我们有一个在EC2实例上运行的Fluentd代理(td-agent)。 这些将错误日志消息转发到集中的Fluentd服务器(日志聚合器),然后将其发送到Graylog。 对于访问日志,实例上的所有td-agent将其直接转发给AWS Kinesis Firehose,后者每隔5分钟(缓冲)将其存储在S3上,并由AWS Athena进行search。 Docker容器上的访问日志被写入stdout和错误日志到stderr。 正在使用fluentd的docker日志驱动程序将它们转发到安装在相应主机上的td-agent。

现在,这个设置有一些问题:

  1. 访问日志不能实时查看(例如,开发人员为了debugging目的)
  2. td-agent的高速caching/caching可能会成为高负载的问题
  3. 当日志聚合器或td代理停止服务时,td代理或Docker容器的caching/缓冲可能成为问题

由于价格和其他原因,我们没有使用CloudWatch Logs。 使用真正的日志文件也意味着,我们需要定期轮换它们,注意磁盘空间等。最后一点可能是通过使用RAM磁盘或单独的驱动器来解决。 但是这并不能解决实际的问题,即拥有一个固定大小的caching/缓冲区,这个缓冲区可能会变满并且阻塞传入的日志

在这个问题上有什么更好的方法? 有关于loggingDocker容器的最佳实践吗?