Amazon X-Ray 守护程序 - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon X-Ray 守护程序

注意

现在,您可以使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标、日志和跟踪。 CloudWatch 代理版本 1.300025.0 及更高版本可以从我们的 X-Ray 客户端收集痕迹SDKs,然后将其发送到 OpenTelemetryX-R ay。使用 CloudWatch 代理代替 Amazon Distro for OpenTelemetry (ADOT) Collector 或 X-Ray 守护程序来收集跟踪可以帮助您减少管理的代理数量。有关更多信息,请参阅《 CloudWatch 用户指南》中的CloudWatch 代理主题。

Amazon X-Ray 守护程序是一个软件应用程序,它监听UDP端口 2000 上的流量,收集原始数据段数据,然后将其中继到。 Amazon X-Ray API该守护程序与配合使用, Amazon X-Ray SDKs并且必须处于运行状态,这样发送的数据SDKs才能到达 X-Ray 服务。X-Ray 进程守护程序是一个开源项目。你可以通过以下网址关注该项目并提交议题和拉取请求 GitHub:github.co m/aws/ aws-xray-daemon

在 and 上 Amazon Lambda Amazon Elastic Beanstalk,使用这些服务与 X-Ray 的集成来运行守护程序。每次对采样请求调用函数时,Lambda 都会自动运行该进程守护程序。在 Elastic Beanstalk 上,使用 XRayEnabled 配置选项在您环境中的实例上运行该进程守护程序。有关更多信息,请参阅

要在本地、本地或其他地方运行 X-Ray 守护程序 Amazon Web Services 服务,请下载并运行它,然后授予其将分段文档上传到 X-Ray 的权限

下载进程守护程序

您可以从 Amazon S3、Amazon ECR 或 Docker Hub 下载守护程序,然后在本地运行,或者在启动时将其安装在亚马逊EC2实例上。

Amazon S3
X-Ray 进程守护程序安装程序和可执行文件

这些链接始终指向最新 3.x 版本的进程守护程序。要下载特定版本,请执行以下操作:

  • 如果要下载版本之前的版本3.3.0,请3.x替换为版本号。例如,2.1.0。在版本之前3.3.0,唯一可用的架构是arm64。例如,2.1.0arm64

  • 如果要下载一个又一个的版本3.3.0,请3.x替换为版本号和arch架构类型。

X-Ray 资产被复制到每个受支持区域的存储桶。要使用离您最近的存储桶或您的 Amazon 资源,请将上述链接中的区域替换为您的区域。

https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/xray-daemon/aws-xray-daemon-3.x.rpm
注意

可用的本地区域为 cn-north-1cn-northwest-1

Amazon ECR

从 3.2.0 版本开始,该守护程序可以在亚马逊上找到。ECR在提取镜像之前,您应该向亚马逊ECR公共注册中心验证您的 docker 客户端

运行以下命令提取最新发布的 3.x 版本标签:

docker pull public.ecr.aws/xray/aws-xray-daemon:3.x

可通过将 3.x 替换为 alpha 或是某一具体版本号来下载以前的版本或 Alpha 版本。不建议在生产环境中使用带有 Alpha 标签的进程守护程序标签。

Docker Hub

可以在 Docker Hub 上找到该进程守护程序。运行以下命令下载最新发布的 3.x 版本:

docker pull amazon/aws-xray-daemon:3.x

通过将 3.x 替换为想要的版本,可以发布以前版本的进程守护程序。

验证进程守护程序存档的签名

GPG压缩到ZIP存档中的守护程序资产包含签名文件。公有密钥在这里:aws-xray.gpg

您可以使用公钥来验证守护程序的ZIP存档是否为原始且未经修改。首先,使用 GnuPG 导入公有密钥。

导入公有密钥
  1. 下载公有密钥。

    $ BUCKETURL=https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/ $ wget $BUCKETURL/xray-daemon/aws-xray.gpg
  2. 将公有密钥导入到您的密钥环中。

    $ gpg --import aws-xray.gpg gpg: /Users/me/.gnupg/trustdb.gpg: trustdb created gpg: key 7BFE036BFE6157D3: public key "AWS X-Ray <aws-xray@amazon.com>" imported gpg: Total number processed: 1 gpg: imported: 1

使用导入的密钥验证守护程序ZIP存档的签名。

验证存档的签名
  1. 下载存档和签名文件。

    $ BUCKETURL=https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/ $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip.sig
  2. 运行 gpg --verify 来验证签名。

    $ gpg --verify aws-xray-daemon-linux-3.x.zip.sig aws-xray-daemon-linux-3.x.zip gpg: Signature made Wed 19 Apr 2017 05:06:31 AM UTC using RSA key ID FE6157D3 gpg: Good signature from "AWS X-Ray <aws-xray@amazon.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EA6D 9271 FBF3 6990 277F 4B87 7BFE 036B FE61 57D3

请注意有关信任的警告。只有当您或您信任的某个人对文件进行了签名,密钥才是可信的。这并不意味着签名无效,只是您尚未验证公有密钥而已。

运行进程守护程序

在本地从命令行运行进程守护程序。使用 -o 选项以本地模式运行,-n 选项设置区域。

~/Downloads$ ./xray -o -n us-east-2

有关特定于平台的详细说明,请参阅下列主题:

您可以使用命令行选项或配置文件进一步自定义进程守护程序的行为。有关详细信息,请参阅 配置 Amazon X-Ray 守护程序

授予进程守护程序向 X-Ray 发送数据的权限

X-Ray 守护程序使用将跟踪数据上传 Amazon SDK到 X-Ray,它需要具有权限的 Amazon 凭据才能执行此操作。

在 Amazon 上EC2,守护程序会自动使用实例的实例配置文件角色。有关在本地运行守护程序所需的凭据的信息,请参阅在本地运行应用程序

如果您在多个位置(凭据文件、实例配置文件或环境变量)指定凭证,则SDK提供商链将决定使用哪些证书。有关向提供凭证的更多信息SDK,请参阅 for Go 开发者指南中的指定凭证。Amazon SDK

守护程序凭据所属的IAM角色或用户必须有权代表您向服务写入数据。

  • 要在 Amazon 上使用守护程序EC2,请创建一个新的实例配置文件角色或将托管策略添加到现有角色中。

  • 要在 Elastic Beanstalk 上使用进程守护程序,请将托管式策略添加到 Elastic Beanstalk 默认实例配置文件角色。

  • 请参阅在本地运行应用程序,了解如何在本地运行进程守护程序。

有关更多信息,请参阅 的身份和访问管理 Amazon X-Ray

X-Ray 进程守护程序日志

守护程序输出有关其当前配置和发送到 Amazon X-Ray的段的信息。

2016-11-24T06:07:06Z [Info] Initializing Amazon X-Ray daemon 2.1.0 2016-11-24T06:07:06Z [Info] Using memory limit of 49 MB 2016-11-24T06:07:06Z [Info] 313 segment buffers allocated 2016-11-24T06:07:08Z [Info] Successfully sent batch of 1 segments (0.123 seconds) 2016-11-24T06:07:09Z [Info] Successfully sent batch of 1 segments (0.006 seconds)

默认情况下,守护程序将日志输出到。STDOUT如果您在后台运行进程守护程序,请使用 --log-file 命令行选项或配置文件来设置日志文件的路径。您也可以设置日志级别并禁用日志轮换。有关说明,请参阅配置 Amazon X-Ray 守护程序

在 Elastic Beanstalk 中,平台将设置进程守护程序日志的位置。有关详细信息,请参阅 在 Amazon Elastic Beanstalk上运行 X-Ray 进程守护程序