本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在本機執行 X-Ray 精靈
您可以在 Linux、MacOS、視窗或泊塢 AWS X-Ray 程式容器中本機執行協助程式。在開發和測試已檢測的應用程式時,執行協助程式,將追蹤資料轉送至 X-Ray。透過使用此處的說明,下載並解壓縮精靈。
在本機執行時,協助程式可以從認 AWS SDK證檔案 (.aws/credentials
在您的使用者目錄中) 或環境變數讀取認證。如需詳細資訊,請參閱 授予守護進程將數據發送到 X-Ray 的權限。
守護進程監聽端口 2000 上的UDP數據。您可以透過使用組態檔和命令列選項來變更連接埠及其他選項。如需詳細資訊,請參閱 配置 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 上下載完整的示例圖片
範例 碼頭文件 — 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
在視窗上執行 X-Ray 精靈
您可以從命令列執行精靈的可執行檔。使用 -o
選向來在本機模式中執行,以及 -n
來設定區域。
> .\xray_windows.exe -o -n us-east-2
使用 PowerShell 指令碼建立並執行協助程式的服務。
範例 PowerShell 腳本-視窗
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 &