Executar o daemon do X-Ray localmente - AWS X-Ray

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executar o daemon do X-Ray localmente

Você pode executar o AWS X-Ray daemon localmente no Linux, macOS, Windows ou em um contêiner Docker. Execute o daemon para retransmitir os dados de rastreamento ao X-Ray quando você estiver desenvolvendo e testando sua aplicação instrumentada. Faça download e extraia o daemon usando essas instruções.

Ao ser executado localmente, o daemon pode ler as credenciais de um arquivo de credenciais do AWS SDK (.aws/credentialsno seu diretório de usuário) ou de variáveis de ambiente. Para ter mais informações, consulte Conceder permissão ao daemon para enviar dados ao X-Ray.

O daemon ouve dados UDP na porta 2000. Você pode alterar a porta e outras opções usando um arquivo de configuração e opções de linha de comando. Para ter mais informações, consulte Configurando o daemon AWS X-Ray.

Executar o daemon do X-Ray no Linux

Você pode executar o daemon executável na linha de comando. Use a opção -o para executar em modo local e -n para definir a região.

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

Para executar o daemon em segundo plano, use &.

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

Encerre um processo de daemon em execução em segundo plano com pkill.

~$ pkill xray

Executar o daemon do X-Ray em um contêiner do Docker

Para executar o daemon localmente em um contêiner do Docker, salve o texto a seguir em um arquivo chamado Dockerfile. Baixe a imagem de exemplo completa no Amazon ECR. Para obter mais informações, consulte Download do daemon.

exemplo 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

Crie a imagem do contêiner com o docker build.

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

Execute a imagem em um contêiner com o 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 usa as seguintes opções:

  • --attach STDOUT: visualizar a saída do daemon no terminal.

  • -v ~/.aws/:/root/.aws/:ro— Dê ao contêiner acesso somente de leitura ao .aws diretório para permitir que ele leia suas credenciais do AWS SDK.

  • AWS_REGION=us-east-2: definir a variável de ambiente da AWS_REGION para informar ao daemon a região a ser usada.

  • --net=host: anexar o contêiner à rede do host. Os contêineres na rede host podem se comunicar entre si sem as portas de publicação.

  • -p 2000:2000/udp: mapear a porta UDP 2000 no computador para a mesma porta no contêiner. Isso não é necessário para a comunicação entre contêineres na mesma rede, mas permite que você envie segmentos para o daemon a partir da linha de comando ou de um aplicativo que não está em execução no Docker.

  • --name xray-daemon: nomear o contêiner como xray-daemon em vez de gerar um nome aleatório.

  • -o (após o nome da imagem): anexar a opção -o ao ponto de entrada que executa o daemon dentro do contêiner. Essa opção instrui o daemon a executar em modo local para impedir que ele tente ler os metadados da instância do Amazon EC2.

Para interromper o daemon, use docker stop. Se você fizer alterações no Dockerfile e criar uma nova imagem, precisará excluir o contêiner existente antes de criar um outro com o mesmo nome. Use docker rm para excluir o contêiner.

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

Executar o daemon do X-Ray-Ray no Windows

Você pode executar o daemon executável na linha de comando. Use a opção -o para executar em modo local e -n para definir a região.

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

Use um PowerShell script para criar e executar um serviço para o daemon.

exemplo PowerShell script - 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

Executar o daemon do X-Ray no OS X

Você pode executar o daemon executável na linha de comando. Use a opção -o para executar em modo local e -n para definir a região.

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

Para executar o daemon em segundo plano, use &.

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

Use nohup para evitar que o daemon seja encerrado quando o terminal for fechado.

~/xray-daemon$ nohup ./xray_mac &