Lokales Ausführen des X-Ray-Daemons - 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 Ausführen des X-Ray-Daemons

Sie können den AWS X-Ray Daemon lokal unter Linux, macOS, 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 einer AWS SDK-Anmeldeinformationsdatei (.aws/credentialsin Ihrem Benutzerverzeichnis) oder aus Umgebungsvariablen lesen. Weitere Informationen finden Sie unter Dem Daemon die Erlaubnis geben, Daten an X-Ray zu senden.

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.

Den 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

Den 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 Den Daemon herunterladen.

Beispiel 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

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— Gewähren Sie dem Container nur Lesezugriff auf das .aws Verzeichnis, damit er Ihre AWS SDK-Anmeldeinformationen lesen kann.

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

  • --net=host— Hängt den Container an das host Netzwerk an. 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 Imagenamen) — Hängen Sie 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, Amazon EC2 EC2-Instance-Metadaten 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

Den 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

Den X-Ray-Daemon auf 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 &