Lokales X-Ray -Daemon - AWS X-Ray

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lokales X-Ray -Daemon

Sie können den AWS X-Ray-Daemon lokal auf Linux, Mac OS, Windows oder in einem Docker-Container ausführen. Führen Sie den -Daemon aus, um Trace-Daten an X-Ray weiterzuleiten, wenn Sie Ihre instrumentierte Anwendung entwickeln und testen. Laden Sie den Daemon herunter und extrahieren Sie ihn. Diesbezügliche Anweisungen finden Sie hier.

Wenn der Daemon lokal ausgeführt wird, kann er Anmeldeinformationen aus einerAWS SDK-Anmeldeinformationsdatei (.aws/credentialsin Ihrem Benutzerverzeichnis) oder aus Umgebungsvariablen lesen. Weitere Informationen finden Sie unter Erteilen der Berechtigung an den Daemon zum Senden von Daten an X-Ray.

Der Daemon lauscht an Port 2000 auf Daten. Sie können den Port und andere Optionen mithilfe einer Konfigurationsdatei und von Befehlszeilenoptionen ändern. Weitere Informationen finden Sie unter Konfigurieren des AWS X-Ray Daemon.

X-Ray -Daemon unter Linux ausführen

Sie können die ausführbare Datei des Daemons an der Befehlszeile ausführen. Verwenden Sie die Option -o zur Ausführung im lokalen Modus und -n zum Festlegen der Region.

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

Zum Ausführen des Daemons im Hintergrund verwenden Sie &.

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

Beenden Sie einen Daemonprozess, der im Hintergrund ausgeführt wird, mit pkill.

~$ pkill xray

X-Ray -Daemon in einem Docker-Container ausführen

Um den Daemon lokal in einem Docker-Container auszuführen, speichern Sie den folgenden Text in einer Datei mit dem Namen Dockerfile. Laden Sie das vollständige Beispielbild auf Amazon ECR herunter. Weitere Informationen finden Sie unter Herunterladen des Daemons.

Beispiel Docker-Datei — 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

Entwickeln Sie das Container-Image mit docker build.

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

Führen Sie das Abbild in einem Container mit docker run aus.

~/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

Dieser Befehl verwendet die folgenden Optionen:

  • --attach STDOUT— Zeigt die Ausgabe des Daemons im Terminal an.

  • -v ~/.aws/:/root/.aws/:ro— Geben Sie dem Container schreibgeschützten Zugriff auf das.aws Verzeichnis, damit er IhreAWS SDK-Anmeldeinformationen lesen kann.

  • AWS_REGION=us-east-2— Setzt dieAWS_REGION Umgebungsvariable, um dem Daemon mitzuteilen, welche Region er verwenden soll.

  • --net=host— Verbinden Sie den Container mit demhost Netzwerk. Container im Hostnetzwerk können miteinander kommunizieren, ohne Ports zu veröffentlichen.

  • -p 2000:2000/udp— Ordnen Sie den UDP-Port 2000 auf Ihrem Computer demselben Port auf dem Container zu. Dies ist für die Kommunikation von Containern in demselben Netzwerk nicht erforderlich. Sie können mit ihr aber Segmente über die Befehlszeile oder Anwendung, die nicht in Docker ausgeführt wird, zum Daemon senden.

  • --name xray-daemon— Benennen Sie den Container,xray-daemon anstatt einen zufälligen Namen zu generieren.

  • -o(nach dem Image-Namen) — Hängt die-o Option an den Einstiegspunkt an, der den Daemon innerhalb des Containers ausführt. Diese Option weist den Daemon an, im lokalen Modus zu laufen, um zu verhindern, dass er versucht, die Metadaten der Amazon EC2 EC2-Instance zu lesen.

Um den Daemon zu beenden, verwenden Sie docker stop. Wenn Sie nach der Vornahme von Änderungen am Dockerfile ein neues Abbild erstellen, müssen Sie den vorhandenen Container löschen, damit Sie einen anderen mit demselben Namen erstellen können. Verwenden Sie docker rm zum Löschen des Containers.

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

X-Ray -Daemon unter Windows ausführen

Sie können die ausführbare Datei des Daemons an der Befehlszeile ausführen. Verwenden Sie die Option -o zur Ausführung im lokalen Modus und -n zum Festlegen der Region.

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

Verwenden Sie ein PowerShell Skript, um einen Dienst für den Daemon zu erstellen und auszuführen.

Beispiel PowerShell skript - 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

X-Ray -Daemon unter OS X ausführen

Sie können die ausführbare Datei des Daemons an der Befehlszeile ausführen. Verwenden Sie die Option -o zur Ausführung im lokalen Modus und -n zum Festlegen der Region.

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

Zum Ausführen des Daemons im Hintergrund verwenden Sie &.

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

Verwenden Sie nohup, um zu verhindern, dass der Daemon vorzeitig beendet wird, wenn das Terminal geschlossen wird.

~/xray-daemon$ nohup ./xray_mac &