Menjalankan daemon X-Ray secara lokal - AWS X-Ray

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menjalankan daemon X-Ray secara lokal

Anda dapat menjalankan AWS X-Ray daemon secara lokal di Linux, macOS, Windows, atau dalam wadah Docker. Jalankan daemon untuk menyampaikan data pelacakan ke X-Ray saat Anda mengembangkan dan menguji aplikasi Anda yang diinstrumentasi. Unduh dan ekstrak daemon dengan menggunakan petunjuk di sini.

Saat berjalan secara lokal, daemon dapat membaca kredensi dari file kredensial AWS SDK (.aws/credentialsdi direktori pengguna Anda) atau dari variabel lingkungan. Untuk informasi selengkapnya, lihat Memberikan izin kepada daemon untuk mengirim data ke X-Ray.

Daemon mendengarkan data UDP pada port 2000. Anda dapat mengubah port dan opsi lain dengan menggunakan file konfigurasi dan opsi baris perintah. Untuk informasi selengkapnya, lihat Mengkonfigurasi daemon AWS X-Ray.

Menjalankan daemon X-Ray di Linux

Anda dapat menjalankan daemon yang dapat dieksekusi dari baris perintah. Gunakan opsi -o untuk menjalankan dalam mode lokal, dan -n untuk mengatur wilayah.

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

Untuk menjalankan daemon di latar belakang, gunakan &.

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

Hentikan proses daemon yang berjalan di latar belakang dengan pkill.

~$ pkill xray

Menjalankan daemon X-Ray di kontainer Docker

Untuk menjalankan daemon secara lokal di kontainer Docker, simpan teks berikut ke file bernama Dockerfile. Unduh contoh gambar lengkap di Amazon ECR. Lihat mengunduh daemon untuk informasi lebih lanjut.

contoh 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

Bangun citra kontainer dengan docker build.

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

Jalankan citra dalam kontainer dengan 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

Perintah ini menggunakan opsi berikut:

  • --attach STDOUT – Lihat output dari daemon di terminal.

  • -v ~/.aws/:/root/.aws/:ro— Berikan akses read-only container ke .aws direktori untuk membiarkannya membaca kredenal AWS SDK Anda.

  • AWS_REGION=us-east-2 – Set variabel lingkungan AWS_REGION untuk memberitahu daemon wilayah yang akan digunakan.

  • --net=host – Lampirkan kontainer ke jaringan host. Kontainer pada jaringan host dapat berkomunikasi satu sama lain tanpa memublikasikan port.

  • -p 2000:2000/udp – Petakan UDP port 2000 pada mesin Anda ke port yang sama pada kontainer. Ini tidak diperlukan untuk kontainer di jaringan yang sama untuk berkomunikasi, tetapi memungkinkan Anda mengirim segmen ke daemon dari baris perintah atau dari aplikasi yang tidak berjalan di Docker.

  • --name xray-daemon – Namakan kontainer xray-daemon bukan menghasilkan nama acak.

  • -o (setelah nama citra) - Tambahkan opsi -o ke titik masuk yang menjalankan daemon dalam kontainer. Opsi ini memberitahu daemon untuk menjalankan dalam mode lokal untuk mencegahnya mencoba untuk membaca metadata instans Amazon EC2.

Untuk menghentikan daemon, gunakan docker stop. Jika Anda membuat perubahan pada Dockerfile dan membangun citra baru, Anda perlu menghapus kontainer yang sudah ada sebelum Anda dapat membuat kontainer lain dengan nama yang sama. Gunakan docker rm untuk menghapus kontainer.

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

Menjalankan Daemon X-Ray di Windows

Anda dapat menjalankan daemon yang dapat dieksekusi dari baris perintah. Gunakan opsi -o untuk menjalankan dalam mode lokal, dan -n untuk mengatur wilayah.

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

Gunakan PowerShell skrip untuk membuat dan menjalankan layanan untuk daemon.

contoh PowerShell skrip - 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

Menjalankan daemon X-Ray di OS X

Anda dapat menjalankan daemon yang dapat dieksekusi dari baris perintah. Gunakan opsi -o untuk menjalankan dalam mode lokal, dan -n untuk mengatur wilayah.

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

Untuk menjalankan daemon di latar belakang, gunakan &.

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

Gunakan nohup untuk mencegah daemon berhenti ketika terminal ditutup.

~/xray-daemon$ nohup ./xray_mac &