gpt4 book ai didi

amazon-web-services - 如何从dockerized spring boot上收集AWS上的日志?

转载 作者:行者123 更新时间:2023-12-02 20:00:02 25 4
gpt4 key购买 nike

在 Spring 启动日志中,默认情况下转到stdout。这是一个很好的标准-更少的配置,没有目录配置等。但是我想构建一个docker镜像并在aws上运行它。

我如何从dockerized spring-boot stdout获取所有日志? cloudwatch支持吗?有没有简单的解决方案,还是我必须切换到记录文件,进行docker卷挂载等?

最佳答案

这取决于您的体系结构外观以及您要如何处理日志。
如今,您可以使用多种工具来读取日志。您可以使用AWS Cloudwatch Logs,通过它您可以通过CloudWatch本身配置警报。
为了使用它,您可以配置slf4j后端。

<appender name="cloud-watch" class="io.github.dibog.AwsLogAppender">
<awsConfig>
<credentials>
<accessKeyId></accessKeyId>
<secretAccessKey></secretAccessKey>
</credentials>
<region></region>
<clientConfig class="com.amazonaws.ClientConfiguration">
<proxyHost></proxyHost>
<proxyPort></proxyPort>
</clientConfig>
</awsConfig>
<createLogGroup>false</createLogGroup>
<queueLength>100</queueLength>
<groupName>group-name</groupName>
<streamName>stream-name</streamName>
<dateFormat>yyyyMMdd_HHmm</dateFormat>
<layout>
<pattern>[%thread] %-5level %logger{35} - %msg %n</pattern>
</layout>

显然,这取决于您的体系结构:例如,如果您有filebeat,则可以将filebeat配置为使用cloudwatch。

如果您对ec2实例使用经ecs优化的AMI(至少应为1.9.0),则还可以将aws logdriver用于您的容器:
1.在启动ecs代理之前,必须更改/etc/ecs/ecs.config并使用以下命令调整ECS_AVAILABLE_LOGGING_DRIVERS: ["json-file","awslogs"]2.激活自动配置功能以为ecs任务创建日志组(您也可以手动创建组,但是我想您想在这里实现更多自动化)

有关aws logdriver的更多信息,请查看aws文档:
  • AWS Logs Driver
  • Install ECS Agent
  • 关于amazon-web-services - 如何从dockerized spring boot上收集AWS上的日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54552566/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com