

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

# 正在运行 X-Ray 守护程序 Amazon Elastic Beanstalk
在 Elastic Beanstalk 上

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

要将应用程序中的跟踪数据中继到 Amazon X-Ray，您可以在 Elastic Beanstalk 环境的 Amazon EC2 实例上运行 X-Ray 守护程序。有关受支持平台的列表，请参阅 *Amazon Elastic Beanstalk 开发人员指南*中的[配置 Amazon X-Ray 调试](https://docs.amazonaws.cn/elasticbeanstalk/latest/dg/environment-configuration-debugging.html)。

**注意**  
该进程守护程序使用环境的实例配置文件获取权限。有关将权限添加到 Elastic Beanstalk 实例配置文件的说明，请参阅[授予进程守护程序向 X-Ray 发送数据的权限](xray-daemon.md#xray-daemon-permissions)。

Elastic Beanstalk 平台提供配置选项，您可以设置它，自动运行进程守护程序。您可以在源代码的配置文件中启用进程守护程序，或者通过在 Elastic Beanstalk 控制台中选择选项来启用。启用配置选项后，进程守护程序将安装到实例上，并作为服务运行。

Elastic Beanstalk 平台上包括的版本可能不是最新版本。请参阅[支持的平台主题](https://docs.amazonaws.cn/elasticbeanstalk/latest/dg/concepts.platforms.html)，找出您的平台配置适用的进程守护程序版本。

Elastic Beanstalk 在多容器 Docker (Amazon ECS) 平台上不提供 X-Ray 进程守护程序。

## 使用 Elastic Beanstalk X-Ray 集成运行 X-Ray 进程守护程序


使用控制台启用 X-Ray 集成，或者在应用程序源代码中使用配置文件来配置。

**在 Elastic Beanstalk 控制台中启用 X-Ray 进程守护程序**

1. 打开 [Elastic Beanstalk 控制台](https://console.amazonaws.cn/elasticbeanstalk)。

1. 导航到您的环境的[管理控制台](https://docs.amazonaws.cn/elasticbeanstalk/latest/dg/environments-console.html)。

1. 选择**配置**。

1. 选择**软件设置**。

1. 对于 **X-Ray 进程守护程序**，选择**已启动**。

1. 选择**应用**。

您可以在源代码中包含配置文件，使得您的配置可以在环境之间移植。

**Example .ebextensions/xray-daemon.config**  

```
option_settings:
  aws:elasticbeanstalk:xray:
    XRayEnabled: true
```

Elastic Beanstalk 将配置文件传递到进程守护程序并将日志输出到标准位置。

**在 Windows Server 平台上**
+ **配置文件** - `C:\Program Files\Amazon\XRay\cfg.yaml`
+ **日志** - `c:\Program Files\Amazon\XRay\logs\xray-service.log`

**在 Linux 平台上**
+ **配置文件** - `/etc/amazon/xray/cfg.yaml`
+ **日志** - `/var/log/xray/xray.log`

Elastic Beanstalk 提供了用于从或命令行提取实例日志 Amazon Web Services 管理控制台 的工具。您可以使用配置文件添加一项任务，来指示 Elastic Beanstalk 包含 X-Ray 进程守护程序日志。

**Example .ebextensions/xray-logs.config - Linux**  

```
files:
  "/opt/elasticbeanstalk/tasks/taillogs.d/xray-daemon.conf" :
    mode: "000644"
    owner: root
    group: root
    content: |
      /var/log/xray/xray.log
```

**Example .ebextensions/xray-logs.config - Windows Server**  

```
files:
  "c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/xray-daemon.conf" :
    mode: "000644"
    owner: root
    group: root
    content: |
      c:\Progam Files\Amazon\XRay\logs\xray-service.log
```

有关更多信息，请参阅 *Amazon Elastic Beanstalk 开发人员指南*中的[查看来自 Elastic Beanstalk 环境的 Amazon EC2 实例日志](https://docs.amazonaws.cn/elasticbeanstalk/latest/dg/using-features.logging.html)。

## 手动下载和运行 X-Ray 进程守护程序（高级）


如果 X-Ray 进程守护程序对您的平台配置不可用，则可以从 Amazon S3 下载它并使用配置文件来运行。

使用 Elastic Beanstalk 配置文件下载并运行进程守护程序。

**Example .ebextensions/xray.config - Linux**  

```
commands:
  01-stop-tracing:
    command: yum remove -y xray
    ignoreErrors: true
  02-copy-tracing:
    command: curl https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm -o /home/ec2-user/xray.rpm
  03-start-tracing:
    command: yum install -y /home/ec2-user/xray.rpm

files:
  "/opt/elasticbeanstalk/tasks/taillogs.d/xray-daemon.conf" :
    mode: "000644"
    owner: root
    group: root
    content: |
      /var/log/xray/xray.log
  "/etc/amazon/xray/cfg.yaml" :
    mode: "000644"
    owner: root
    group: root
    content: |
      Logging:
        LogLevel: "debug"
      Version: 2
```

**Example .ebextensions/xray.config - Windows Server**  

```
container_commands:
  01-execute-config-script:
    command: Powershell.exe -ExecutionPolicy Bypass -File c:\\temp\\installDaemon.ps1
    waitAfterCompletion: 0
 
files:
  "c:/temp/installDaemon.ps1":
    content: |
      if ( Get-Service "AWSXRayDaemon" -ErrorAction SilentlyContinue ) {
          sc.exe stop AWSXRayDaemon
          sc.exe delete AWSXRayDaemon
      }

      $targetLocation = "C:\Program Files\Amazon\XRay"
      if ((Test-Path $targetLocation) -eq 0) {
          mkdir $targetLocation
      }

      $zipFileName = "aws-xray-daemon-windows-service-3.x.zip"
      $zipPath = "$targetLocation\$zipFileName"
      $destPath = "$targetLocation\aws-xray-daemon"
      if ((Test-Path $destPath) -eq 1) {
          Remove-Item -Recurse -Force $destPath
      }

      $daemonPath = "$destPath\xray.exe"
      $daemonLogPath = "$targetLocation\xray-daemon.log"
      $url = "https://s3.dualstack.us-west-2.amazonaws.com/aws-xray-assets.us-west-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip"

      Invoke-WebRequest -Uri $url -OutFile $zipPath
      Add-Type -Assembly "System.IO.Compression.Filesystem"
      [io.compression.zipfile]::ExtractToDirectory($zipPath, $destPath)

      New-Service -Name "AWSXRayDaemon" -StartupType Automatic -BinaryPathName "`"$daemonPath`" -f `"$daemonLogPath`""
      sc.exe start AWSXRayDaemon
    encoding: plain
  "c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/xray-daemon.conf" :
    mode: "000644"
    owner: root
    group: root
    content: |
      C:\Program Files\Amazon\XRay\xray-daemon.log
```

这些示例还将进程守护程序日志文件添加到了 Elastic Beanstalk 的尾日志任务，以在您通过控制台或 Elastic Beanstalk 命令行界面 (EB CLI) 请求日志时将其包含在内。