本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 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 进程守护程序。
使用 Elastic Beanstalk X-Ray 集成运行 X-Ray 进程守护程序
使用控制台启用 X-Ray 集成,或者在应用程序源代码中使用配置文件来配置。
在 Elastic Beanstalk 控制台中启用 X-Ray 进程守护程序
导航到您的环境的管理控制台。
选择配置。
-
选择软件设置。
-
对于 X-Ray 进程守护程序,选择已启动。
-
选择应用。
您可以在源代码中包含配置文件,使得您的配置可以在环境之间移植。
例 .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 提供工具以从 AWS Management Console 或命令行中提取实例日志。您可以使用配置文件添加一项任务,来指示 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"
Version: 2
例 .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) 请求日志时将其包含在内。