【问题标题】:Can AWS X-Ray be configured to work in a multi-container Beanstalk application?能否将 AWS X-Ray 配置为在多容器 Beanstalk 应用程序中工作?
【发布时间】:2018-06-15 16:31:03
【问题描述】:

我正在尝试让 AWS X-Ray 在多容器 Beanstalk 应用程序中工作,如 in the docs 所述。我找到了一个社区构建的 X-Ray 容器,可以与我的应用程序一起运行:pottava/xray:2.0。根据docker stats 和docker ps,该容器正在运行并接收/发送网络流量(跟踪通过UDP 发送到容器)。但是 AWS 控制台中没有显示跟踪数据。

我没有按照 here 的建议通过 .ebextensions/ 配置文件启用 X-Ray。尝试这样做失败了部署到 Beanstalk。事实上,多容器环境并没有列为supported platform。因此,虽然很多文档都提到在 Beanstalk 上使用 X-Ray,但我不确定是否有办法在我的多 Docker 环境中配置它。

  • 可以在多 Docker Beanstalk 中配置 X-Ray 吗?如果是,怎么做?
  • 解决跟踪收集和传递问题的最佳方法是什么?

【问题讨论】:

    标签: amazon-web-services docker amazon-elastic-beanstalk aws-xray


    【解决方案1】:

    您链接到的社区构建的 Docker 容器应该可以在 AWS Elastic Beanstalk 中正常工作。

    您是否已将必要的 AWSXrayWriteOnlyAccess 托管策略添加到您的 Elastic Beanstalk 实例配置文件中?

    要进一步排除故障,请从守护程序的 Docker 容器中查找 AWS X-Ray 守护程序日志。该日志将报告对PutTraceSegments API 的任何尝试调用,以及可能导致的任何错误。在链接的 Docker 容器中,这个 file is located at /var/log/xray-daemon.log.

    【讨论】:

      【解决方案2】:
      • 可以在多 Docker Beanstalk 中配置 X-Ray 吗?如果是,怎么做?

      是的,但是它不像 X 射线守护程序那样简单,可以通过 Running the X-Ray daemon on AWS Elastic Beanstalk 中描述的 .ebextensions 启用。这在 Docker 平台上不起作用(没有重大的网络黑客攻击)。根据这篇文章, Elastic Beanstalk does not provide the X-Ray daemon on the Multicontainer Docker (Amazon ECS) platform。此外,值得注意的是,在文章Configuring AWS X-Ray debugging 的支持的平台下,都没有列出 Docker 平台。

      对于 Docker 平台 (Amazon Linux 2),您可以使用 docker-compose 在容器中与您的应用程序一起运行 X 射线守护程序。这是我在一个简单的 API 应用程序中使用的 docker-compose.yml 的简单示例:

      version: "3.9"
      services:
          api: # my app instrumented with the AWS X-Ray SDK
              build: 
                  context: .
                  dockerfile: Dockerfile-awseb
              ports:
                  - "80:3000"
              environment:
                  - AWS_XRAY_DAEMON_ADDRESS=xray:2000
              env_file: .env
          xray:
              image: "amazon/aws-xray-daemon"
      

      对于Multicontainer 平台,文章Instrumenting Amazon ECS applications 中的Scorekeep 示例显示了在Elastic Beanstalk 中的多容器Docker 环境中进行检测的更详细示例。

      • 解决跟踪收集和传递问题的最佳方法是什么?

      一些高级技巧...

      使用受支持的平台时,您可能会在 Configuring AWS X-Ray debugging 中找到更多指导。

      【讨论】:

      猜你喜欢
      • 2021-11-02
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 2018-04-14
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      相关资源
      最近更新 更多