

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

# AWS X-Ray 守护程序
<a name="xray-daemon"></a>

**注意**  
X-Ray SDK/Daemon 维护通知 — 2026 年 2 月 25 日， AWS X-Ray SDKs/Daemon 将进入维护模式，在该模式下，X-Ray SDK 和 Daemon 的发布 AWS 将仅限于解决安全问题。有关支持时间表的更多信息，请参阅 [X-Ray SDK 和 Daemon Support 时间表](xray-sdk-daemon-timeline.md)。我们建议迁移到 OpenTelemetry。有关迁移到的更多信息 OpenTelemetry，请参阅[从 X-Ray 仪器迁移到 OpenTelemetry 仪器](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html)。

**注意**  
现在，您可以使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标、日志和跟踪。 CloudWatch 代理版本 1.300025.0 及更高版本可以从我们的 X-Ray 客户端收集痕迹 SDKs，然后将其发送到 [OpenTelemetry](xray-instrumenting-your-app.md#xray-instrumenting-opentel)[X-R](xray-instrumenting-your-app.md#xray-instrumenting-xray-sdk) ay。使用 CloudWatch 代理代替 AWS Distro for OpenTelemetry (ADOT) Collector 或 X-Ray 守护程序来收集跟踪可以帮助您减少管理的代理数量。有关更多信息，请参阅《 CloudWatch 用户指南》中的[CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)主题。

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

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

要在本地、本地或其他地方运行 X-Ray 守护程序 AWS 服务，[请下载并[运行它](#xray-daemon-running)，然后授予其将分段文档上传到 X-Ray 的权限](#xray-daemon-permissions)。

## 下载进程守护程序
<a name="xray-daemon-downloading"></a>

可以从 Amazon S3、Amazon ECR 或 Docker Hub 下载该进程守护程序，然后在本地运行它，或在启动时在 Amazon EC2 实例上安装它。

------
#### [ Amazon S3 ]

**X-Ray 进程守护程序安装程序和可执行文件**
+ **Linux（可执行文件）**- [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip)（[sig](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip.sig)）
+ **Linux（RPM 安装程序）**– [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm)
+ **Linux（DEB 安装程序）**– [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.deb](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.deb)
+ **Linux（ARM64，可执行文件）**— [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-arm64-3.x.zip](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-arm64-3.x.zip)（[签名](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-arm64-3.x.zip.sig)）
+ **Linux（ARM64，RPM 安装程序）**— [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-arm64-3.x.rpm](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-arm64-3.x.rpm)
+ **Linux（ARM64，DEB 安装程序）— [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-arm64-3.x.deb](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-arm64-3.x.deb)**
+ **OS X（可执行文件）**- [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-macos-3.x.zip](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-macos-3.x.zip)（[sig](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-macos-3.x.zip.sig)） 
+ **Windows（可执行文件）**– [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-windows-process-3.x.zip](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-windows-process-3.x.zip)（[sig](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-windows-process-3.x.zip.sig)）
+ **Windows（服务）**– [https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip)（[sig](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip.sig)）

这些链接始终指向最新 3.x 版本的进程守护程序。要下载特定版本，请执行以下操作：
+ 如果要下载 `3.3.0` 之前的版本，请将 `3.x` 替换为该版本号。例如 `2.1.0`。在 `3.3.0` 版本之前，唯一可用的架构是 `arm64`。例如，`2.1.0` 和 `arm64`。
+ 如果要下载 `3.3.0` 之后的版本，请将 `3.x` 替换为该版本号，将 `arch` 替换为该架构类型。

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

```
https://s3.us-west-2.amazonaws.com/aws-xray-assets.us-west-2/xray-daemon/aws-xray-daemon-3.x.rpm
```

------
#### [ Amazon ECR ]

 从 3.2.0 版本开始，可以在 [Amazon ECR](https://gallery.ecr.aws/xray/aws-xray-daemon) 找到该进程守护程序。在提取映像前，应该先对连接 Amazon ECR 公共注册表的 [Docker 客户端进行身份验证](https://docs.aws.amazon.com/AmazonECR/latest/public/public-registries.html#public-registry-auth)。

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

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

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

------
#### [ Docker Hub ]

可以在 [Docker Hub](https://hub.docker.com/r/amazon/aws-xray-daemon) 上找到该进程守护程序。运行以下命令下载最新发布的 3.x 版本：

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

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

------

## 验证进程守护程序存档的签名
<a name="xray-daemon-signature"></a>

以 ZIP 存档格式压缩的进程守护程序资产会附带 GPG 签名文件。公有密钥在这里：[https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray.gpg](https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray.gpg)。

您可以使用公有密钥来验证进程守护程序的 ZIP 存档是原始的且未经过修改。首先，使用 [GnuPG](https://gnupg.org/index.html) 导入公有密钥。

**导入公有密钥**

1. 下载公有密钥。

   ```
   $ BUCKETURL=https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2
   $ wget $BUCKETURL/xray-daemon/aws-xray.gpg
   ```

1. 将公有密钥导入到您的密钥环中。

   ```
   $ 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://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2
   $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip
   $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip.sig
   ```

1. 运行 `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
   ```

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

## 运行进程守护程序
<a name="xray-daemon-running"></a>

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

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

有关特定于平台的详细说明，请参阅下列主题：
+ **Linux（本地）**- [在 Linux 上运行 X-Ray 进程守护程序](xray-daemon-local.md#xray-daemon-local-linux)
+ **Windows（本地）**- [在 Windows 上运行 X-Ray 进程守护程序](xray-daemon-local.md#xray-daemon-local-windows)
+ **Elastic Beanstalk** – [正在运行 X-Ray 守护程序 AWS Elastic Beanstalk](xray-daemon-beanstalk.md)
+ **Amazon EC2** – [在亚马逊上运行 X-Ray 守护程序 EC2](xray-daemon-ec2.md)
+ **Amazon ECS** – [在 Amazon ECS 上运行 X-Ray 进程守护程序](xray-daemon-ecs.md)

您可以使用命令行选项或配置文件进一步自定义进程守护程序的行为。有关详细信息，请参阅 [配置 AWS X-Ray 守护程序](xray-daemon-configuration.md)。

## 授予进程守护程序向 X-Ray 发送数据的权限
<a name="xray-daemon-permissions"></a>

X-Ray 守护程序使用 AWS SDK 将跟踪数据上传到 X-Ray，它需要有权限的 AWS 凭证才能这样做。

在 Amazon EC 上，进程守护程序自动使用实例的实例配置文件角色。有关在本地运行该进程守护程序所需凭证的相关信息，请参阅[在本地运行应用程序](security_iam_service-with-iam.md#xray-permissions-local)。

如果您在多个位置（凭证文件、实例配置文件或环境变量）指定凭证，SDK 会提供证书链，决定使用哪个凭证。有关向 SDK 提供凭证的更多信息，请参阅《AWS SDK for Go 开发人员指南》**中的[指定凭证](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specifying-credentials)。

进程守护程序的凭证所属的 IAM 角色或用户必须有权代表您写入数据到服务。
+ 要在 Amazon EC2 上使用进程守护程序，请创建新实例配置文件角色，或者为现有角色添加托管策略。
+ 要在 Elastic Beanstalk 上使用进程守护程序，请将托管策略添加到 Elastic Beanstalk 默认实例配置文件角色。
+ 请参阅[在本地运行应用程序](security_iam_service-with-iam.md#xray-permissions-local)，了解如何在本地运行进程守护程序。

有关更多信息，请参阅 [的身份和访问管理 AWS X-Ray](security-iam.md)。

## X-Ray 进程守护程序日志
<a name="xray-daemon-logging"></a>

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

```
2016-11-24T06:07:06Z [Info] Initializing AWS 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` 命令行选项或配置文件来设置日志文件的路径。您也可以设置日志级别并禁用日志轮换。有关说明，请参阅[配置 AWS X-Ray 守护程序](xray-daemon-configuration.md)：

在 Elastic Beanstalk 中，平台将设置进程守护程序日志的位置。有关详细信息，请参阅[正在运行 X-Ray 守护程序 AWS Elastic Beanstalk](xray-daemon-beanstalk.md)。