在 ecs 中使用 Spring-Cloud-docker 通过 Cloud-Watch 处理日志记录的最佳实践
Best practice to handle logging via Cloud-Watch with Spring-Cloud-docker in ecs
我尝试了几天来使用 spring-云应用程序设置我的 docker-容器 运行
- 使用 "docker logs"
登录 ec2 实例
- 在 Cloud-Watch 的日志组中显示我的日志条目
到目前为止我最好的结果:我进入了 Cloud-Watch 日志的前 20 行(Spring-Ascii-Art 和 Spring 版本中的品牌),仅此而已。当时 EC2 实例上的 docker 显示与 "docker logs" 相同,但是我的系统上的 docker 像往常一样记录。
然而,我的大部分尝试都没有显示通过 "docker logs" 或 Cloud-Watch 进行记录。但同样,我的应用程序日志记录通过 console-appender 通过 log4j2 运行,与配置的完全一样。
甚至我的本地 docker 也如预期的那样具有 app.jar 日志(Windows7、Docker 工具箱,不幸的是,没有 Linux 可能)。仅在 EC2 实例上,"docker logs".
保持沉默
配置:
- 我有合适的 docker 图片吗? 开放jdk:8-jdk-高山
- 我的Spring/AWS-Dependencies是否正确(我们主要使用SQS):spring-cloud-aws-messaging,spring-cloud-aws-autoconfigure,spring-boot-starter-web, aws-java-sdk-sts
- 我现在需要这些日志依赖吗?
spring-boot-starter-log4j2(um alle Brücken für CommonsLogging zu
哈本)
- 我的应用程序中使用的日志记录(log4j2 via slf4j)可能是问题所在吗?
- 我尝试了 Console-Appender=>STDOUT=>awslogs 方式。我尝试了(另外或作为交换)cloud-watch-appenders(com.boxfuse.cloudwatchlogs:cloudwatchlogs-java-appender and pro.apphub:aws-cloudwatch-log4j2)。我用两个 appender 修复了一些初始配置错误,然后我看到... Cloud-Watch 上什么都没有。
- 在 ECS-Task 中,我尝试了“awslogs”-配置以在 Cloudwatch 中获取 Docker-STDOUT(这就是导致上述前 20 行日志记录的原因).我尝试使用“json-file”-config 来查看带有 "docker logs" 的 EC2 实例上的内容。两者都没有导致希望的结果。
你能给我一些我可能错过的提示吗?
为什么只有日志的前 20 行(Spring-Header?)
为什么 appender 不显示想要的结果?我希望它会像 "Graylog" 一样简单...在 log-config 中选择正确的 appender-config 瞧,有日志条目。
您是否有一些教程链接,其中的主题是从 spring-cloud 记录到 Cloud-Watch,并解释了所有必要的部分和步骤?
您是否有一些片段(Pom、任务-json、其他提示)可以帮助我完成这项工作?
换成像 Boxfuse 这样的 "everything ready" 解决方案真的更好吗?
非常感谢!
PS:我知道有ELK-Stack和其他的解决方案,但我真的很想先试试Cloud-Watch。
You can leave these fields of the task-definition, they said. The
system will choose an appropriate default, they said. Don't bother,
they said.
似乎我应该在 task-definition 中为 CPUs 设置一个值...日志的前几行似乎是唯一的东西,那个0-CPU-Task 能够产生...没有其他错误消息。
我笑哭了...
我尝试了几天来使用 spring-云应用程序设置我的 docker-容器 运行
- 使用 "docker logs" 登录 ec2 实例
- 在 Cloud-Watch 的日志组中显示我的日志条目
到目前为止我最好的结果:我进入了 Cloud-Watch 日志的前 20 行(Spring-Ascii-Art 和 Spring 版本中的品牌),仅此而已。当时 EC2 实例上的 docker 显示与 "docker logs" 相同,但是我的系统上的 docker 像往常一样记录。 然而,我的大部分尝试都没有显示通过 "docker logs" 或 Cloud-Watch 进行记录。但同样,我的应用程序日志记录通过 console-appender 通过 log4j2 运行,与配置的完全一样。
甚至我的本地 docker 也如预期的那样具有 app.jar 日志(Windows7、Docker 工具箱,不幸的是,没有 Linux 可能)。仅在 EC2 实例上,"docker logs".
保持沉默配置:
- 我有合适的 docker 图片吗? 开放jdk:8-jdk-高山
- 我的Spring/AWS-Dependencies是否正确(我们主要使用SQS):spring-cloud-aws-messaging,spring-cloud-aws-autoconfigure,spring-boot-starter-web, aws-java-sdk-sts
- 我现在需要这些日志依赖吗? spring-boot-starter-log4j2(um alle Brücken für CommonsLogging zu 哈本)
- 我的应用程序中使用的日志记录(log4j2 via slf4j)可能是问题所在吗?
- 我尝试了 Console-Appender=>STDOUT=>awslogs 方式。我尝试了(另外或作为交换)cloud-watch-appenders(com.boxfuse.cloudwatchlogs:cloudwatchlogs-java-appender and pro.apphub:aws-cloudwatch-log4j2)。我用两个 appender 修复了一些初始配置错误,然后我看到... Cloud-Watch 上什么都没有。
- 在 ECS-Task 中,我尝试了“awslogs”-配置以在 Cloudwatch 中获取 Docker-STDOUT(这就是导致上述前 20 行日志记录的原因).我尝试使用“json-file”-config 来查看带有 "docker logs" 的 EC2 实例上的内容。两者都没有导致希望的结果。
你能给我一些我可能错过的提示吗?
为什么只有日志的前 20 行(Spring-Header?)
为什么 appender 不显示想要的结果?我希望它会像 "Graylog" 一样简单...在 log-config 中选择正确的 appender-config 瞧,有日志条目。
您是否有一些教程链接,其中的主题是从 spring-cloud 记录到 Cloud-Watch,并解释了所有必要的部分和步骤?
您是否有一些片段(Pom、任务-json、其他提示)可以帮助我完成这项工作?
换成像 Boxfuse 这样的 "everything ready" 解决方案真的更好吗?
非常感谢!
PS:我知道有ELK-Stack和其他的解决方案,但我真的很想先试试Cloud-Watch。
You can leave these fields of the task-definition, they said. The system will choose an appropriate default, they said. Don't bother, they said.
似乎我应该在 task-definition 中为 CPUs 设置一个值...日志的前几行似乎是唯一的东西,那个0-CPU-Task 能够产生...没有其他错误消息。
我笑哭了...