在 AWS Elastic Beanstalk 上运行 X-Ray 守护程序 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 AWS Elastic Beanstalk 上运行 X-Ray 守护程序

您可以在 Elastic Beanstalk 环境的 Amazon EC2 实例上运行 X-Ray 守护程序,将来自应用程序的跟踪数据中继到 AWS X-Ray。有关受支持平台的列表,请参阅 AWS Elastic Beanstalk 开发人员指南 中的配置 AWS X-Ray 调试

注意

该守护程序使用环境的实例配置文件获取权限。有关将权限添加到 Elastic Beanstalk 实例配置文件的说明,请参阅授予守护程序向 X-Ray 发送数据的权限

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

Elastic Beanstalk 平台上包括的版本可能不是最新版本。请参阅支持的平台主题,找出您的平台配置适用的守护程序版本。

Elastic Beanstalk 不提供多容器 Docker (Amazon ECS) 平台上的 X-Ray 守护程序。Scorekeep 示例应用程序展示了如何在 Amazon ECS 上将 X-Ray 守护程序与 Elastic Beanstalk 结合使用。有关详细信息,请参阅分析 Amazon ECS 应用程序

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

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

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

  1. Open the Elastic Beanstalk console.

  2. Navigate to the management console for your environment.

  3. Choose Configuration.

  4. 选择 Software Settings

  5. 对于 X-Ray daemon,选择 Enabled

  6. 选择 Apply

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

例 .ebextensions/xray-daemon.config

option_settings: aws:elasticbeanstalk:xray: XRayEnabled: true

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

在 Windows Server 平台上

  • 配置文件C:\Progam 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 提供工具以从 AWS 管理控制台或命令行中提取实例日志。您可以使用配置文件添加一项任务,来指示 Elastic Beanstalk 包含 X-Ray 守护程序日志。

例 .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

例 .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

有关更多信息,请参阅 AWS Elastic Beanstalk 开发人员指南 中的查看来自 Elastic Beanstalk 环境的 Amazon EC2 实例的日志

手动下载和运行 X-Ray 守护程序(高级)

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

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

例 .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"

例 .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) 请求日志时将其包含在内。