为什么使用 awslogs 驱动程序将 docker 容器日志从 ec2 批量发送到 cloudwatch?

为什么使用 awslogs 驱动程序将 docker 容器日志从 ec2 批量发送到 cloudwatch?

我有三个正在运行的 docker 容器;服务器、代理服务器和一个用于检查两个数据库之间变化的守护进程。我使用 docker-compose 和一个 ec2 实例进行测试。我想将日志流式传输到 AWS CloudWatch,并在所有三个容器上都使用了 awslogs 驱动程序。每次发生事件时,这两个服务器都会将日志发送到 CloudWatch。这些日志几乎实时到达它们的 CloudWatch 流。来自守护进程的日志似乎被分块,每 6 分钟分批到达,日志信息大约有 8-9kb。

我曾尝试设置awslogs-multiline-pattern来自文档。日志到达时仍有 6 分钟的间隔。检查守护进程的默认日志文件位置是否docker inspect <container> | grep log位于 docker json 日志的预期位置。如果我禁用 awslogs 驱动程序,服务器也是如此。db sync 守护进程中不使用日志库,只打印语句,stdout。服务器使用洛格鲁斯代理服务器是nginx。

为什么我的服务器日志几乎实时地出现在 CloudWatch 中,而数据库同步守护程序日志被分块并延迟?

相关内容