本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在本地运行 X-Ray 进程守护程序
你可以在 Linux、macOS、Windows 或 Docker 容器中本地运行 AWS X-Ray 守护程序。当您在开发和测试经过检测的应用程序时,运行进程守护程序可将跟踪数据中继到 X-Ray。使用此处的说明下载并解压缩进程守护程序。
在本地运行时,守护程序可以从凭证文件(.aws/credentials
在您的用户目录中)或环境变量中读取 AWS SDK凭据。有关更多信息,请参阅 授予进程守护程序向 X-Ray 发送数据的权限。
守护程序监听端口 200 UDP 0 上的数据。您可以使用配置文件和命令行选项更改端口和其他选项。有关更多信息,请参阅 配置 AWS X-Ray 守护程序。
在 Linux 上运行 X-Ray 进程守护程序
您可以从命令行运行进程守护程序可执行文件。使用 -o
选项以本地模式运行,-n
选项设置区域。
~/xray-daemon$ ./xray -o -n us-east-2
要在后台运行进程守护程序,请使用 &
。
~/xray-daemon$ ./xray -o -n us-east-2 &
使用 pkill
终止在后台运行的进程守护程序进程。
~$ pkill xray
在 Docker 容器中运行 X-Ray 进程守护程序
要在 Docker 容器中本地运行进程守护程序,请将以下文本保存为名为 Dockerfile
的文件。在 Amazon 上下载完整的示例图片
例 Dockerfile — Amazon Linux
FROM amazonlinux RUN yum install -y unzip RUN curl -o daemon.zip https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip RUN unzip daemon.zip && cp xray /usr/bin/xray ENTRYPOINT ["/usr/bin/xray", "-t", "0.0.0.0:2000", "-b", "0.0.0.0:2000"] EXPOSE 2000/udp EXPOSE 2000/tcp
利用 docker build
构建容器映像。
~/xray-daemon$ docker build -t xray-daemon .
利用 docker run
在容器中运行映像。
~/xray-daemon$ docker run \
--attach STDOUT \
-v ~/.aws/:/root/.aws/:ro \
--net=host \
-e AWS_REGION=us-east-2 \
--name xray-daemon \
-p 2000:2000/udp \
xray-daemon -o
此命令使用以下选项:
-
--attach STDOUT
- 在终端查看进程守护程序的输出。 -
-v ~/.aws/:/root/.aws/:ro
— 授予容器对.aws
目录的只读访问权限,使其能够读取您的 AWS SDK凭据。 -
AWS_REGION=
- 设置us-east-2
AWS_REGION
环境变量,以通知进程守护程序使用哪个区域。 -
--net=host
- 将容器附加到host
网络。主机网络上的容器无需发布端口即可互相通信。 -
-p 2000:2000/udp
— 将计算机上的UDP端口 2000 映射到容器上的相同端口。对于同一网络中的容器进行通信而言,这不是必需的,但它允许您通过命令行或通过未在 Docker 中运行的应用程序将分段发送到进程守护程序。 -
--name xray-daemon
- 命名容器xray-daemon
,而不是随机生成名称。 -
-o
(位于映像名称后) - 将-o
选项追加到入口点(在容器中运行进程守护程序)。此选项告诉守护程序在本地模式下运行,以防止它尝试读取 Amazon EC2 实例元数据。
要停止进程守护程序,请使用 docker stop
。如果您更改 Dockerfile
并生成新映像,需要删除现有容器,然后才能创建另一个具有相同名称的容器。使用 docker rm
删除容器。
$ docker stop xray-daemon
$ docker rm xray-daemon
在 Windows 上运行 X-Ray 进程守护程序
您可以从命令行运行进程守护程序可执行文件。使用 -o
选项以本地模式运行,-n
选项设置区域。
> .\xray_windows.exe -o -n us-east-2
使用 PowerShell 脚本为守护程序创建和运行服务。
例 PowerShell 脚本-Windows
if ( Get-Service "AWSXRayDaemon" -ErrorAction SilentlyContinue ){
sc.exe stop AWSXRayDaemon
sc.exe delete AWSXRayDaemon
}
if ( Get-Item -path aws-xray-daemon -ErrorAction SilentlyContinue ) {
Remove-Item -Recurse -Force aws-xray-daemon
}
$currentLocation = Get-Location
$zipFileName = "aws-xray-daemon-windows-service-3.x.zip"
$zipPath = "$currentLocation\$zipFileName"
$destPath = "$currentLocation\aws-xray-daemon"
$daemonPath = "$destPath\xray.exe"
$daemonLogPath = "C:\inetpub\wwwroot\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)
sc.exe create AWSXRayDaemon binPath= "$daemonPath -f $daemonLogPath"
sc.exe start AWSXRayDaemon
在 OS X 上运行 X-Ray 进程守护程序
您可以从命令行运行进程守护程序可执行文件。使用 -o
选项以本地模式运行,-n
选项设置区域。
~/xray-daemon$ ./xray_mac -o -n us-east-2
要在后台运行进程守护程序,请使用 &
。
~/xray-daemon$ ./xray_mac -o -n us-east-2 &
使用 nohup
可防止在终端关闭时终止进程守护程序。
~/xray-daemon$ nohup ./xray_mac &