首页 > 解决方案 > 如何从多个 beanstalk 应用程序实例登录到一个 aws cloudwatch 流

问题描述

我有 2 个实例的 AWS Beanstalk 应用程序。每个实例都会在 CloudWatch 中创建自己的日志流。

每个实例都是带有 AWS.Logger.AspNetCore nuget 包的 .NET Core 应用程序主机。应用设置部分:

  "Logging": {
    "Region": "eu-central-1",
    "LogGroup": "MyLogGroup",
    "LogLevel": {
      "Default": "Debug",
      "System": "Warning",
      "Microsoft": "Warning"
    }

有没有办法将所有实例记录到单个 commong 日志流?

标签: .netamazon-web-services.net-coreamazon-elastic-beanstalkamazon-cloudwatch

解决方案


根据此处的 AWS 文档

日志流是共享同一源的一系列事件。

这基本上意味着您的 Elastic Beanstalk 环境创建的每个实例都会将事件发送到单独的日志流,因为即使它们是同一个应用程序,它们在技术上也是不同的事件源。这同样适用于其他 AWS 服务,尤其是 Lambda,您可以同时运行 1000 个相同函数的实例;每个都会产生自己的日志流。

如果您正在使用控制台搜索特定内容,则在标记为 的日志组的根目录中有一个选项Search Log Group,它允许您使用控制台搜索日志组中的所有日志流。

对于基于 CLI 的搜索,您可以使用 AWS CLI,但我们发现这在我们的环境中很麻烦。有许多用于日志聚合、处理和分析的商业和开源解决方案。对于我们来说,我们已经成功使用开源AWS Cloudwatch Logs For Humans,它允许您“以伪实时方式跨多个流聚合和查询日志” .


推荐阅读