繁体   English   中英

AWS X-Ray Crossacount 数据收集

[英]AWS X-Ray Crossacount data collection

我有一个分布在两个 AWS 账户上的应用程序。 应用程序的一部分将数据从一个帐户提取到另一个帐户。

生产者部分实现为 python lambda 微服务。 消费者部分是弹性 beanstalk 中的 spring-boot 应用程序和额外的 python lambdas,它们在 EBeanstalk 中的 spring-boot 应用程序处理后进一步将数据分发到外部系统。

我没有在任何地方运行的显式 X-Ray 守护进程。

我想知道是否可以将一个帐户的 X 射线跟踪发送到该帐户,以便我可以在一个地方监控我的应用程序。

我在文档中找不到有关跨帐户使用的任何提示。 这甚至可行吗?

如果您运行 X-Ray 守护程序,您可以向该守护程序提供RoleARN ,以便它承担该角色并将其从 X-Ray SDK 接收的数据从账户 1 发送到账户 2。

但是,如果您在 API Gateway 或 AWS Lambda 上启用了 X-Ray,这些服务生成的分段将发送到它们运行的​​账户,并且无法为这些服务跨账户发送数据。

如果您有任何疑问,请告诉我。 如果是,请包括您正在使用的架构流程和解决方案堆栈,以更好地指导您。

谢谢,瑜伽士

这是可能的,但您必须将自己的 xray-daemon 作为服务运行。

默认情况下,lambda 使用其自己的 xray 守护进程向其运行的帐户发送跟踪。但是,X-Ray SDK 支持可用于使用自定义 xray 守护进程的环境变量。 即使微服务在 lambda function 中运行,这些环境变量也适用。

由于您的 lambda 写在 python 中,您可以参考这个AWS Doc谈论环境变量。 您可以将该值设置为自定义 xray 守护程序服务的地址。

 AWS_XRAY_DAEMON_ADDRESS = x.x.x.x:2000

假设您要将跟踪从账户 1 发送到账户 2。您可以通过将守护程序配置为承担一个角色来实现。 此角色必须存在于帐户 2(您要将跟踪发送到的位置)中。 然后在账户 1 中运行 XRay 守护程序服务时通过传递选项来使用此角色的 ARN(从您希望发送跟踪的位置)。 此处的AWS 文档中提到了要使用的选项。

--role-arn, arn:aws:iam::123456789012:role/xray-cross-account

确保您在帐户 1 中附加了权限,以便将跟踪发送到帐户 2。

最近的发布现在可以做到这一点: https://aws.amazon.com/about-aws/whats-new/2022/11/amazon-cloudwatch-cross-account-observability-multiple-aws-accounts/

您可以将账户链接到另一个账户以共享跟踪、指标和日志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM