Ejecución del daemon de X-Ray localmente - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejecución del daemon de X-Ray localmente

Puede ejecutar el AWS X-Ray daemon localmente en Linux, macOS, Windows o en un contenedor de Docker. Ejecute el daemon para transmitir los datos de rastro a X-Ray durante el desarrollo y las pruebas de una aplicación instrumentada. Descargue y extraiga el daemon mediante las instrucciones que encontrará aquí.

Cuando se ejecuta de forma local, el daemon puede leer las credenciales de un archivo de credenciales del AWS SDK (.aws/credentialsen su directorio de usuarios) o de variables de entorno. Para obtener más información, consulte Permiso para el envío de datos a X-Ray desde el daemon.

El demonio escucha los datos UDP en el puerto 2000. Puede cambiar el puerto y otras opciones mediante un archivo de configuración y distintas opciones de línea de comandos. Para obtener más información, consulte Configuración del AWS X-Ray daemon.

Ejecución del daemon de X-Ray en Linux

Puede ejecutar el daemon ejecutable desde la línea de comandos. Utilice la opción -o para ejecutarlo en modo local y -n para configurar la región.

~/xray-daemon$ ./xray -o -n us-east-2

Para ejecutar el demonio en segundo plano, use &.

~/xray-daemon$ ./xray -o -n us-east-2 &

Finalice un proceso de demonio que se ejecuta en segundo plano con pkill.

~$ pkill xray

Ejecución del daemon de X-Ray en un contenedor de Docker

Para ejecutar el demonio localmente en un contenedor de Docker, guarde el texto siguiente en un archivo denominado Dockerfile. Descargue la imagen de ejemplo completa en Amazon ECR. Para obtener más información, consulte Descarga del daemon.

ejemplo 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

Compile la imagen del contenedor con docker build.

~/xray-daemon$ docker build -t xray-daemon .

Ejecute la imagen en un contenedor con 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

Este comando utiliza las siguientes opciones:

  • --attach STDOUT: ver la salida del daemon en el terminal.

  • -v ~/.aws/:/root/.aws/:ro— Conceda al contenedor acceso de solo lectura al .aws directorio para que pueda leer sus AWS credenciales del SDK.

  • AWS_REGION=us-east-2: establecer la variable de entorno AWS_REGION para indicar al daemon la región que debe utilizar.

  • --net=host: adjunte el contenedor a la red host. Los contenedores de la red host pueden comunicarse entre sí sin publicar puertos.

  • -p 2000:2000/udp: asignar el puerto UDP 2000 en el equipo al mismo puerto del contenedor. Esto no es necesario para que se comuniquen los contenedores de la misma red, pero sí permite enviar segmentos al demonio desde la línea de comandos o desde una aplicación que no se ejecuta en Docker.

  • --name xray-daemon: asignar el nombre xray-daemon al contenedor en lugar de generar un nombre aleatorio.

  • -o (después del nombre de la imagen): añadir la opción -o al punto de entrada que ejecuta el daemon en el contenedor. Esta opción indica al daemon que se ejecute en modo local para impedirle que intente leer los metadatos de la instancia de Amazon EC2.

Para detener el demonio, utilice docker stop. Si realiza cambios en el archivo Dockerfile y crea una imagen nueva, debe eliminar el contenedor existente para poder crear otra con el mismo nombre. Utilice docker rm para eliminar el contenedor.

$ docker stop xray-daemon $ docker rm xray-daemon

Ejecución de un daemon de X-Ray en Windows

Puede ejecutar el daemon ejecutable desde la línea de comandos. Utilice la opción -o para ejecutarlo en modo local y -n para configurar la región.

> .\xray_windows.exe -o -n us-east-2

Usa un PowerShell script para crear y ejecutar un servicio para el daemon.

ejemplo PowerShell secuencia de comandos: 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

Ejecución del daemon de X-Ray en OS X

Puede ejecutar el daemon ejecutable desde la línea de comandos. Utilice la opción -o para ejecutarlo en modo local y -n para configurar la región.

~/xray-daemon$ ./xray_mac -o -n us-east-2

Para ejecutar el demonio en segundo plano, use &.

~/xray-daemon$ ./xray_mac -o -n us-east-2 &

Utilice nohup para evitar que el demonio finalice cuando se cierre la terminal.

~/xray-daemon$ nohup ./xray_mac &