如何将多个日志文件发送到Amazon Cloudwatch?

问题描述 投票:0回答:1

我有一个整体,目前正在转移到AWS(使用ecs / fargate),以后将分解为微服务。它使用配置有apache,php和我所有生产网站数据的amazon linux 1映像。当前,它将日志发送到/ etc / httpd / logs和/ var / www / vhosts / logs中的多个文件。

据推测,我可以在ecs任务定义中使用日志配置和卷来做一些事情,但是我找不到能够解释该操作细节的任何内容。

amazon-web-services docker amazon-ecs amazon-cloudwatchlogs
1个回答
0
投票

[如果是容器,我绝不建议将日志写入文件,最好将日志写入容器stdout和stderr。

另一个有趣的事情,如果您移至fargate,您将如何处理日志文件?因此,请勿将日志写入文件,也不要像实例计算机那样对待容器。

AWS日志驱动程序的优点在于,它可以将日志推送到Cloud Watch日志,并且从Cloud Watch推送到ELK也非常容易。

转到AWS日志驱动程序,设计entrypoint,以将日志写入容器中的stdout和stderr的方式。通常,在前台运行进程时,这非常容易,它会自动将日志写入容器stdout。

只需在任务定义中添加此行并添加云监视角色。

            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "awslogs-wordpress",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example"
                }
            }

enter image description here

配置完成后,您将看到日志

enter image description here

使用awslogs日志驱动程序

您可以在任务中配置容器以发送日志信息到CloudWatch Logs。如果您将Fargate启动类型用于任务,这使您可以查看容器中的日志。如果你正在使用EC2启动类型,这使您可以查看不同的日志在一个方便的位置将其从容器中取出,这可以防止占用容器实例上磁盘空间的容器日志。本主题可帮助您开始使用您的awslogs日志驱动程序任务定义。

任务容器中记录的信息类型主要取决于他们的ENTRYPOINT command。默认情况下,被捕获,显示您通常会在交互式终端(如果您在本地运行容器)STDOUTSTDERR I/O streamsawslogs日志驱动程序只是通过这些日志从Docker到CloudWatch Logs。有关如何处理Docker日志,包括其他捕获方式不同的文件数据或流,请参阅查看容器的日志或服务在Docker文档中。

enter image description hereaws-ecs-log-driver

© www.soinside.com 2019 - 2024. All rights reserved.