![为什么使用 awslogs 驱动程序将 docker 容器日志从 ec2 批量发送到 cloudwatch?](https://linux22.com/image/780614/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8%20awslogs%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%B0%86%20docker%20%E5%AE%B9%E5%99%A8%E6%97%A5%E5%BF%97%E4%BB%8E%20ec2%20%E6%89%B9%E9%87%8F%E5%8F%91%E9%80%81%E5%88%B0%20cloudwatch%EF%BC%9F.png)
我有三个正在运行的 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 中,而数据库同步守护程序日志被分块并延迟?